歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

mini2440 編譯U-Boot-1.1.6遇到的一些問題

Linux環境: Ubuntu 11.10

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

目標板:mini2440 Flash 256M

u-boot源代碼:由友善之臂提供,基於1.1.6版本修改後的FriendlyARM修改過的U-Boot.1.1.6

下載在Linux公社的1號FTP服務器裡,下載地址:

FTP地址:ftp://www.linuxidc.com

用戶名:www.linuxidc.com

密碼:www.muu.cc

在 2011年LinuxIDC.com\12月\Android_sdk_linux_x86.tar.gz 下載

下載方法見 http://www.linuxidc.net/thread-1187-1-1.html

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

1、解壓縮源碼包

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

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

  1. /bin/sh: lex: command not found  
解決方法可以參見:Linux命令make報錯總結 見 http://www.linuxidc.com/Linux/2011-12/50152.htm

3、make open24x0_config

配置板子資源

  1. Configuring for open24x0 board...  

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

5、make

編譯出現錯誤:

  1. undefined reference to ‘raise’  
解決方法參見:undefined reference to ‘raise’ 見 http://www.linuxidc.com/Linux/2011-12/50151.htm

之後編譯還是會出現問題。通過找查找論壇資料,一位網友提出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。對於源碼的閱讀反而不是很多。看到了一篇文章(http://www.linuxidc.com/Linux/2011-12/50150p2.htm),描述了作者初學u-boot的心得。很有體會,在此附上連接。希望對和我一樣的bootloader初學者能有幫助。

Copyright © Linux教程網 All Rights Reserved