ARM9开发之学习过程总结
一路摸爬滾打,時至今日,與心愛的TQ2440相伴已有一年,從當初的一無所知到今天的得心應手,其間經歷的種種,實在難以言表。想起第一次在串口打出一個字符的時候,那種心情,簡直激動得快要爆了,這里先將我學習ARM中的整個過程簡單總結一下,以后再詳細的針對每個知識點寫寫東西。希望對剛接觸的朋友有個提示作用,也希望高手不吝賜教,給些學習建議,歡迎拍磚^_^。需要說明的是,這僅僅說是ARM,其間涉及到別的知識也是需要很多時間去學習的,這里我就不列舉了。
開發板的配套光盤有很多資料文檔,在學習之前,大概瀏覽一下是非常不錯的,強烈建議,特別是S3C2440的技術參考手冊。
1,熟悉開發板的硬件資源(TQ2440的原理圖)
2,熟悉SRAM,SDRAM,Nor Flash,Nand Flash。
3,熟悉內存控制器的初始化,程序要在SDRAM中運行,首先要初始化SDRAM。
4,熟悉ARM920T的啟動方式(Nor Flash/Nand Flash)。
5,學會程序下載例程運行(TFTP方式或者USB方式)。
6,搭建開發環境(GCC交差編譯)。
7,學習ARMv4指令集,編寫簡單的匯編程序,下載運行。
8,務必非常熟悉串口UART的使用,后邊你自己的程序調試都需要通過串口來輸出。
9,學習ARM匯編與C語言的混合編程,GCC內聯匯編,掌握參數傳遞方式和ARM過程調用標準(APCS)即可。
10,到了這一步,基本上就可以用板子上的硬件資源來練習了,LED,按鍵,IIC接口的EEPROM, LCD等(板子上的蜂鳴器,
LED,串口都可以用來當調試工具,觀察它們的現象,判斷你的程序執行情況)。
11,現在要學習ARM工作模式,異常處理機制,要非常熟悉中斷處理,會編寫中斷處理程序。
12,自己可以寫一個bootloader,寫DM9000網卡驅動程序,實現ARP,IP,UDP,TFTP協議,從而用你自己的bootloader實現從服務器下載數據到開發板(我已經實現了一個,大家需要的,可以留言說明,我會聯系大家)。
13,當第12步完成后,你可以嘗試用你的bootloader從PC的TFTP服務器下載Linux內核鏡像到開發板,然后啟動Linux。
14,現在可以學習uboot了,就是你的開發板一上電就運行的那個東西,主要是學習移植。
如果你把12,13步完成了或者理解了,那么你也理解uboot了,它和你自己寫的bootloader是一樣的東西,只不過它功能更強大而已,可以做很多事情。
(但是最主要的就是,獲取Linux內核鏡像,初始化硬件環境,運行Linux)。
15,此刻,若你依然深愛著ARM920T,那么你可以在上面寫一個操作系統(或者稱為調度器),使用ARM920T的MMU。再編寫或移植一套GUI,實現一個文件系統,實現一個TCP/IP協議棧(只要你想得到的,都可以在上面實現,目前我也在做)。
雖然剛畢業幾個月,工作中也沒有接觸ARM9,但是我有時間就會堅持學習ARM9這款CPU,希望有朝一日,在接觸新的ARM處理器時,也能快速入手。
總結
以上是生活随笔為你收集整理的ARM9开发之学习过程总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DBF文件简介(转)
- 下一篇: 影响股市的因素