大家好,我是雜燴君。
一位朋友問了這樣一個問題:
嵌入式技術(shù)的范疇很廣,不同地行業(yè)可能涉及到不同地技術(shù)。如:
機器人行業(yè)應(yīng)用的相關(guān)技術(shù)可能有:傳感器數(shù)據(jù)采集處理、電機控制、ROS機器人操作系統(tǒng)、規(guī)劃與運動控制、WiFi藍(lán)牙等無線通信、圖像識別、語音識別等。
智能家居行業(yè)應(yīng)用的相關(guān)技術(shù)可能有:WiFi藍(lán)牙等無線通信、MQTT等物聯(lián)網(wǎng)相關(guān)協(xié)議、物聯(lián)網(wǎng)操作系統(tǒng)、物聯(lián)網(wǎng)安全、傳感器數(shù)據(jù)采集處理、物聯(lián)網(wǎng)云平臺等。
汽車電子行業(yè)設(shè)計的相關(guān)技術(shù)可能有:傳感器數(shù)據(jù)采集處理、物聯(lián)網(wǎng)通信技術(shù)、語音識別、電機控制、BMS電池管理、總線通信協(xié)議等。
不同的嵌入式產(chǎn)品,需要的技術(shù)不全一樣。但所需的基礎(chǔ)技術(shù)都是差不多的。
每項技術(shù)可能有著相應(yīng)的開發(fā)崗位,這些崗位實際可能不全叫嵌入式軟件崗,但這些崗位大多都是嵌入式軟件工程師 + 特定知識的學(xué)習(xí)之后就可以勝任。如:
嵌入式軟件基礎(chǔ) + 電控知識 = 電控軟件開發(fā)工程師
嵌入式軟件基礎(chǔ) + AI技術(shù) = 嵌入式 AI 應(yīng)用開發(fā)工程師
嵌入式軟件基礎(chǔ) + 音視頻技術(shù) = 嵌入式音視頻開發(fā)工程師
嵌入式軟件基礎(chǔ) + 底層知識 = 嵌入式驅(qū)動開發(fā)工程師
學(xué)嵌入式要學(xué)到什么程度才好找工作呢?
我認(rèn)為是這些點:
編程語言
基本掌握嵌入式必備的編程語言。C語言為主,C++為輔。在資源有限的情況下,大多數(shù)嵌入式產(chǎn)品還是使用C語言為主的,特別是底層驅(qū)動開發(fā)。上層應(yīng)用開發(fā)大多用C,在一些資源比較充足的平臺中,也會選擇使用C++來進行開發(fā)。
補充編程語言的知識時,除了掌握語言本身的知識之外。還需要同時學(xué)習(xí):編譯、構(gòu)建、調(diào)試等方面的相關(guān)知識。這類很重要的知識一般C語言課程都沒教:
芯片
基本掌握嵌入式處理器的基礎(chǔ)知識。嵌入式處理器種類很多:MCU(微控制器)、MPU(微處理器)、DSP(數(shù)字信號處理器)等。MCU,也就是我們常說的單片機。
初學(xué)期,重點放在單片機的學(xué)習(xí)這一塊。
理解整體框圖、掌握基礎(chǔ)外設(shè)如:GPIO、UART、TIM、ADC、DAC、I2C、SPI的裸機編程及相關(guān)原理、應(yīng)用。
操作系統(tǒng)
基本掌握操作系統(tǒng)相關(guān)知識。
先了解學(xué)習(xí)RTOS,如RT-Thread等。學(xué)習(xí)操作系統(tǒng)內(nèi)核知識:線程調(diào)度、時鐘管理、線程間同步、線程間通信、內(nèi)存管理、設(shè)備管理等,并掌握基本的使用。
再熟悉Linux操作系統(tǒng)的基本使用。
再學(xué)習(xí)Linux下的應(yīng)用開發(fā)知識:多線程編程、多進程編程、文件I/O編程、網(wǎng)絡(luò)編程等。
開發(fā)工具
基本掌握必備的開發(fā)工具。
VScode、VS、Sourceinsight、Vim的使用。
gcc、gdb的使用。
git的使用。
對比工具、串口工具、網(wǎng)絡(luò)工具的使用。
解決問題的能力
上面幾點都可以通過一些技術(shù)資料進行學(xué)習(xí)。這一點則需要需要在實戰(zhàn)中鍛煉,比如自己找一些小項目來做,一來可以把上面列出的幾點內(nèi)容給完整地串起來,二是在做項目的過程中會遇到很多問題,通過不斷解決這些實際問題可以積累一些解決問題的經(jīng)驗。
工作之后,知識儲備該有的都有了,大家最后拼的也都是解決問題的經(jīng)驗、能力。
我覺得牢牢地掌握這些99.99999%的概率都會用得上的嵌入式軟件基礎(chǔ)對找工作才比較有利。其它一些技術(shù)可以再用的時候再去了解、學(xué)習(xí)。
特別是一些行業(yè)相關(guān)知識,可以入行之后再進行學(xué)習(xí)。如果你一開始的目標(biāo)就很明確,要在某一行、某一個方向進行深耕,也可以提早學(xué)習(xí)相關(guān)知識,早些積累一些優(yōu)勢。