读书人

ARM链结脚本有关问题

发布时间: 2012-07-30 16:19:05 作者: rapoo

ARM链结脚本问题
有链结脚本文件如下:
LR_EWROM 0x08000000 0x02000000 {
EWROM 0x08000000 0x02000000 {
boot.o(INIT, +FIRST)
* (+RO)
}

EWRAM 0x02000000 UNINIT 0x00020000 {
* (+RW,+ZI)
}
}

编译后产生结果如下:
Program Size: Code=32660 RO-data=1308 RW-data=280 ZI-data=3960

生成的.map文件内容摘录如下:
Load$$EWRAM$$RW$$Base 0x08000000
Load$$EWRAM$$RW$$Length 0x00000118
Image$$EWRAM$$ZI$$Base 0x02000118
Image$$EWRAM$$ZI$$Length 0x00000f78
Image$$EWRAM$$RW$$Base 0x02000000

对于.map文件内容:
Load$$EWRAM$$RW$$Length 0x00000118
0x00000118是RW数据的大小,转换为十进制为280,与编译产生的结果对应;

但是:
Load$$EWRAM$$RW$$Base 0x08000000
却让我不能理解,我认为Linker应该生成的Load$$EWRAM$$RW$$Base的值是:
0x08000000 + 32660 + 1308 = 0x080084b0
但为什么Linker导出的值却是 0x08000000 呢?

请各位不吝赐教,谢谢!

[解决办法]
有呀,我是厂商送的呵呵

ADS 这个很垃圾 呵呵

IAR 是我用过的,感觉比较好的开发环境




探讨

IAR没用过,用过ADS,呵呵.

考虑到开发的东西是要release给客户的,所以后面会用gcc的ARM工具链来代替RealView MDK,以免有版权的问题.

顺便请教一下,IAR是免费的吗?

[解决办法]
查看下嵌入式arm开发

读书人网 >驱动开发

热点推荐