This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR59941:为什么永久性数据和 IPE 数据结构需要1KB 对齐并放置在 FRAM 的开头?

Guru**** 2378650 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/951065/msp430fr59941-why-does-persistent-data-and-ipe-data-structure-need-to-be-1kb-aligned-and-placed-at-the-start-of-fram

器件型号:MSP430FR59941

您好!

我的问题是、持久性数据部分为什么需要1KB 对齐?  它为什么需要位于 FRAM 的开头?

将这些数据段放在那里时考虑了哪些设计注意事项?

通过移除对齐或更改其位置可能会造成哪些缺陷?

同样的问题也适用于其下方的 IPE 数据部分

由于我只有几个字节的持久性变量、因此这种对齐基本上会浪费接近1KB 的 FRAM、而我希望将其用于其他内容

我在 SLAU157as.pdf (适用于 MSP430TmMCU 的 Code Composer StudioTmIDE v10.x)第5.3节 FRAM 写保护(FRWP)中找到的最接近的内容,但它并未解释原因

它说:"当应用程序代码使用持久性数据类型时、会自动计算持久性数据的大小并与1KB 大小对齐"。

当我查看链接器文件时、我看到.TI.persistent 与1KB 对齐(我假设这是发生"自动"对齐的部分)。

谢谢、

Aaron Chuang

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Aaron Chuang">我的问题是、为什么持久性数据部分需要1KB 对齐? 《MSP430FR58xx、MSP430FR59xx 和 MSP430FR6xx 系列用户指南  》的9.2.1主存储器段部分中包含以下内容、说明了1KB 对齐是由硬件导致的:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好

    这为我在上面提出的所有问题提供了答案。

    与其余代码的 RX 相比、持久性数据需要为 RW、因此需要位于其自己的段中、并且由于 MPU 的分段大小、因此需要1KB 对齐。

    至于它需要位于前端的原因、这是因为最多只有3个 MPU 段、并且将持久性变量放置在代码中间会产生比必需的更多 RX 段、超出了 MPU 的功能

    谢谢、
    Aaron Chuang