微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > 嵌入式系统设计讨论 > arm-linux-gcc 4.3.2编译uboot 1.1.6

arm-linux-gcc 4.3.2编译uboot 1.1.6

时间:10-02 整理:3721RD 点击:

来自答疑助手:悦光


在第三期项目的视频中,官方提供了一整套新的工具链,bootloader, 内核和文件系统(arm-linux-gcc_4.3.2, uboot-2012.04.01, linux-3.4.2)其中uboot-2012.04.01来源于毕业班,其下载烧写功能远不如uboot-1.1.6,因此我更偏向于使用老版的Uboot。但是第三期的工具链却无法直接编译uboot-1.1.6, 现在将解决这一问题。
方法一
1.修改uboot1.1.6/Makefile文件中的PLATFORM_LIBS
PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`)-lgcc
修改成:
PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`)-lgcc -lc -L/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/lib
2.修改 uboot1.1.6/cpu/arm920t/config.mk 文件
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu)
PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(callcc-option,-malignment-traps,))
修改成:
PLATFORM_CPPFLAGS+=$(call cc-option,)
PLATFORM_RELFLAGS+=$(call cc-option,$(call cc-option,))
然后make clean 清除掉以前编译留下的中间文件再次编译即可。

方法二

PLATFORM_LIBS += -L $(shell dirname`$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc
修改成:
PLATFORM_LIBS +=
然后编译,
等出错时,它提示说在nand_utils.c中找不到udivdi,这对应代码中是一个除法:(unsigned long long) xxx/ yyy;
把(unsigned long long)  
改为 (unsigned long )
然后重新make。


上一篇:jz2440重新分区
下一篇:IARcc2530报错

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top