打印

linux上编写代码后,如何在无操作系统上运行

[复制链接]
3122|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cjjnjust|  楼主 | 2010-3-25 22:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题有点怪怪。
开发实验箱是UPNET-2410 ,一般无操作系统开发在WINDOWS下用。ADS1.2进行编写代码。然后编译链接成elf再转BIN文件。最后通过串口下载到FLASH

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

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

相关帖子

沙发
后学| | 2010-3-26 08:34 | 只看该作者
可以的,gcc下有binutils,

使用特权

评论回复
板凳
wangkj| | 2010-3-26 10:11 | 只看该作者
编译后的代码,运行环境不同,直接转肯定没戏。不是单纯格式那么简单。

使用特权

评论回复
地板
mohanwei| | 2010-3-26 10:41 | 只看该作者
当然可以了……具体你参考经典的uboot就可以了,在linux下编译成elf,它的目录自带转bin的工具。得到bin后,下载到板子里即可。

使用特权

评论回复
5
cjjnjust|  楼主 | 2010-3-26 14:53 | 只看该作者
2# 后学
binutils下的什么工具可以生成bin格式???
as汇编器
ld连接器
gprof性能分析工具程序
addr2line从目标文件的虚拟地址取得文件的行号或符号
ar可以对静态库做建立、修改和取出的操作。
c++filtdemangling filter for C++ symbols
dlltool建立Windows 动态库
gold另一种连接器
nlmconv可以转换成NetWare Loadable Module目标文件格式
nm显示目标文件内的符号
objcopy复制目标文件,过程中可以修改
objdump显示目标文件的相关信息,亦可反汇编
ranlib产生静态库的索引
readelf显示ELF文件的内容
size列出总体和section的大小
strings列出任何二进制档内的可显示字符串
strip从目标文件中移除符号
windmc产生Windows消息资源
windresWindows 资源档编译器

使用特权

评论回复
6
cjjnjust|  楼主 | 2010-3-26 14:55 | 只看该作者
4# mohanwei
thankyou!!
uboot不大熟悉,你的意思是在linux下生成elf后,然后怎样转???能否具体点,就是uboot怎么办到的呢??

使用特权

评论回复
7
wangkj| | 2010-3-26 17:22 | 只看该作者
u-boot和linux应用程序完全两码事。

u-boot是一个完整的自运行程序,包括初始化硬件和堆栈之类的。

普通应用程序,没这两下子。

使用特权

评论回复
8
mohanwei| | 2010-3-26 17:39 | 只看该作者
wangkj理解错了,楼主的意思应该是在linux交叉编译环境里输出elf,然后转成bin以便烧写到目标板里。并非将linux系统里跑的应用程序下载到目标板里……
拿点一个流水灯这个例子来说,不管是用MDK,IAR,ADS,linux交叉编译器,输出的目标文件都是实现同样的功能。

使用特权

评论回复
9
cjjnjust|  楼主 | 2010-3-26 18:27 | 只看该作者
mohanwei  wangkj 谢谢
我是想转成bin格式的。ADS里面有一个FROMELF工具可以将生成的elf格式文件转成bin格式文件。
你说的uboot目录自带的转bin的工具是什么,能否在linux下运行?
你的意思是不是在板子上烧写uboot,然后将linux编译链接后的文件--elf格式,直接烧写到板子上,这时候uboot能识别它,并转成bin, 然后运行??
不知道我说的正确否?
开发无操作系统的软件,一般是怎样的一个开发配置?我指的是宿主机系统,工具,板子上的bootloader之类的选择。。。
THANKYOU  !!!

使用特权

评论回复
10
李冬发| | 2010-3-26 19:44 | 只看该作者
看你调用的函数了。用到了核的函数没离不开温室的,都是纯手工的土**,哪都生存。

使用特权

评论回复
11
backupyan| | 2010-3-26 21:32 | 只看该作者
本帖最后由 backupyan 于 2010-3-26 21:34 编辑

我在学习Open-JTAG时,其中有elicipse+交叉编译器的相关用法,
好像其中能转换成bin文件,你去看看吧!

使用特权

评论回复
12
cjjnjust|  楼主 | 2010-3-26 22:01 | 只看该作者
11# backupyan
我用过,eclipse没有。。。

使用特权

评论回复
13
cjjnjust|  楼主 | 2010-3-27 18:51 | 只看该作者
好吧  我研究研究uboot

使用特权

评论回复
14
ai1988121| | 2010-4-11 15:10 | 只看该作者
给我好好讲解讲解

使用特权

评论回复
15
lelee007| | 2010-4-11 16:15 | 只看该作者
直接用交叉编译器编译、链接呗,然后烧到flash或者DOWN到SDRAM里边就OK了

LZ的意思应该就是在Linux下用GNU工具开发2440的裸奔程序吧?!

使用特权

评论回复
16
cjjnjust|  楼主 | 2010-4-12 10:07 | 只看该作者
15# lelee007
我的意思是linux使用GNU交叉编译链没错。但是需要弄到无操作系统上运行。

使用特权

评论回复
17
sunt8707| | 2010-4-24 12:37 | 只看该作者
学习中

使用特权

评论回复
18
lelee007| | 2010-4-24 19:38 | 只看该作者
LZ可以找找我以前的帖子,基于uboot的2410调试平台的实现

看一下估计就明白了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

31

帖子

1

粉丝