__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$$base、image$$rw$$limit、image$$ro$$base、image$$ro$$limit、image$$zi$$base和image$$zi$$limit等6个段地址描述符。这6个描述符可以直接在程序中引用。而在使用链接脚本文件后,这6个描述符号没有了,取而代之的是链接脚本文件中的段描述符,格式为:image$$段名$$base 和image$$段名$$limit。具体的你可以参看mdk帮助文档中关于链接器定义的符号这一章!
相关的链接: