嵌入式這個(gè)行業(yè)現(xiàn)在可以說(shuō)是非常的吃香了,不管是就業(yè)的前景還是就業(yè)的薪資都是非常的高的,但是想要進(jìn)入到這個(gè)行業(yè)的話(huà)肯定也是非常困難,因?yàn)橛懈呤杖刖鸵懈吒冻觥H绻f(shuō)你想要進(jìn)入到這個(gè)行業(yè)的話(huà)那么就要有真材實(shí)料的本事才行,想要成為嵌入式工程工程師要掌握好什么技能呢?
1. 編程能力
嵌入式工程師大類(lèi)上屬于軟件工程師的范疇,編程技能是基本功,DJI、小馬智行、NINEBOT、石頭科技、OPPO、小米、地平線(xiàn)這些公司都對(duì)C/C++要求熟練掌握的程度。
除此以外對(duì)解釋型語(yǔ)言要求為至少熟悉一種腳本語(yǔ)言。了解Linux系統(tǒng),會(huì)使用Makefile工程管理工具等。
可見(jiàn),C和C++仍舊是嵌入式開(kāi)發(fā)主流的語(yǔ)言。底層軟件這么多年來(lái),一直是C的天下,在可預(yù)見(jiàn)的將來(lái),不會(huì)改變。
隨著系統(tǒng)復(fù)雜度越來(lái)越高,越來(lái)越多的應(yīng)用層軟件采用C++來(lái)編寫(xiě)。Sehll主要用于制作工程管理工具,Python可以讓你和人工智能工程師愉快對(duì)話(huà)。
2. 處理器架構(gòu)
美團(tuán)、小馬智行、石頭科技、OPPO、VIVO都要求熟練掌握或者精通STM32單片機(jī)和ARM處理器架構(gòu),其它加分項(xiàng)有DSP、熟練使用ARM Cortex-A或M系列內(nèi)核的SOC。
這部分我們需要了解Cortex-M和Cortex-A系列處理器架構(gòu)。哈佛架構(gòu)、馮諾依曼架構(gòu)、多級(jí)流水線(xiàn)、是簡(jiǎn)單的問(wèn)題。SIMD、MIMD、指令預(yù)取、亂序執(zhí)行這些概念也要搞懂。
3. 操作系統(tǒng)
目前的電子產(chǎn)品功能越來(lái)越多,也越來(lái)越復(fù)雜,操作系統(tǒng)可以極大地簡(jiǎn)化產(chǎn)品的開(kāi)發(fā)難度。
大疆、美團(tuán)、小馬智行、小米、地平線(xiàn)都要求熟悉Linux下的多進(jìn)程多線(xiàn)程、網(wǎng)絡(luò)編程的開(kāi)發(fā)和調(diào)試,內(nèi)存、功耗、性能優(yōu)化等。
無(wú)人駕駛和無(wú)人機(jī),這些對(duì)響應(yīng)速度要求高的行業(yè),對(duì)實(shí)時(shí)操作系統(tǒng)也有不同程度的要求。
在這一部分我們需要掌握基本的操作系統(tǒng)知識(shí),理論結(jié)合實(shí)際,熟悉一個(gè)RTOS,大多數(shù)的RTOS的復(fù)雜度遠(yuǎn)小于Linux。
Linux擁有完善的生態(tài),相較于RTOSLinux的C庫(kù)配置已經(jīng)很完善了。但是想要用好就有一定難度了,在這里需要了解內(nèi)存管理、進(jìn)程管理、多核、中斷、鎖、消息隊(duì)列,性能分析等等內(nèi)容來(lái)應(yīng)對(duì)開(kāi)發(fā)工程中幀率下降、系統(tǒng)秒級(jí)卡死、相機(jī)丟幀等異常。
4. 接口與驅(qū)動(dòng)
許多初涉嵌入式行業(yè)的人會(huì)狹隘的認(rèn)為搞嵌入式就是寫(xiě)驅(qū)動(dòng)。
美團(tuán)無(wú)人配送、小馬智行、石頭科技對(duì)CAN、SPI、I2C、UART這些常見(jiàn)的低速接口都要求熟悉,其它的像LCD、Touch、Camera、USB、BT/WIFI/GPS、IMU這些進(jìn)入尋常百姓家的Sensor驅(qū)動(dòng)開(kāi)發(fā)經(jīng)驗(yàn)是妥妥的加分項(xiàng)。
低速接口的驅(qū)動(dòng),在廠(chǎng)家提供的BSP中一般都有,只需要仔細(xì)看手冊(cè),搞清各接口所需的工作模式并做適當(dāng)配置,該用中斷的時(shí)候用中斷,該用DMA的時(shí)候用DMA,即可。
5. Framework
中間件和協(xié)議棧的部分有一個(gè)特點(diǎn),研發(fā)機(jī)器人的企業(yè)一般都會(huì)要求熟悉ROS,相機(jī)類(lèi)的企業(yè)要求熟悉camera、codec、storage相關(guān)的pipeline。還有基本的協(xié)議棧也是必須了解和掌握的。
6. 應(yīng)用編程與調(diào)試
美團(tuán)無(wú)人配送、小馬智行、NINEBOT、小米都要求熟悉Linux或Unix系統(tǒng)編程,了解基本的編譯原理,需要掌握gdb、valgrind、strace、perf、coredump等調(diào)試手段,用好log系統(tǒng)。
只要掌握上面編程能力、操作系統(tǒng)、Framework這些內(nèi)功心法,調(diào)試工具不過(guò)是招數(shù)。
7. 硬件知識(shí)
科技企業(yè)大多要求了解一定的硬件知識(shí),基礎(chǔ)硬件知識(shí)的掌握程度,達(dá)到可以看懂原理圖并對(duì)常見(jiàn)的元器件有一定了解,熟悉模電數(shù)電知識(shí)即可。基本上是電子工程類(lèi)學(xué)生,所學(xué)專(zhuān)業(yè)課的內(nèi)容。另外,要會(huì)使用示波器等測(cè)試儀器,會(huì)驅(qū)動(dòng)常見(jiàn)的傳感器等。
要想成為一名的嵌入式工程師的話(huà)那么還是要掌握好粵嵌科技上面所說(shuō)的7點(diǎn)的,只有掌握好了技術(shù)之后你才可以真正勝任這份工作。想要學(xué)習(xí)嵌入式來(lái)進(jìn)入到這個(gè)行業(yè)的話(huà)可以來(lái)我們粵嵌科技的嵌入式培訓(xùn)班學(xué)習(xí),也可以先點(diǎn)擊我們文章下面的獲取試聽(tīng)資格按鈕來(lái)獲取我們的嵌入式課程免費(fèi)試聽(tīng)資格,在試聽(tīng)中可以更加深入的了解我們粵嵌科技。