記得在3月份,有一個學員問了我一個問題,什麼是嵌入式,單片機是屬于嵌入式嗎?嵌入式開發要學什麼?
說實話,雖然自己從業多年,但是這個問題還真把我問蒙了。
我們在做産品開發的時候,基本很少去了解這些概念性的東西。
後面我特意去了解了一下,今天就把這些概念分享給有同樣問題的朋友。
嵌入式一般叫嵌入式系統。
大家可以理解成是硬件和軟件都經過剪裁的計算機。
一般像我們使用的電腦是通用計算機,而嵌入式系統是專用的計算機。
專用的計算機可以靈活地對硬件和軟件進行剪裁,剪裁以後它更适合去做對成本、體積、功耗、智能控制有嚴格要求的産品,比如說家電類、汽車類、醫療類、工業類、軍事類等電子産品。
一個嵌入式系統的核心就是它的處理器,處理器有幾種類型:
1.嵌入式微控制器MCU(Micro Control Unit)如8051/STM32等等。
2.嵌入式DSP處理器 (Digital Signal Processor)專門用于信号處理,比如數字濾波,FFT、頻譜分析、典型TI公司的TMS320C2000/C5000。
3.嵌入式微處理器MPU(Micro Processor Unit)性能更強,外設資源更豐富,如AM186/88、PowerPCMIPS、ARM
4.嵌入式片上系統SoC(System on Chip)
5.可編程片上系統SoPC(System on a Programmable Chip)
而我們單片機就屬于嵌入式控制器MCU這類,所以單片機當然是屬于嵌入式系統。
從上面的處理器分類,其實可以衍生出很多别的職位,比如說FPGA方向,Linux方向。
所以,我又總結了從事嵌入式開發的一些主流職位,大家可以根據自己喜好入座。
1. 單片機工程師/嵌入式工程師
2. Linux系統開發工程師
3. Linux應用工程師
4. 安卓系統開發工程師
這4個職位,前2個是偏向于硬件驅動層,後2個是偏向應用層。
我一直是在做單片機開發,所以針對這個職位,來說一說如果想從事這個開發需要學習哪些課程?
技術還是會更新叠代的,所以如果你根據某些學校那些十年不變的教學内容來學習的話,很有可能與實際崗位需求對不上。
最好的辦法就是直接通過招聘平台搜相關的職位,來看看他們的崗位需求。
下面是我随便篩選的一家公司的需求:
單片機工程師/嵌入式工程師
崗位要求:
① 熟悉單片機基本的通訊協議接口,IIC、SPI、串口、CAN等。
② 熟練運用單片機各種外設,如TIME、USAR、PWM、中斷、DMA、ADC。
③ 熟練掌握C語言及單片機(STC、STM8、STM32系列)編程開發,代碼要求規範整潔。
④ 至少熟悉一款PCB軟件,能看懂原理圖。
⑤ 各種項目經驗
我們從崗位需求不難分析出,以下3塊的内容是我們的必修課。
1. C語言
2. 單片機
3. 基礎電路
C語言沒什麼可以說的了,隻要你想玩單片機,是必須要學的,而且它的重要性我認為應該排在第一位。
市面上C語言教程已經泛濫了,我們也針對單片機錄制了一套c語言入門課程。
相對其他c語言教程,很多都是偏向純軟件方向,我們錄制這個目的是讓大家學完以後可以無縫對接到單片機開發,所以我們的課程我認為還是有一定的價值。
這塊也是無償給廣大想入門的小夥伴學習,想學習的可以到小破站找無際單片機編程,如果需要課件和源代碼的可以通過教程找到我們。
單片機當做工具來學習就可以了,可以先學STC 51的,燒錄程序比較方便,學完以後再學STM32F103系列,最典型,實際應用也最多。
至于上面寫的各種外設TIME、USART、PWM都是單片機的内部資源,我們在學習單片機的過程中肯定會接觸到,不用單獨去學習。
最後還需要學習電路基礎,我們是用c語言寫程序把單片機外設開起來,然後通過外設去控制外圍的電路實現産品功能,如果電路圖都看不懂,就不用談控制了。
更詳細的學習路徑可以參考我下面這篇文章。
單片機入門到高級開挂學習路徑(附教程 工具)
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!