20111010最近學習計劃佈置
阿新 • • 發佈:2019-01-06
在網上看了無數的帖子,其中很多讓我學習到了很多實用的技能。在此感謝各位網路大蝦的無私奉獻。
10年3月開始有計劃接觸到at91sam9260這顆晶片,本來有塊三星的2440學習板,搞的時間也不是長,斷斷續續1年左右吧。
三星的2440學習,熟悉了嵌入式開發的流程,開發整體環境的搭建過程,各種網路資源的獲取,對不同資料的篩選。選出對自己有價值的資料。
在這段時間裡,對ARM9 的啟動過程有了明確的熟悉,主要是對底層啟動過程了分析,有記錄,以後整理成筆記再說。
因為工作的原因,很長時間沒有好好地研究這塊東西了,總是斷斷續續的,很是不爽。
又是因為工作的原因,在兩月前開始了自己業餘的學習研究,總體來說,比第一次的學習過程要快的很多。
at91sam9260的學習過程和2440還是有很多的差距的,主要體現在啟動的流程上
詳細見:
啟動過程
本文主要講述從Data Flash上啟動的過程,NAND flash啟動,NOR Flash啟動請參考相關文件。
主要的學習在意於,連線指令碼檔案的分析,彙編程式碼,Makefile,C語言這些檔案的原始碼分析
- 處理器復位,根據BMS引腳的設定,選擇從內部ROM啟動(NOR Flash啟動方式不在本文的討論範圍)。
- ROM中的程式碼開始執行,初始化處理器和必要的外設,比如DBGU,USB device port。然後開始從Data Flash的0地址檢索合法的啟動程式,也就是Bootstrap。
- 如果合理的Bootstrap存在,ROMBOOT將其複製到內部SRAM並跳轉到Bootstrap執行。如果沒有,則等待DBGU或者USB口的連線,這部分內容請參考SAM-BA手冊。
- Bootstrap將初始化一些裝置,主要是Data Flash與SDRAM,然後從Data Flash特定位置(在Bootstrap原始碼中指定)將U-boot複製到SDRAM的指定位置,然後跳轉到U-boot開始位置執行。
- U-boot根據環境變數(bootcmd)載入Linux Kernel的image。載入完成後跳轉到Kernel執行,並傳遞啟動引數(bootargs)。
- Linux Kernel開始執行,載入相關驅動,並載入rootfs。其中的細節,可以參考Linux書籍。
具體的學習計劃佈置:
AT91Bootstrap1.16
u-boot-2010.06
linux-2.6
檔案系統
以後的筆記中有問題,還望各位指教了!在此謝過大家!