OpenEdv-开源电子网

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

为什么用arm-gcc5.4.0编译汇编调用C函数的程序生成的bin文件不能在s3c2440裸机上运行?

[复制链接]

8

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2017-8-14
在线时间
33 小时
发表于 2019-9-12 15:54:53 | 显示全部楼层 |阅读模式
10金钱
为什么用arm-gcc5.4.0编译汇编调用C函数的程序生成的bin文件不能在s3c2440裸机上运行?而arm-gcc3.4.0却是可以运行?

最佳答案

查看完整内容[请看2#楼]

首先工具链版本并不是越高越好,交叉编译工具链需要与内核匹配,一般使用芯片厂商的提供的内核和工具链已做好匹配。如果你要使用新内核,可使用crosstool-ng工具自己制作交叉工具链。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2017-9-26
在线时间
18 小时
发表于 2019-9-12 15:54:54 | 显示全部楼层
首先工具链版本并不是越高越好,交叉编译工具链需要与内核匹配,一般使用芯片厂商的提供的内核和工具链已做好匹配。如果你要使用新内核,可使用crosstool-ng工具自己制作交叉工具链。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2019-9-13 02:01:04 | 显示全部楼层
帮顶
回复

使用道具 举报

8

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2017-8-14
在线时间
33 小时
 楼主| 发表于 2019-9-18 09:02:58 | 显示全部楼层
多谢大佬,那么在运行arm-gcc 5.4.0时加上-march=armv4这句话能解决版本过高的问题吗?
回复

使用道具 举报

6

主题

315

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1665
金钱
1665
注册时间
2018-1-29
在线时间
159 小时
发表于 2019-9-19 14:01:02 | 显示全部楼层
找本书系统的学习一下呗! 如果你用S3C2440的话,看看韦东山的书。
回复

使用道具 举报

6

主题

1127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1656
金钱
1656
注册时间
2019-8-15
在线时间
102 小时
发表于 2019-9-28 16:46:36 | 显示全部楼层
帮顶
回复

使用道具 举报

0

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2017-9-26
在线时间
18 小时
发表于 2019-10-28 20:50:52 | 显示全部楼层
关键是库不兼容,你就算在主机编译通过,在目标机上运行也会提示动态库版本问题,你这样需要把文件系统里面的动态库全换成你当前交叉工具的库。但这样开发的驱动又会出现问题的。
最好就是 内核、交叉工具、文件系统的库版本要兼容。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 17:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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