學習ARM技術並不難,難就難字看你自己會不會學習

 
如果您是ARM初學者或者以前是51單片機應用開發工程師,想快速進入32位ARM嵌入式開發領域,建議您閱讀本文檔。本文檔是我們結合多年ARM開發經驗,針對初學者對ARM嵌入式開發中存在的各種疑問,結合單片機培訓(www.edu118.com)學員和老師多年的學習教學實踐而總結的一些經驗,相信您按照我們的學習建議,加上您的努力與堅持,很快就可以進入32位嵌入式開發領域,因爲我們自己就是這樣一步一步走過來的。
注意:我們所給出的學習建議並不一定完全適用於每一個ARM初學者,本文檔僅作爲用戶的學習參考。
1.初識ARM
       相信ARM初學者已經通過各方面的信息(尤其是因特網)對ARM或多或少有所瞭解。那麼,看看您是否對以下我們所提出的概念有所瞭解:
(1)“ARM”到底指的是什麼?(是一家公司?是一款芯片?是一種技術?)
(2)ARM處理器芯片如何分類?
(3)目前有哪些芯片廠商生產ARM處理器芯片?
(4)目前國內應用比較多的ARM處理器芯片有哪些?它們主要應用於哪些領域?
以上四個問題,用戶可以通過在網上查找資料很快得出答案。我們之所以只提出問題,不給出答案,是希望用戶能夠親自去查閱相關信息和資料,因爲這也是ARM學習的一部分。我們希望用戶能夠與我們給出的學習建議進行一種互動,即我們提出問題,用戶通過查找資料來找出答案,這樣更有助於用戶對知識的理解。
2.一開始就必須掌握ARM體系結構與彙編指令?
未必!我們身邊的很多ARM初學者,一開始就抱着有關ARM體系結構的書籍開始苦讀,更有甚者,在很多具體內容上鑽牛角尖,把大量時間花在了ARM彙編指令上,幾個月下來,進展不大,雖然也能知道一些ARM的相關概念,但離真正的具體應用相差甚遠,很多初學者會感覺到,學完ARM體系結構後,對ARM的應用還是無從下手,一片茫然,有的甚至就因爲這個原因,被擋在了ARM嵌入式開發領域的大門外,從此放棄了ARM嵌入式開發的學習。
請用戶不要誤解,我們並不是主張用戶不看ARM體系結構的相關書籍,關鍵在於怎麼看、看到什麼程度。根據我們的經驗,ARM初學者對於ARM體系結構的相關知識只需做到“瞭解”這一程度就可以了,對於ARM的彙編指令完全可以不用記憶,只要能看懂就可以(目前大部分基於ARM的產品開發都採用C語言,彙編語言的使用機會大大減少,只有在操作系統移植以及某些特殊應用中才會用到部分彙編指令)。隨着初學者對ARM更深入地學習,有關ARM體系結構與彙編指令的知識以後可能會反覆出現,遇到時再有針對性的重點看,相信會取得比較好的效果。
注意:有關ARM體系結構的文檔請用戶參看配套光盤“用戶使用手冊”文件夾中的“ARM7TDMI_en.pdf”文件,該文檔爲ARM公司的官方技術手冊,雖然是英文版,但我們建議初學者一開始就養成查看英文手冊的習慣,因爲很多翻譯的資料並不能保證完全翻譯正確。
如果初學者對英文確實感到頭痛,那也可以找幾本ARM體系結構相關書籍來看,北京航空航天大學出版社出版了多本比較不錯的ARM相關書籍,用戶可以參考。
3.選擇ARM的軟件集成開發環境
目前,流行的ARM軟件集成開發環境有ADS1.2、Keil uV3和IAR等。對於51單片機應用開發工程師來說,Keil開發環境應該應用得比較熟練,若採用Keil uV3進行ARM軟件開發,應該可以快速上手。但是,我們並不推薦ARM初學者選擇Keil uV3進行ARM軟件開發,主要是基於以下2個原因:
(1)Keil uV3是第三方ARM軟件集成開發環境,目前支持的ARM芯片種類還不多,所帶的編譯器也並不完善;
(2)由於Keil uV3爲了方便用戶的開發,提供了現成的ARM啓動文件,換句話說,它屏蔽了ARM開發中的一個重要內容——啓動代碼的編寫,而這一點對初學者來說應該是非常重要的內容。
IAR目前國內應用的人還不多,相關資料也不是很多,所以我們也不推薦初學者使用。
ADS1.2集成開發環境是ARM公司推出的ARM核微控制器集成開發工具。它支持ARM10之前的所有ARM系列微控制器,支持軟件調試及JTAG硬件仿真調試,支持彙編、C、C++源程序;具有編譯效率高、系統庫功能強等特點;可以在Windows 98、Windows 2000、Windows XP以及RedHat Linux上運行。
本開發板配套的所有實驗都是採用Wiggler板+H-JTAG調試代理軟件,在ADS1.2集成開發環境下進行編寫及調試的,非常方便。
基於以上原因,我們推薦ARM初學者使用ADS1.2集成開發環境進行ARM開發。關於ADS1.2集成開發環境的使用,初學者可以參看ADS1.2集成開發環境自帶的用戶手冊。另外,向ARM初學者推薦一本關於ADS1.2集成開發環境使用的好書——ARM開發工具ADS原理與應用 趙星寒 劉濤著 北京航空航天大學出版社 2006年2月第一版。
4.學ARM必搞嵌入式操作系統?
很多ARM初學者有一個錯誤的概念——學ARM必搞嵌入式操作系統。認爲在ARM上跑嵌入式操作系統就代表技術先進、產品檔次高的觀點絕對是謬論。持這種觀點的人一定是沒有做過具體的產品開發。一個嵌入式產品是否需要跑嵌入式操作系統,是由很多因素決定的,例如,產品的功能需求、開發成本、開發週期等都是需要綜合考慮的。
對於ARM初學者來說,前期我們並不建議使用嵌入式操作系統。當用戶把所有配套實驗都熟練掌握後,即對LPC213X/214X的內部功能器件可以做到熟練應用的程度後,可以考慮學習一個具體的嵌入式操作系統。
目前,流行的嵌入式操作系統非常多,例如,uC/OS-II、WinCe、Linux、VxWorks等。對於初學者,我們慎重地推薦源碼公開的uC/OS-II嵌入式操作系統。uC/OS-II已經有很多產品成功使用的案例且得到了美國航空管理局的認證,北京航空航天大學出版社也出版了配套的專著。國內熟悉這個嵌入式操作系統的開發人員特別多,十分容易通過網站上的討論社區得到幫助,更關鍵的是,初學者可以很容易地通過閱讀源碼達到徹底掌握嵌入式操作系統的目的。在熟練掌握了uC/OS-II後,用戶已經從ARM初學者進入到了ARM應用開發工程師的行列。下一步可根據自己的知識背景、興趣愛好和開發領域,再選擇一個嵌入式操作系統(例如WinCE、Linux或VxWorks等)進行學習,徹底掌握ARM嵌入式系統開發。
5.如何檢驗學習成果
        在經過一段時間的學習後,初學者一定想知道自己達到了一個怎樣的程度,我們給初學者提供一個檢查自己學習效果的方法:可以仿照我們的開發板,自己做一款類似的開發板出來。當然,沒有必要完全按照我們的設計,您可以在自己設計的開發板中加入更多的功能,配套更多的實驗。
6.充分利用網絡資源,不恥下問!
我們已經進入了信息大爆炸的時代,很多知識都可以通過網絡及時地獲得。在學習的過程中遇到困難時,可以通過網絡獲得幫助,只要我們虛心好學,不恥下問(當然要注意在網絡上尋求別人幫助的方式方法),一定會得到很多好心人的幫助,使自己每天都有所提高。
7.知識是永遠學不完的——學海無涯、人生苦短(www.edu118.com)
學習ARM嵌入式開發,尤其對於初學者而言,不應該過早地、過多地將精力用在嵌入式系統移植、Linux內核的研究和學習上,這些誘人的“熱點”很容易使初學者迷失方向,進而忽視對基礎知識的深入學習,到頭來說得頭頭是道,可真的幹起來卻離實際的需求差得太遠。知識是永遠也學不完的——學海無涯、人生苦短!我們學習的目的是爲了滿足應用的需求。只要方法得當,掌握ARM嵌入式開發應用技術其實並不難。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章