首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

应用arm-linux-gcc编译的一些疑惑

2013-01-23 
使用arm-linux-gcc编译的一些疑惑?最近学arm-linux-gcc编译,对其了解不是很多,求高手指点以下几点疑惑。1、

使用arm-linux-gcc编译的一些疑惑?
最近学arm-linux-gcc编译,对其了解不是很多,求高手指点以下几点疑惑。
1、我们在windows下使用编辑器编译可执行文件.bin时候,在编辑器中需要设置芯片的型号,起始地址那些信息,而在用arm-linux-gcc时这些信息为什么不用设置?
2、arm-linux-gcc中 用makefile将多个.c .h .S文件链接成.bin文件时 链接有没有先后顺序,如果有顺序该怎么排?
3、arm-linux-gcc的makefile都有指定程序起始地址 比如Ttext 0x00000000,这个地址是不是程序烧到CPU后CPU从这个地址开始运行?
[解决办法]
使用arm-linux-gcc的时候不是不用设置,而是编译器采用了默认设置。

链接使用的是arm-linux-ld, 通常会为它指定一个链接脚本,链接脚本中可以控制链接顺序。你可以找个u-boot的源码包,然后找.lds文件,打开来看看,一般代码段第一个都会是start.o。至于其他的文件,应该是跟执行arm-linux-ld时给的文件名顺序决定的。

Ttext 是arm-linux-ld的选项,用于指定重定位基地址。通常要将程序烧到Ttext指定的地址才能执行,因为.c代码中有很多常量,如果在别的地方运行,极有可能不能正常加载这些常量。

热点排行