Welcome 微信登录

首页 / 操作系统 / Linux / mini2440 编译U-Boot-1.1.6遇到的一些问题

Linux环境: Ubuntu 11.10交叉编译工具:arm-linux-gcc4.3.2目标板:mini2440 Flash 256Mu-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.com12月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_configmake6、编译成功7、在display_banner()函数里面加入自己的一些调试显示信息printf("###Hello u-boot!My name is care###n");8、再次编译u-boot9、将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初学者能有帮助。