Uboot #1 簡介與初探

日常使用的電腦中存在啓動程序叫BIOS,是跟隨CPU一起開發且固化在硬件設備上的,負責進行初始化硬件設備同時啓動系統。當然如果需要使用BIOS,系統就應該遵循BIOS的規則去設計,包含中斷向量和內核地址等都應該在約定地址上。當然我們的系統也可以不按該規則進行設計,有困難直接加一層,承當這一層任務的就是bootloader。bootloader用來引導啓動系統,會在啓動系統前進行硬件設備的初始化和相關軟件環境的佈置,如重定位等,最終啓動系統。個人覺得和BIOS作用高度重複,因此在沒有BIOS的CPU中,bootloader自然而然地頂替了boot的地位,而存在BIOS的系統,則bootloader將會遵循BIOS的規則,讓BIOS來啓動自己,最終系統仍然能夠自己定義規則,此時大部分硬件設備初始化工作還被BIOS承擔了。

說了這麼多,bootloader其實就是個啓動系統的工具,只是在啓動之前做了些初始化讓系統能夠順利成功地啓動。bootloader是這一類相同功能的工具統稱,比較出名的是我們這裏使用到的Uboot。

本次uboot選擇了1.1.6版本,可以在其官網http://www.denx.de/wiki/U-Boot/找到對應版本的下載鏈接。同時使用了100ask的JZ2440單板補丁進行試驗分析。首先解壓源代碼文件

tar -jxvf u-boot-1.1.6.tar.bz2

然後使用patch指令打上我們的JZ2440單板補丁

patch -p1 < ../u-boot-1.1.6_jz2440.patch

 這裏patch指令可以直接使用man指令查看相關用法,-p選項用來屏蔽掉使用補丁的人和製作補丁的人的文件路徑差異,-p後的num制定了屏蔽路徑的前num個路徑名,這裏由於我們進入了uboot目錄,因此屏蔽掉第一個即可。

 

然後make相應的單板配置選項進行配置,再make編譯。這裏可以通過閱讀uboot目錄下的README得知。

make 100ask24x0_config
make

最終得到輸出文件u-boot.bin,燒寫到我們的板子上即可使用。

簡單過一下內容,後面開始做代碼分析。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章