學(xué)習嵌入式系統(ARM)的一些想法
在學(xué)習單片機的時(shí)候學(xué)的比較快,在學(xué)51和AVR的時(shí)候都可以說(shuō)是得心應手??赡芫褪鞘智懊鎸W(xué)習的影響,認為學(xué)ARM也會(huì )比較順利。到開(kāi)始學(xué)習ARM的時(shí)候才知道要入門(mén)是多么“痛苦”,每天就對著(zhù)教程、資料折磨。沒(méi)有多少是學(xué)的明白的,完全不知道怎么學(xué)起。它涉及的內容和知識太多了。我整理了一下這段時(shí)間的學(xué)習資料,我已經(jīng)看完的和我接下來(lái)要用的,總共29 G,我前10年讀書(shū)用的資料都可能沒(méi)有這么多。
學(xué)ARM不能再和以前學(xué)單片機那樣,剛開(kāi)始時(shí),不能說(shuō)從哪里開(kāi)始學(xué)。只有拿著(zhù)資料、教程慢慢磨。久了就積累了一定的知識就會(huì )明白了,這個(gè)過(guò)程的滋味只有做過(guò)才能體會(huì )。前些天也實(shí)在很困惑無(wú)從下手。然后就下定決心從Entry入手,從CPU的第一條指令開(kāi)始,跟著(zhù)走下去。這樣做的阻力更加大,像在Bootload里面我就只會(huì )讀C和匯編,Makefile、連接腳本、腳本文件、配置文件就沒(méi)有辦法讀了。所以根本就不明白它是這么編譯的。
很多人都說(shuō)不要把ARM當做單片機來(lái)學(xué)。我覺(jué)得學(xué)嵌入式應該分開(kāi)內容學(xué)習,第一步就是要把它當單片機學(xué)起 。把它當單片機學(xué)就是要徹底把開(kāi)發(fā)板上的硬件驅動(dòng)程序全部都學(xué)會(huì )了(液晶、Nandflash、Norflash、網(wǎng)卡、聲卡等)。對片上資源(串口、usb、ad、DMA等等)的驅動(dòng)和CPU的匯編指令熟練掌握。這樣就為移植bootload打下了扎實(shí)的基礎。
把硬件搞定后就學(xué)軟件了。學(xué)習Linux系統也是個(gè)漫長(cháng)的過(guò)程?。。。?!
剛剛見(jiàn)到Linux的時(shí)候,“天啊這東西這么能用啊”。要學(xué)會(huì )Linux的命令和操作(各個(gè)軟件的操作、各項參數的配置),會(huì )使用Linux了就學(xué)習Linux下的編程(shell編程、Makefile、連接腳本、C編程),然后就深入學(xué)習Linux的內核代碼,把Linux的目錄結構弄熟了。把它里外都搞定了。
能做到上面的了,那么移植U-Boot和移植Linux內核就小意思了。
整個(gè)學(xué)習內容分為了幾大部分:
1:把ARM當單片機(學(xué)它的匯編、開(kāi)發(fā)板上硬件的驅動(dòng))
2:Linux的使用(命令、參數配置、編程等)
3:深入學(xué)習Linux內核
4:U-boot和Linux內核的移植
5:制作文件系統
6:Linux設備驅動(dòng)開(kāi)發(fā)
7:應用程序開(kāi)發(fā)(QT)
這些內容對每一個(gè)學(xué)習的人來(lái)說(shuō)都是要命的工作啊,對于我來(lái)說(shuō)最要命的是,在這個(gè)學(xué)習過(guò)程中的大部分文件和軟件都是純英文的?。。。。。?!慢慢熬吧。要把這些都學(xué)了我想最快也要一年吧!不過(guò)對于一個(gè)人來(lái)說(shuō),不一定要把所有的都要學(xué)會(huì )了。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論