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