u-boot在nuc972平臺上的移植過程(啟動篇)
寫在前面這個想法最初是來自于一個叫x_project的項目,關(guān)于它的介紹和主頁可參見下面兩個鏈接,
x_project介紹: http://www.wowotech.net/forum/viewtopic.php?id=2
x_project主頁: http://www.wowotech.net/sort/x_project
這位技術(shù)牛人的博客有多可以學(xué)習(xí)的東西。
使用git和github
關(guān)于git和github的介紹網(wǎng)上有很多,按照x_project里面的介紹,創(chuàng)建github賬號,克隆最新的u-boot主線。關(guān)于git下面鏈接的文檔很值得一看:
https://git-scm.com/book/zh/v1/%E8%B5%B7%E6%AD%A5
移植編譯過程中遇到的問題
基本上按照x_project中關(guān)于u-boot的移植過程的描述做,遇到編譯問題兵來將擋水來土掩,這里列舉幾個:
在板子config.h文件中不要使用//這樣的注釋,不然會被加到鏈接腳本里面導(dǎo)致鏈接報錯;
在前期沒有串口輸出調(diào)試的時候可以利用設(shè)置GPIO點燈調(diào)試;
搞清楚u-boot在板子上的加載地址并和鏈接地址保持一致(CONFIG_SYS_TEXT_BASE);
要使用較新的arm-gcc編譯器。
現(xiàn)在的狀態(tài)
相比x_project在移植過程中最大的有利條件就是有份能跑的u-boot版本,目前只是將它遷移到u-boot的最新版本,很多問題多可以到那份code里面去找到答案。
目前已經(jīng)將串口輸出和nand的支持成功的移植進(jìn)去并跑起來了,可以參見我創(chuàng)建的github項目如下鏈接:
https://github.com/nuc97xx
你可以克隆它然后在build目錄下執(zhí)行make命令既可,這可能還需要你修改下build目錄下makefile文件中指定的編譯器路徑,然后在板子上原有的u-boot里用tftp命令將編譯生成的u-boot.bin加載到0x800000地址上如果跳轉(zhuǎn)執(zhí)行,完整的操作過程如下:
可以看到它成功的運行起來了,然后我們可以輸入help命令試試。
后續(xù)
有了串口輸出和nand驅(qū)動后最基本的條件就有了,后續(xù)還想繼續(xù)來完善它將要做如下幾個方面:
移植添加網(wǎng)卡的支持
移植添加lcd的支持
添加讀取nand上的圖片文件并在lcd上加載顯示作為boot logo的功能
添加在u-boot時讀取U盤文件進(jìn)行系統(tǒng)的升級或網(wǎng)絡(luò)升級
等等我還沒有想到的實用功能
一個人的精力總是有限的,可能它的進(jìn)度會很慢又或者會因為某些原因而終止了,所以歡迎有精力和同樣抱著學(xué)習(xí)態(tài)度的童鞋一起加入進(jìn)來往上面提交你的代碼。
編輯:admin 最后修改時間:2018-12-06