嵌入式開發(fā)學(xué)習(xí)什么?嵌入式開發(fā)門檻高,涉及的知識(shí)面廣,既要求懂硬件,又必須能寫軟件,而軟硬件涉及的知識(shí)體系卻又是異常的龐大,下面我們就來歸納下嵌入式學(xué)習(xí)就業(yè)路線。
嵌入式開發(fā)學(xué)習(xí)什么?我們需具備基本的電路知識(shí),了解常用元器件、芯片,能看懂原理圖,作為嵌入式軟件開發(fā)人員也必須懂一些硬件設(shè)計(jì)方面的知識(shí);
具備一定的MCU設(shè)計(jì)與應(yīng)用能力,從單片機(jī)到ARM再到DSP,能夠根據(jù)客戶要求設(shè)計(jì)產(chǎn)品;掌握至少一種單片機(jī)的編程與使用,比如常見的STM32,后期可以涉獵FPGA;
了解基本的MCU外圍模塊,SPI、I2C、UART、GPIO、ADC、PWM、Timer、FLASH等原理,能根據(jù)硬件原理以及芯片手冊(cè)編寫裸機(jī)設(shè)備驅(qū)動(dòng)程序;掌握常用工業(yè)通訊協(xié)議比如CAN、Modbus等;
學(xué)習(xí)至少一種操作系統(tǒng),包括但不限于uCOS、FreeRTOS、RT-Thread、Vxworks等,并且一定要學(xué)習(xí)嵌入式linux的使用與編程,搞明白多任務(wù)調(diào)度、信號(hào)量、郵箱等的原理與使用;
學(xué)習(xí)linux平臺(tái)下的設(shè)備驅(qū)動(dòng)程序設(shè)計(jì),掌握字符設(shè)備、塊設(shè)備、網(wǎng)絡(luò)設(shè)備的驅(qū)動(dòng)框架,并能夠熟練設(shè)計(jì)這些設(shè)備驅(qū)動(dòng),比如ADC、UART、SPI、GPIO、Camera等等,視頻驅(qū)動(dòng)框架一定要搞懂V4L2;
學(xué)習(xí)GUI設(shè)計(jì),具備基本的嵌入式產(chǎn)品GUI設(shè)計(jì)能力,可以學(xué)習(xí)Qt,它的跨平臺(tái)特性很適合嵌入式開發(fā);
當(dāng)然也可以轉(zhuǎn)到App設(shè)計(jì)開發(fā);學(xué)習(xí)多線程編程,搞明白線程池原理并應(yīng)用到實(shí)際產(chǎn)品中;具備高并發(fā)網(wǎng)絡(luò)通信編程能力,熟練掌握epoll以及l(fā)ibevent的使用和設(shè)計(jì);
掌握至少一種數(shù)據(jù)庫編程能力,嵌入式可以學(xué)習(xí)SQlite;
掌握C/C++編程語言,學(xué)習(xí)C語言,掌握基本的數(shù)據(jù)類型、指針、結(jié)構(gòu)體等,可以設(shè)計(jì)linux平臺(tái)下的應(yīng)用程序以及后臺(tái)服務(wù)程序,并涉獵其他編程語言,可以學(xué)習(xí)Python;
修煉內(nèi)功,學(xué)好數(shù)學(xué),學(xué)習(xí)各種編程算法,掌握常用數(shù)據(jù)結(jié)構(gòu)以及算法的原理和實(shí)現(xiàn),鏈表、隊(duì)列、排序、查找等;掌握常用濾波算法及其實(shí)現(xiàn),比如一階互補(bǔ)濾波、卡爾曼濾波等;掌握PID原理與算法實(shí)現(xiàn);
以上即是嵌入式軟件開發(fā)的路線,嵌入式開發(fā)學(xué)習(xí)什么當(dāng)然不一定適合每個(gè)人,但總體來講掌握這些對(duì)以后的進(jìn)一步發(fā)展有很大幫助。粵嵌建議大家一定要堅(jiān)持和學(xué)習(xí),在自己的領(lǐng)域中精進(jìn)。