前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >arm-linux-gcc 4.3.2编译uboot 1.1.6

arm-linux-gcc 4.3.2编译uboot 1.1.6

作者头像
韦东山
发布2022-09-08 16:23:32
2.7K0
发布2022-09-08 16:23:32
举报
文章被收录于专栏:韦东山嵌入式韦东山嵌入式

在第三期项目的视频中,官方提供了一整套新的工具链,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

代码语言:javascript
复制
P`LATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc`

修改成: PLATFORM_LIBS += -L (shell dirname (CC)

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,$(call cc-option,-malignment-traps,))

修改成:

PLATFORM_CPPFLAGS +=

(call cc-option,) PLATFORM_RELFLAGS +=

(call cc-option,$(call cc-option,))

然后make clean 清除掉以前编译留下的中间文件再次编译即可。

方法二 PLATFORM_LIBS += -L (shell dirname (CC)

然后编译, 等出错时,它提示说在nand_utils.c中找不到udivdi,这对应代码中是一个除法:(unsigned long long) xxx/ yyy; 把(unsigned long long) 改为 (unsigned long )

然后重新make。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档