完美体育·(中国)手机网页版科技提醒您:您的浏览器版本过低或者使用了兼容模式,为了获得更好的浏览体验,建议使用IE10以上的浏览器或使用极速模式。 请升级浏览器以获得更好的体验!

完美体育·(中国)手机网页版 > 技术文章 > ARM软件工具 > Keil MDK > RealView中如何定义|Image$$RW$$Base|、|Image$$ZI$$Base|?

RealView中如何定义|Image$$RW$$Base|、|Image$$ZI$$Base|?

问题类别:ARM软件工具 > Keil MDK 浏览次数:10635
发布日期:2012/4/23 14:55:28 文章来源:完美体育·(中国)手机网页版科技
回复日期:2020/12/20 10:23:23

环境说明

RealView MDK中国版3.05以上

分析描述

如何使用链接脚本中的Image$$RW$$Base|、|Image$$ZI$$Base|

问题解答

使用分散载入描述文件时,Image$$RW$$Base、Image$$RW$$Limit、Image$$RO$$Base、Image$$RO$$Limit、Image$$ZI$$Base 和 Image$$ZI$$Limit 符号是未定义的。因为默认的实现使用 Image$$ZI$$Limit,所以您必须重新实现
__user_initial_stackheap() 并定义堆区起始和栈区顶端的值。有关的更多信息,
请参阅KEIL 编译工具 2.0 版编译程序和库指南 中关于库存储器模型的章节
和 KEIL 编译工具 2.0 版开发者指南 中关于编写 ROM 代码的章节。如果不重
新实现 __user_initial_stackheap(),则链接程序显示以下出错信息:
Undefined symbol Image$$ZI$$Limit (referred from sys_stackheap.o)。

 MDK-ARM链接程序使用了两种方式控制程序的链接,即链接控制命令选项和链接脚本文件。当使用链接控制命令选项时,链接器定义了Image$$RW$$BaseImage$$RW$$LimitImage$$RO$$BaseImage$$RO$$LimitImage$$ZI$$BaseImage$$ZI$$Limit6个段地址描述符。这6个描述符可以直接在程序中引用。而在使用链接脚本文件后,这6个描述符号没有了,取而代之的是链接脚本文件中的段描述符,格式为:Image$$段名$$Base Image$$段名$$Limit。具体的你可以参看MDK帮助文档中关于链接器定义的符号这一章!

相关的链接:

MDK-ARM中链接脚本问题

链接脚本文件中链接符号说明

分散加载文件(链接脚本文件)的格式