高手告訴你ARM入門該學什么
ARM入門階段通常是最容易讓人產(chǎn)生挫敗感的時候,并不是因為知識有多么難以理解,而是因為很多人并不知道從哪方面進行入手。此時一篇較為系統(tǒng)的入門知識介紹文章就變得很有必要,本文來自于一名經(jīng)驗豐富的電源設(shè)計者,將其對新手的入門建議進行了總結(jié),大家快來看一看吧。
關(guān)于基礎(chǔ)
很多人在學習ARM時都在糾結(jié)是否需要有51、AVR等基礎(chǔ)。其實這部分知識并非必須,懂一些更好但沒有也無所謂。沒有相關(guān)基礎(chǔ)也無所謂,重要的是找一些參考書,去了解里面的例子和原理圖,例程里有匯編有C,都能看懂即可,不用追求能夠流利編寫。
需要學習哪些軟件
軟件實際上就那么幾種,下面為大家總結(jié)一下。
ADS調(diào)試用
確切的說是ADS+AXD。ADS里包含AXD。以前都用SDT,但后來ARM公司停止對SDT的支持,轉(zhuǎn)而支持ADS,所以還是用ADS比較好。目前有的人的程序發(fā)布的仍然是SDT版本,但基本都可以找到相應ADS的,新人在這里不要發(fā)蒙。ADS是編譯器,AXD是調(diào)試器。編譯成AXF以后再在ARM的RAM里調(diào)試。
PLASHPGM
FLASH燒寫的軟件。AXD在RAM里調(diào)試就不會出現(xiàn)掉電,方便程序修改。調(diào)試好的程序再下到FLASH里上電直接運行。同類的軟件還有很多,比如FLUTED、FLSHP,但FLASHPGM最好。
BANYANT調(diào)試代理
調(diào)試代理就是用更簡單的JTAG來實現(xiàn)原本1K才賣的JTAG仿真器的大部分功能??梢院唵蔚闹v其理解為自行制作的JTAG驅(qū)動。此外調(diào)試代理還有很多種,如H-JTAG、ARM7。
需要注意的是,每種調(diào)試代理安裝方法雖然簡單但都不盡相同,因此需要留意說明。而且AXD調(diào)試之前都要運行。
ARM-ELF-TOOLS工具鏈
其中包含UCLINUX開發(fā)用的工具,如ARM-ELF-GCC。工具鏈就是把很多工具打包在一起發(fā)布,方便開發(fā)東西。另外如果要開發(fā)LINUX就要用ARM-LINUX-TOOLS,這里是不一樣的,不能通用。
U-BOOT
大名鼎鼎的BOOTLOADER生成工具,生成的BOOTLOADER燒到FLASH里,然后就可以用BOOTLOADER下載燒寫其他。需要注意的是有了BOOTLOADER才能下UCLINUX。BOOTLOADER就像電腦上的BIOS。
UCLINUX包
UCLINUX的源碼包,建議大家用現(xiàn)成的先體會一下,然后再自己編譯、裁剪。因為單獨UCLINUX的編輯技術(shù)上比較簡單,但涉及的方面卻比較廣。
VMWARE
老牌的虛擬機軟件,在一個機器上虛擬出一個機器裝LINUX,省去了頻繁開關(guān)及的步驟。
該看哪些書?
這里主要為大家推薦ZLG的三本書,其他的再上網(wǎng)隨便查查資料就可以了?!禔RM嵌入式LINUX系統(tǒng)構(gòu)建與驅(qū)動開發(fā)》,北航版。這本驅(qū)動寫的很詳細,前期開發(fā)介紹也很好?!禔RM嵌入式系統(tǒng)實驗教程(二)》,北航版,有ZLG2200的原理圖,實驗程序和注釋?!禔RM嵌入式系統(tǒng)基礎(chǔ)教程》,最重要的是體系結(jié)構(gòu),匯編部分介紹,主要增加理論素質(zhì)。
用途與系統(tǒng)的選擇
如果主攻開發(fā)和工業(yè)設(shè)計,那么推薦UCOS,小巧、多進程、簡單、體現(xiàn)了ARM7的精髓。LINUX消費與通信領(lǐng)域用的比較多,但缺點是必須ARM9才能啟動。UCLINUX嵌入式系統(tǒng)在ARM7上可以跑,學好可以比較方便的轉(zhuǎn)向LINUX。最后,也會有設(shè)計者選擇當單片機來使用,但這里并不推薦,因為對于學習來說多進程的系統(tǒng)設(shè)計才是ARM7的精髓。
通過本文的介紹,處于入門階段的朋友是否對ARM入門的學習有了一定的規(guī)劃了呢?相信按照本文給出的經(jīng)驗和順序階段,大家一定能順利的掌握ARM的相關(guān)知識。感興趣的朋友不妨收藏本文,不時拿出來進行溫習,鞏固知識。