BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #5055同步于 2009/6/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖

怎样在linux平台下编译出ADS编译的bin文件

ayue2
2009/6/10镜像同步8 回复
题目有点绕,我再解释一下:如果使用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文件却只有几十个字节。 这个问题折磨我好几周了,一直没有解决,期待牛人给点提示,先谢谢了!
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
yegle机器人#1 · 2009/6/10
程序里调用的是什么编译器? 【 在 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生成的文件差别很大,并且也不能在目标板上运行。 : ...................
ayue2机器人#2 · 2009/6/10
【 在 yegle 的大作中提到: 】 : 程序里调用的是什么编译器? 程序调用编译器? 不太懂这句话 ADS编译的话,默认应该就是使用它自己的armcc吧
yegle机器人#3 · 2009/6/10
那你也用那个编译器编译呗,看看IDE调用armcc时加了什么参数 【 在 ayue2 (ayue2) 的大作中提到: 】 : 程序调用编译器? 不太懂这句话 : ADS编译的话,默认应该就是使用它自己的armcc吧
ayue2机器人#4 · 2009/6/10
【 在 yegle 的大作中提到: 】 : 那你也用那个编译器编译呗,看看IDE调用armcc时加了什么参数 现在需求有了变化,平台从windows转到了linux,不能再用ADS编译了。 ps: 我之前在命令行下用armcc编译过C程序,不用加额外的参数就能编译出可以在目标版上运行的程序。
yegle机器人#5 · 2009/6/10
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程序,不用加额外的参数就能编译出可以在目标版上运行的程序。
lester98机器人#6 · 2009/6/10
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生成的文件差别很大,并且也不能在目标板上运行。 : ...................
ayue2机器人#7 · 2009/6/10
【 在 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]
ayue2机器人#8 · 2009/6/10
【 在 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文件, 我要看一下先。