OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 51|回复: 0

解决新版GCC编译u-boot报错问题

[复制链接]

18

主题

49

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
209
金钱
209
注册时间
2014-10-5
在线时间
41 小时
发表于 4 天前 | 显示全部楼层 |阅读模式

最近开始学习i.mx6ull开发,在ubuntu中安装了最新版的交叉编译工具,arm-linux-gnueabihf-gcc的版本是13.3.0。


在编译正点原子提供的u-boot源码时,一直提示“arm-linux-gnueabihf-gcc: error: unrecognized -march target: armv5”,导致编译不通过。


经过各种询问deepseek,外加运气成分,将u-boot源文件/arch/arm/Makefile文件中第19行
    “arch-$(CONFIG_CPU_V7) =$(call cc-option, -march=armv7-a, -march=armv5)”
修改为
    “arch-$(CONFIG_CPU_V7) =$(call cc-option, -march=armv7-a)”
就可以编译成功了。




询问deepseek后,deepseek的解释是,原本这行指令的作用是:

尝试用 -march=armv7-a 编译,如果失败则回退到 -march=armv5。

新版 GCC 移除了对 -march=armv5 的支持,导致回退时直接报错(即使 -march=armv7-a 本可正常工作)。

i.MX6ULL 是 Cortex-A7,属于 ARMv7 架构,因此 -march=armv7-a 或 -march=armv7ve 才是正确的选项。



在此基础上,我把原本的

“arch-$(CONFIG_CPU_V7) =$(call cc-option, -march=armv7-a, -march=armv5)”,


改成了

“arch-$(CONFIG_CPU_V7) =$(call cc-option, -march=armv7-a, -march=armv7ve)”,



测试之后,能正常编译。


后续再测试使用新编译器编译出的u-boot.imx下载到开发板后会不会有问题。








我已经是STM32熟练工了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-21 10:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表