您好!
我正在为 MSP430FR5969-SP 编写一个程序、并且需要配置存储器、以便通常驻留在 SRAM 中的任何内容都位于 FRAM 区域(位于0x4400、而不是位于0x10000的 FRAM2)。 我知道将堆栈放入 FRAM 会导致性能下降、但我们的应用程序不允许使用 SRAM。
我的想法是用两个区域手动配置 MPU、一个区域用于代码、另一个区域用于其他所有区域:
除了此块外,我已成功地将所有内容移动到 FRAM 区域:
组(READ_WRITE_MEMORY)
{
.TI.persistent:{} 对于#pragma PERSISTENT *
.cio:{} /* C I/O 缓冲器*/
.sysmem:{} /*动态内存分配区域*/
} PALIGN (0x0400)、RUN_START (fram_rw_start)
有两个原因我不想将这个块留在 FRAM 中并使 FRAM 成为代码段:
- ISR 代码必须位于较低的 FRAM 区域、因为该区域可以使用16位地址进行访问、而 ISR 矢量是16位地址
- 当我将.text 和 ISR 代码段移动到 FRAM2时、它会填充大部分 FRAM2、并且我仍有更多代码需要添加。
您能否为我提供有关如何完成此操作的具体说明? 谢谢你