4873|4

85

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

linux上写的程序如何下载到无操作系统硬件上运行 [复制链接]

问题有点怪怪。

开发实验箱是UPNET-2410 ,一般无操作系统开发在WINDOWS下用。ADS1.2进行编写代码。然后编译链接成elf再转BIN文件。最后通过串口下载到FLASH



现在我想在linux上编写代码,或者说我想脱离 ADS1.2。linux上面的交叉编译工具链都有,用ECLIPSE作为编译器(也可以自己写makefile)。就是生成是elf,有没有什么转换到bin的。



大牛们,有没有好的开发工具套装,或者模式拿出来分享下。学习嵌入式不久。需要大家经验相传。。先谢过了

最新回复

静态链接,然后使用arm-linux-objcopy工具转换成bin文件;特别要指出的是浮点问题,如果你的应用里需要浮点数处理,就需要仔细匹配交叉编译器和你的处理器了。ARM处理器的浮点处理方案有好几种,需要仔细区分。 动态链接是需要OS支持的功能,不能裸机使用。  详情 回复 发表于 2010-3-30 20:43
点赞 关注

回复
举报

68

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
要编译成相应CPU能直接运行的目标文件,并且还不能用到系统的相关。
我记得在编译连接的时候分步有办法不连接系统的那些东西(elf)
 
 

回复

72

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
1. GNU工具链中有objcopy这个工具,可以实现你要求的elf->bin的功能。
(objcopy的作用是拷贝一个目标文件的内容到另一个目标文件中,可以适用于很多格式,其中包括binary)

2. 你不想使用ADS1.2,OK,你可以直接使用gcc工具链。我们工作中用的环境是:Windows操作系统 + cygwin + gcc for arm。当然,在linux下开发就省去了cygwin这个软件,它就是windows下的linux环境,方便gcc工具运行而已。当然,除非你的目标机也移植了linux操作系统,否则,你所能调用的函数就只能是部分的C标准库函数而已(例如memcpy, strcpy等),与操作系统有关的函数一律不能调用,像malloc/free,printf等。

3. 关于程序下载,开发板有配套的工具。当然,也有通用的工具,我们使用的是Sophia下载调试系统,它是针对ARM芯片的,能下载多种格式的文件,包括ELF。如果目标机上和宿主机都跑了linux,那么还可以通过网络的方式来下载。

4. 如果是目标机是linux系统,也就是进行嵌入式的linux开发,宿主机才选择linux,主要是方便开发和调试;如果目标机是无操作系统的,那么还是建议在windows下开发,因为一般的IC厂商都是提供windows下的在线调试工具和程序烧写工具,但是,如同我第2点所说,程序的构建还是可以使用cygwin+gcc工具链的。
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

4
 

引用 2 楼 kevinyujm 的回复:
1. GNU工具链中有objcopy这个工具,可以实现你要求的elf->bin的功能。
(objcopy的作用是拷贝一个目标文件的内容到另一个目标文件中,可以适用于很多格式,其中包括binary)

2. 你不想使用ADS1.2,OK,你可以直接使用gcc工具链。我们工作中用的环境是:Windows操作系统 + cygwin + gcc for arm。当然,在linux下开发就省去了cyg……

还是没搞懂。。。lz试试呐,然后结贴的时候讲讲呐,我一直以为都是需要带系统运行的简单点呢,不然启还得自己写启动文件。。。要不你看看uboot怎么做的,或者其他的bootloader,他们都是用linux下编译,然后下载到无系统上去运行的。。。
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

5
 
静态链接,然后使用arm-linux-objcopy工具转换成bin文件;特别要指出的是浮点问题,如果你的应用里需要浮点数处理,就需要仔细匹配交叉编译器和你的处理器了。ARM处理器的浮点处理方案有好几种,需要仔细区分。

动态链接是需要OS支持的功能,不能裸机使用。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表