嵌入式软件开发之: 进一步存储器映射考虑事项
该属性使得定义的区域不包括目标代码或数据。这是定义堆和栈的一个方便方法。区域的长度在EMPTY属性后指定。对于存储器中向上增长的堆,其区域的长度为正。对于栈,其长度被标为负数,说明其在存储器中是向下增长的。 下面的例子显示了如何在Scatter文件中使用EMPTY属性定义堆栈。 ROM_LOAD 0x24000000 0x04000000 { ... HEAP 0x30000 EMPTY 0x3000 { } STACKS 0x40000 EMPTY -0x3000 { } ... } 该方法的优点是堆和栈的大小和位置是在一个地方定义的,即在Scatter文件中,而不必为堆栈创建stackheap.s源文件。 链接时,链接程序生成代表这些EMPTY区的符号。 Image$$HEAP$$ZI$$Base = 0x30000 Image$$HEAP$$ZI$$Limit = 0x33000 Image$$STACKS$$ZI$$Base = 0x3D000 Image$$STACKS$$ZI$$Limit = 0x40000 应用程序代码可处理这些符号,如下例所示。 IMPORT ||Image$$HEAP$$ZI$$Base|| IMPORT ||Image$$HEAP$$ZI$$Limit|| heap_base DCD ||Image$$HEAP$$ZI$$Base|| heap_limit DCD ||Image$$HEAP$$ZI$$Limit|| IMPORT ||Image$$STACKS$$ZI$$Base|| IMPORT ||Image$$STACKS$$ZI$$Limit|| stack_base DCD ||Image$$STACKS$$ZI$$Limit|| stack_limit DCD
嵌入式软件 进一步存储器映射 ARM Scatter 堆 栈 相关文章:
- 基于DSP的导弹仿真器嵌入式组件设计(04-30)
- 为嵌入式软件建立统一软件系统框架的方法详介(05-23)
- 在VIM中实现对嵌入式软件的调试(08-06)
- 基于仿真的嵌入式软件白盒覆盖测试系统设计(08-26)
- 嵌入式软件运行剖面建模及测试用例生成(11-06)
- 嵌入式软件与硬件的集成测试过程研究(11-16)