mini2440 編譯u-boot-1.1.6遇到的一些問題

heycare發表於2011-12-14

linux環境:ubuntu11.10

交叉編譯工具:arm-linux-gcc4.3.2

目標板:mini2440 Flash 256M

u-boot原始碼:由友善之臂提供,基於1.1.6版本修改後的FriendlyARM修改過的b-boot.1.1.6

馬上進入我們的編譯之旅!

1、解壓縮原始碼包

tar zxvf u-boot-1.1.6-FA24x0.tar.gz
2、make clean

這時候將會出現第一個問題:

/bin/sh: lex: command not found
解決方法可以參見:Linux命令make報錯總結

3、make open24x0_config

配置板子資源

Configuring for open24x0 board...

4、刪除Makefile.l檔案,否則make的時候會出現一些錯誤

5、make

編譯出現錯誤:

undefined reference to ‘raise’
解決方法參見:undefined reference to ‘raise’

之後編譯還是會出現問題。通過找查詢論壇資料,一位網友提出make distclean可以解決問題!

make distclean

make open24x0_config

make

6、編譯成功

7、在display_banner()函式裡面加入自己的一些除錯顯示資訊

printf("###Hello u-boot!My name is care###n\");

8、再次編譯u-boot

9、將u-boot.bin燒寫到板子的0x33000000地址上

10、復位一下板子,通過超級終端可以看到除錯資訊

###hello u-boot!My name is care###

大功告成。

最近公司忙著趕專案,我負責的是之前沒有接觸過的u-boot 。浪費了3天時間,都是在做無用功。主要的原因是切入點不對,3天的時間主要都用來跟著網上的高手移植u-boot。對於原始碼的閱讀反而不是很多。看到了一篇文章,描述了作者初學u-boot的心得。很有體會,在此附上連線。希望對和我一樣的bootloader初學者能有幫助。






 

相關文章