當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > 新手如何起步ARM開發(fā)?已有單片機(jī)和C語言基礎(chǔ)
目前消費類智能設(shè)備大多使用ARM處理器,比如手機(jī),平板,電視等。但是有很多大學(xué)生對ARM還比較陌生,而是更熟悉8位單片機(jī)。但是不要泄氣,其實ARM的M系列處理器和其他單片機(jī)沒太大的區(qū)別,有51或者STM32基礎(chǔ)的學(xué)生上手起來較為容易。
當(dāng)然,如果已經(jīng)有了單片機(jī)和C語言基礎(chǔ),想學(xué)ARM,那就直接上手就好了。買開發(fā)板,找資料盡可能詳盡的,可以移植操作系統(tǒng)的板子,要不然要想學(xué)系統(tǒng)移植和驅(qū)動就得重新買板子不劃算。建議從ARM從裸板開始,先了解ARM體系的結(jié)構(gòu)(其中以ARM指令集為重點)。由于接觸過裸機(jī)編程,建議還是把模電的一些知識簡單回顧一下,把數(shù)電的知識回顧一下,給看芯片手冊和原理圖上的一些驅(qū)動電路夯實基礎(chǔ)。
再者,最重要也是最難的就是自己動手寫程序,解決問題。這個我建議還是先模仿寫代碼,然后理解,最后自己重寫。這個過程中主要還是在夯實之前接觸過的理論比如:GPIO的操作、GPIO口中斷、UART操作、IIC、SPI、CAN總線等。
至于操作系統(tǒng)的移植這一塊,我覺得對于新手起步并不容易,只有將ARM裸機(jī)各個模塊摸得較為熟悉之后,再上手,先看看Linux操作系統(tǒng)原理相關(guān)的書籍,了解了操作系統(tǒng)的組成,啟動流程,每個過程應(yīng)該做哪些事情之后,再開始學(xué)習(xí)如何編譯配置BootLoader,先把BootLoader用起來,然后再說內(nèi)核的編譯和配置,只有摸清楚配置內(nèi)核、驅(qū)動、添加設(shè)備到設(shè)備樹等操作之后,再好好學(xué)學(xué)什么是文件系統(tǒng),以及文件系統(tǒng)的制作,這個時候基本上就對操作系統(tǒng)有一個比較全面和深入的認(rèn)知。
上面的內(nèi)容搞定之后,再去做一些簡單的字符設(shè)備驅(qū)動的編寫,再到平臺設(shè)備驅(qū)動的話就好上手很多,如果不做驅(qū)動,把上面的內(nèi)容好好學(xué)習(xí),細(xì)化深入就可以了,基本上入門得2個月左右,想要搞得好一點,得知識和經(jīng)驗的沉淀。
如果要深入去做驅(qū)動就得把并發(fā)編程、競態(tài)問題、IO模型、傳感器、常見字符設(shè)備、網(wǎng)絡(luò)設(shè)備、塊設(shè)備等相關(guān)問題進(jìn)行深入研究,每個模塊都是較為復(fù)雜的,這個只有真正去做過,才會有一些經(jīng)驗心得,總之,要想學(xué)明白就必須自己上手獨立自主的去做。要不然永遠(yuǎn)無法入門。
也希望同學(xué)們可以早一點拿到自己心儀的板子,開啟自己的ARM學(xué)習(xí),體會ARM裸機(jī)開發(fā)、系統(tǒng)移植、驅(qū)動開發(fā)的樂趣。