返回信息流题目有点绕,我再解释一下:如果使用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文件却只有几十个字节。
这个问题折磨我好几周了,一直没有解决,期待牛人给点提示,先谢谢了!
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #5055同步于 2009/6/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖
怎样在linux平台下编译出ADS编译的bin文件
ayue2
2009/6/10镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
程序里调用的是什么编译器?
【 在 ayue2 (ayue2) 的大作中提到: 】
: 题目有点绕,我再解释一下:如果使用ADS(ARM Develpor Suit v1.2) 创建并编译一个简单的工程的时候,只需要在post-linker选项里面选择ARM fromELF,编译之后就会在工程目录下产生一个以".bin"结尾的文件,把这个文件通过超级终端传送到用bootloader引导好的目标板内存地
: 现在,如果希望不使用ADS,在linux平台下怎样编译出一样的bin文件呢?
: 我在linux平台下依次是使用了arm-linux-gcc,arm-linux-ld,arm-linux-objcopy产生了bin文件,但是生成文件和ADS生成的文件差别很大,并且也不能在目标板上运行。
: ...................
【 在 yegle 的大作中提到: 】
: 程序里调用的是什么编译器?
程序调用编译器? 不太懂这句话
ADS编译的话,默认应该就是使用它自己的armcc吧
那你也用那个编译器编译呗,看看IDE调用armcc时加了什么参数
【 在 ayue2 (ayue2) 的大作中提到: 】
: 程序调用编译器? 不太懂这句话
: ADS编译的话,默认应该就是使用它自己的armcc吧
【 在 yegle 的大作中提到: 】
: 那你也用那个编译器编译呗,看看IDE调用armcc时加了什么参数
现在需求有了变化,平台从windows转到了linux,不能再用ADS编译了。
ps: 我之前在命令行下用armcc编译过C程序,不用加额外的参数就能编译出可以在目标版上运行的程序。
Supported Platforms
* Windows 2000, and XP
* Red Hat Linux 6.2 and 7.1
* Solaris 2.6, 7 and 8
不是有linux版么?
【 在 ayue2 (ayue2) 的大作中提到: 】
: 现在需求有了变化,平台从windows转到了linux,不能再用ADS编译了。
: ps: 我之前在命令行下用armcc编译过C程序,不用加额外的参数就能编译出可以在目标版上运行的程序。
May be linux_source/arch/arm/boot/bootp/bootp.lds will help
I'm not quite sure
Besides, arch/arm/boot/compressed/head.S is the entry point of zImage,maybe it will help
【 在 ayue2 (ayue2) 的大作中提到: 】
: 题目有点绕,我再解释一下:如果使用ADS(ARM Develpor Suit v1.2) 创建并编译一个简单的工程的时候,只需要在post-linker选项里面选择ARM fromELF,编译之后就会在工程目录下产生一个以".bin"结尾的文件,把这个文件通过超级终端传送到用bootloader引导好的目标板内存地
: 现在,如果希望不使用ADS,在linux平台下怎样编译出一样的bin文件呢?
: 我在linux平台下依次是使用了arm-linux-gcc,arm-linux-ld,arm-linux-objcopy产生了bin文件,但是生成文件和ADS生成的文件差别很大,并且也不能在目标板上运行。
: ...................
【 在 yegle 的大作中提到: 】
: Supported Platforms
: * Windows 2000, and XP
: * Red Hat Linux 6.2 and 7.1
: ...................
我也是最近两天才知道ADS好像有linux版本,
尽管如此,我并不能使用它,
其它原因决定我必须从arm-linux-gcc and arm-elf-gcc中选择一个使用。
我希望可以得到怎样用这两个编译器编译出可以在裸机运行的bin文件,
但是仍然感谢你回答。(我希望可以给你这个答案给分,但是这里不支持)[em18]
【 在 lester98 的大作中提到: 】
: May be linux_source/arch/arm/boot/bootp/bootp.lds will help
: I'm not quite sure
: Besides, arch/arm/boot/compressed/head.S is the entry point of zImage,maybe it will help
不知道这两个文件能不能对用arm-elf-gcc or arm-linux-gcc编译出裸机可以运行的bin文件,
我要看一下先。