主题中讨论的其他器件: MSP430FR6989
我曾尝试将此帖子作为 Code Composer Studio 问题发布、但后来被带到这个论坛
我编写了一个应用程序、其中我从不同的源(例如 a2d、计时器计算等)收集数据、并将收集到的数据作为结构的对象放置。 然后、我创建一个包含这些结构的数组。
我使用的是 MSP430FR6928。 首先,数组有大约100个对象。 我使用的链接器命令是由 CCS 创建的默认命令。 原始阵列放置在 FRAM 中。
然后我修改了代码、以便将该数组和索引变量放置在.ti.persistent 段中。 也没有问题。 (默认链接器将.ti.persistent 段放置在 FRAM 中)。
然后、我修改了.ti.persistent 段的位置、并将数组和索引变量(无符号整数)移至 FRAM2。 当我这样做时,首先我有一个错误,解决了将内存模型更改为大(我还将"什么数据必须接近"选项更改为"无"). 程序编译没有错误,但现在,当我检查区域的 FRAM2的阵列应该是...它是空的。 未在 FRAM2中写入任何数据、也未报告任何错误消息。 研究了 控制 MPU 的部分后、我保留了由 Code Composer 创建的默认设置。 我决定禁用 MPU、程序又开始工作。 我宁愿让 MPU 处于活动状态、但似乎这样做的系统会自动创建错误的设置... 我不确定如何自己配置它。
最后,这是我的文章的真正原因:我取代.ti.persistent 在 FRAM2与.ti.noinit . 现在代码不再起作用...我收到了一些错误消息与单词"trampoline",我不熟悉这个概念. 我认为.persistent 和.noinit 的唯一区别与初始化有关。 我想还有更多的东西吗? 我们将感谢您在这方面提供任何帮助。