一、嵌入式工程師必備技能總覽
在介紹學習路徑之前,我們先來了解一下要成為一個優(yōu)秀的嵌入式開發(fā)工程師,需要具備哪些技能。我們從硬件和軟件兩部分來介紹。
v 硬件部分:
1. 了解主要器件(電阻、電容、電感、各類二極管、三極管、場效應管、邏輯門電路等)。
2. 熟悉萬用表的用法,熟悉以上器件的測試方法和測試原理。
3. 了解器件封裝的常見類型和特點(直插、表貼、QFNP、BGA、SOT等)。
4. 掌握使用示波器、邏輯分析儀進行測量的方法。
5. 熟知常見器件間通信方式和總線。
6. 能熟練閱讀器件手冊(datasheet)并根據(jù)項目需求對器件進行選型、電路原理圖繪制、電路板布局布線,配合結(jié)構(gòu)工藝完成電路板設(shè)計。
7. 能根據(jù)故障現(xiàn)象對電路板進行測量排查,找出錯誤并修正。
8. 掌握基本的手焊、拆焊、飛線技能。
v 軟件部分:
1. 熟練掌握C語言,熟悉位操作,位段和對齊方式等概念。
2. 掌握基本的匯編語言。
3. 熟悉編譯連接的過程和編譯指令。
4. 理解程序運行中堆與棧的分配和使用。
5. 熟悉linux系統(tǒng)操作和gcc編譯工具、Makefile編寫。
6. 熟悉主流嵌入式CPU的架構(gòu)(如ARM)
7. 熟悉內(nèi)核態(tài)和用戶態(tài),了解不同程序運行的狀態(tài)和編程注意事項。
8. 熟悉系統(tǒng)引導流程,能移植uboot和操作系統(tǒng),構(gòu)建根文件系統(tǒng)和設(shè)備樹。
9. 掌握各類驅(qū)動程序模塊的編寫方法和編譯方法。
10. 熟悉網(wǎng)絡編程原理和數(shù)據(jù)庫編程。
11. 了解UART,IIS,IIC,CAN,SPI等接口協(xié)議并能調(diào)試相關(guān)設(shè)備。
12. 了解至少一種物聯(lián)網(wǎng)應用層協(xié)議如MQTT等。
13. 了解常見的低功耗無線通信模塊的使用如wifi,藍牙,ZigBee。
二、學習路徑和重點
確實,我們嵌入式工程師需要掌握的知識很多,上述的每個知識點都可以展開作為一個單獨學科或者專題進行討論。上面繁多的技能要求可能讓很多同學望而生畏,不過我們嵌入式工程師的任務主要是工程實現(xiàn),而不是理論研究,因此對于上面的知識點,我們不需要特別深入的了解,只需要在概念、原理和實踐方向進行理解和轉(zhuǎn)化,讓我們在工程實踐中能受這些理論的指導,利用這些理論完成設(shè)計和調(diào)試即可。
有一些同學有這樣的疑問:我以后的工作目標是嵌入式軟件工程師,那我還需要硬件部分的知識嗎?這個問題的答案是肯定的,主要有以下2個原因:
1. 嵌入式工程師沒有嚴格的軟硬件區(qū)分。
嵌入式工程師在實際工作中要不斷和硬件打交道,硬件工程師提供了原理圖和PCB布局布線圖,我們嵌入式工程師要根據(jù)數(shù)據(jù)手冊,器件編程指南以及硬件工程師提供的原理圖進行軟件設(shè)計,需要對設(shè)計進行上板驗證,需要調(diào)試除錯,這都需要我們有扎實的硬件設(shè)計功底,否則就需要不斷的去找硬件工程師來咨詢,必然會拖慢整個項目的進度。
2. 要想成為優(yōu)秀的嵌入式軟件工程師,一定要熟知硬件知識。
優(yōu)秀的嵌入式工程師會參與項目的需求分析,器件選型等硬件設(shè)計工作,這不僅需要我們有豐富的行業(yè)經(jīng)驗,更需要我們有扎實的硬件基礎(chǔ)。
另外,驅(qū)動編寫等工作要求我們必須清晰的了解硬件的特性,如總線速度、時延、單雙工模式、是否有緩沖、是否支持DMA等等,了解硬件的特性才能充分挖掘硬件潛力,提升速度和穩(wěn)定性。
又如,在和硬件工程師一起調(diào)試設(shè)備問題時,嵌入式軟件工程師需要根據(jù)硬件特點編寫對應的測試程序,如并行總線的數(shù)據(jù)相位測試、串行差分信號的眼圖測試,都需要嵌入式軟件工程師編寫對應的測試程序。如果嵌入式軟件工程師沒有相應的硬件知識,溝通成本會陡然增加,項目延期風險也就大大增加了。
綜上,要做優(yōu)秀的嵌入式工程師,而不是渾渾噩噩混日子的小工,就要嚴格要求自己,把硬件知識也補上來。
>>本文地址:http://uj2y2uok.com/zhuanye/2019/48087.html
聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
1 您的年齡
2 您的學歷
3 您更想做哪個方向的工作?