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.

[参考译文] MSP430FR2355:CCS:C 应用中的 MPU 存储器保护单元配置

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1063058/msp430fr2355-ccs-mpu-memory-protection-unit-config-in-c-application

器件型号:MSP430FR2355

您好!

我想在 FRAM 中保留4KB 非初始化数据块以存储一些已记录的数据。

我在 C 程序中创建了:

#pragma NOINIT (DATA_LOG)

uint16_t  DATA_LOG[2000];

并添加到链接器.cmd 文件中:  

.TI.noinit  :FRAM read_write_memory group 中的{}部分

根据.map 输出文件、所有操作均正常-数据已正确分配

下一步是 调整存储器保护单元(MPU)并将此数据块从写保护中排除(PFWPOA = 0x04偏移量)

如何修改 Project Properties 或 linker .cmd 文件以调整 MPU 偏移量、使其在 main()执行之前生效?

在 CCS 10.4.0.00006中 、我只能在 Project Properties 中接合/分离 FRWI 和 DFWP

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

    此部件上没有内存保护单元。 当然、您可以通过使用正确的幻数/密码写入 FRAM 控制寄存器来更改 PFWPOA。 您的数据必须处于 FRAM 的起始位置才能正常工作。

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

    尊敬的 David:

    我问 我的问题似乎不够精确。

    同时、我已经对 Project Properties 设置进行了一些实验。

    1. 在 Project Properties (CCS General -> FRWP 选项卡)中使用 FRWP 时、CCS 会自动处理正确的 PFWPOA 值。

     相应的 SYSCFG0设置代码 位于 C 引导部分(预主例程)。

    2.当 FRWP 在 Project Properties 中分离时、在冷启动/复位(0x9601)后 SYSCFG0保持不变、其默认值不变。

    如果需要在 C 引导部分中准备自己的 SYSCFG0配置、可以 按照 SLAA628 MSP430 FRAM 技术–操作方法和最佳 实践中的说明在 system_pre_init.c 中实现代码