嵌入式軟件開發(fā)涉及的知識點很多,我僅以自己多年的經(jīng)驗簡單說一下:
1、備簡單的硬件電路設計能力,包括數(shù)字電路和模擬電路;做嵌入式軟件對硬件一樣要有一 定的
基礎;
2、MCU設計與應用,從單片機到ARM到DSP等要具備根據(jù)客戶要求設計產(chǎn)品的能力;外圍端[和
設備的設計使用以及驅動程序的編寫能力,包括ADC、FLASH、 EEPROM、 RTC、 Timer. GPIO、
CAN、UART. I2C、 SPI、 以太網(wǎng)、液晶顯示器等等;
3、操作系統(tǒng)方面至少要精通一種嵌入式操作系統(tǒng), 比如uCOIII、freeRTOS 、Vxworks等, 并且
-定要學嵌入式linux, 搞明白多任務調(diào)度、信號量、郵箱等的原理和使用; 在實際的項目中使用這
些操作系統(tǒng)并逐漸掌握它們;
4、能編寫常見的linux平臺下的外圍設備驅動,包括但不限于ADC、GPIO、 UART、I2C、攝像
頭、SD卡、網(wǎng)卡、SPI等等, 搞明白字符設備、塊設備以及網(wǎng)絡設備的常用設備驅動程序架構;
5、具備GUI設計能力,可以學習Qt,它的跨平臺特性使得一套設計可以應用于不同的平臺包括
windows以及l(fā)inux;
6、具備多線程編程能力,弄懂線程池的原理并應用到實際工作中;
7、具備高并發(fā)網(wǎng)絡通信編程能力,epoll以及l(fā)ibevent 的使用和設計;
8、精通C/C++,并涉獵其他編程語言比如python
9、備至少-種數(shù)據(jù)庫編程能力,嵌入式可以學習SQLite;
10、掌握常用數(shù)據(jù)結構及算法的原理以及編程實現(xiàn),包括鏈表隊列、=叉樹等,掌握常用排序、
查找等算法的實現(xiàn);多關注一些開源項目, 從中學習編程能力,提高自己;
相信掌握這些E經(jīng)基本具備嵌入式系統(tǒng)開發(fā)能力,一定要保持時刻學習的能力, 接下來就是多做項
目,多解決客戶問題,在實際工作中歷練自己提高自己。 |