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

編輯:admin 最后修改時(shí)間:2018-12-06