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