5824|7

77

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

怎样在linux平台下编译出ADS编译的bin文件 [复制链接]

题目有点绕,我再解释一下:如果使用ADS(ARM Develpor Suit v1.2) 创建并编译一个简单的工程的时候,只需要在post-linker选项里面选择ARM fromELF,编译之后就会在工程目录下产生一个以".bin"结尾的文件,把这个文件通过超级终端传送到用bootloader引导好的目标板内存地址0x8000处,然后把CPU转到0x8000处开始执行,就可以直接运行这个文件。直到这一步都是没有任何问题的。

现在,如果希望不使用ADS,在linux平台下怎样编译出一样的bin文件呢?

我在linux平台下依次是使用了arm-linux-gcc,arm-linux-ld,arm-linux-objcopy产生了bin文件,但是生成文件和ADS生成的文件差别很大,并且也不能在目标板上运行。
使用了arm-elf-gcc等一系列类似命令一样不行。

bin文件比较:我的工程里就是一个简单的main函数,里面写了一条打印语句。ADS编译出的bin文件有900多字节,而在linux平台下使用前面描述的命令,产生的bin文件却只有几十个字节。

这个问题折磨我好几周了,一直没有解决,期待牛人给点提示,先谢谢了!

再补充一下:
不能使用linux平台下的ADS,
期望得到使用arm-linux-gcc or arm-elf-gcc编译出在裸机上可以运行的bin文件。
此帖出自Linux开发论坛

最新回复

这个问题没有解决,用另外的方法替代问题了。 之所以要求用arm-linux-gcc编译出跟ADS一样的bin文件,是因为ADS编译的bin文件在Linux平台下的一个仿真环境里用不起。现在ADS编译的bin文件可以在仿真环境里运行了,所以这里提出的问题可以不用考虑解决了。 但是我根据其它人的提示,我还是给一个解决这个问题的思路。在使用arm-linux-gcc编译C文件,然后将bin文件下载到开发板运行的这样一个过程中。编译的时候应该有初始化板子的汇编代码才对。ADS编译出bin文件的时候并没有显示的添加这样一段汇编代码,应该是编译器默认做了这些操作吧。  详情 回复 发表于 2009-6-19 09:44
点赞 关注

回复
举报

55

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
ADS不好么?
此帖出自Linux开发论坛
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
ADS挺好的,之前就一直使用的它。
但现在不能用它(很多原因),现在换了平台,还请大家教我!
此帖出自Linux开发论坛
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

4
 
ADS挺好的,之前就一直使用的它。
但现在不能用它(很多原因),现在换了平台,还请大家教我!
此帖出自Linux开发论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

5
 
你缺少配套的库文件。不过这个不太容易找到的。
此帖出自Linux开发论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

6
 
你确定你的linux里安装了gcc的arm的ads的交叉编译器吗?
此帖出自Linux开发论坛
 
 
 

回复

49

帖子

0

TA的资源

一粒金砂(初级)

7
 
如果你用的是printf函数来打印,那它会调用动态库libc的函数,你描述的方式肯定是不能执行的。
你要打印出信息,可以自己写基于串口的打印函数,然后在main里调用它。
此帖出自Linux开发论坛
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

8
 
这个问题没有解决,用另外的方法替代问题了。

之所以要求用arm-linux-gcc编译出跟ADS一样的bin文件,是因为ADS编译的bin文件在Linux平台下的一个仿真环境里用不起。现在ADS编译的bin文件可以在仿真环境里运行了,所以这里提出的问题可以不用考虑解决了。

但是我根据其它人的提示,我还是给一个解决这个问题的思路。在使用arm-linux-gcc编译C文件,然后将bin文件下载到开发板运行的这样一个过程中。编译的时候应该有初始化板子的汇编代码才对。ADS编译出bin文件的时候并没有显示的添加这样一段汇编代码,应该是编译器默认做了这些操作吧。
此帖出自Linux开发论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表