一、环境
目标板:mini2440
u-boot版本:u-boot-2009.08
交叉编译器:arm-linux-gcc-4.3.2 下载见 http://www.linuxidc.com/Linux/2011-04/34049.htm
操作系统:Linux(Ubuntu-11.10)
U-Boot源代码下载地址 http://www.linuxidc.com/Linux/2011-07/38897.htm
二、目的
搭建mini2440目标板环境。阅读本文前,建议阅读嵌入式系统Boot Loader 技术内幕 见 http://www.linuxidc.com/Linux/2011-12/50389.htm
三、步骤
1、下载源代码
tar –jxvf u-boot-2009.08.tar.bz2
2、创建mini2440目录和头文件
在这之前,必须熟悉下U-boot的目录树。比如board目录是存放根板子相关的文件(smdk2410.c等)
、
进入到u-boot的根目录
cp -r board/samsung/smdk2410/ board/samsung/mini2440
mv board/samsung/smdk2410/smdk2410.c board/samsung/mini2440/mini2440.c
cp include/configs/smdk2410.h include/configs/mini2440.h
3、修改u-boot根目录下的Makefile
U-boot是个好东西,有详细的说明文档。查阅U-boot根目录下的README[227行],我们得知make之前我们必须配置出目标板的环境。
For all supported boards there areready-to-use default
configurations available; just type'make 找到Makefile的2997行,在这里可以看到对不同板子的配置。例如: smdk2410_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 samsung s3c24x0 在这之后,我们添加如下: mini2440_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t mini2440 samsung s3c24x0 以上各项参数说明如下。 unconfig:对unconfig的依赖,执行unconfig实际上是执行清理工作。 unconfig: @rm–f $(obj)include/config.h$(obj)include/config.mk $(obj)board/*/config.tmp$(obj)board/*/*/config.tmp $(obj)include/autoconf.mk$(obj)include/autoconf.mk.dep arm CPU的架构(ARCH) arm920t CPUde 类型,其对应于cpu/arm920t子目录 mini2440 开发板的型号(BOARD),其对应于board/samsung/mini2440目录 samsung 开发者/或经销商(vender) 。新开发板项目目录的上级目录,如直接在board下建立新的开发板项目的目录,则这里就为NULL s3c24x0 片上系统(S0C) 如果默认的交叉编译器为arm-linux-gcc,则不需要对编译环境重新设置,否则要重新添加。 找到Makefile的161行 # set default to nothing for native builds ifeq ($(HOSTARCH),$(ARCH)) CROSS_COMPILE ?= endif 设置交叉编译器: CROSS_COMPILE = arm-linux- # set default to nothing for native builds ifeq ($(HOSTARCH),$(ARCH)) CROSS_COMPILE ?= endif 4、我们现在先NorFlash启动,所以暂时不用修改其他代码。 5、测试前面所修改的是否有问题,如果没问题,编译成功后会生成u-boot.bin文件 回到u-boot根目录 make distclean make mini2440_config make 四、出现的错误 make -C board/samsung/mini2440/ make[1]: 正在进入目录 `/home/yz019/u-boot/u-boot-2009.08/board/samsung/mini2440' make[1]: *** 没有规则可以创建“libmini2440.a”需要的目标“.depend”。 停止。 make[1]:正在离开目录 `/home/yz019/u-boot/u-boot-2009.08/board/samsung/mini2440' make: ***[board/samsung/mini2440/libmini2440.a] 错误 2 解决方案: 查看 board/Samsung/mini2440/Makefile28行 COBJS := smdk2410.o flash.o 修改为 COBJS := mini2440.o flash.o make。惊喜的发现如下语句,大功告成~ arm-linux-objcopy -Osrec u-boot u-boot.srec arm-linux-objcopy--gap-fill=0xff -O binary u-boot u-boot.bin 五、成果 由于时钟配置等相关的板级都未进行设置,串口是输出不了调试信息的,所以将编译生成的u-boot.bin烧写到NorFlash不能看到任何效果。
上一篇:U-Boot 2010.09 支持mini2440
下一篇:mini2440 编译U-Boot-1.1.6遇到的一些问题
- 热门资源推荐
- 热门放大器推荐
- LTC3890HUH 高效双路 8.5V/3.3V 输出降压转换器的典型应用电路
- 使用 ROHM Semiconductor 的 BD4841 的参考设计
- 使用 ON Semiconductor 的 KA7805AE 的参考设计
- LTC1258CS8-4.1 低功率、低电压电源基准的典型应用电路
- LT8309 的典型应用 - 次级侧同步整流器驱动器
- AM1G-0515DH30Z ±15V 1 瓦 DC/DC 转换器的典型应用
- 具有 ATxmega32E5 参考设计的 DALI 从站
- TDA8932B D 类音频功率放大器的对称电源立体声 SE 配置
- 使用 Diodes Incorporated 的 ZXCD1010EQ16 的参考设计
- BB-BONE-WTHR-01,BeagleBone Weather Cape 为 BeagleBone 提供天气数据,包括温度、气压、湿度和环境光

非常经典的关于LLC的杨波博士论文
OPA2336E/250

XC6406PP60DL






京公网安备 11010802033920号