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