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.

[参考译文] TM4C1231H6PZ:启用/禁用闪存保护

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/601924/tm4c1231h6pz-enable-disable-flash-memory-protection

器件型号:TM4C1231H6PZ

您好!  

我正在开发一个应用、在该应用代码的开头、我需要使用 FlashProtectSet (FlashReadOnly)来保护应用代码所在的存储器范围(内部微控制器闪存)。 我使用了自定义引导加载程序、该程序决定是在每次器件开启或重新启动时继续在应用模式还是更新模式下运行。 我有一个固件文件(比如 firmware2)、该文件位于微控制器闪存的另一个范围内。 收到用户的特定命令后、我需要使用固件2文件更新我的应用程序代码(驻留在受保护的闪存中)。 我正在使用"HWREG (NVIC_APINT)= NVIC_APINT_VECTKEY | NVIC_APINT_SYSRESETREQ" API 重置微控制器。 引导加载程序进入更新模式、在此我应该将 firmware2文件复制到我的应用程序代码所在的地址。 但在这里、应用程序存储器仍保持在"FlashReadOnly"模式。

在 FlashProtectSet API 说明中、写入"Flash 保护的更改仅在下一次复位之前保留"

如何在引导加载程序中继续使此范围的微控制器闪存可写?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我很确定您必须执行复位。 我前面没有文档、但我记得这是什么。

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

    您好!

     罗伯特是对的。 请参阅以下数据表。

    FMPREn 和 FMPPEn 寄存器的出厂设置为所有被执行的值为1

    组。 这些设置创建了一个开放式访问和可编程性策略。 寄存器位可以

    通过清零特定寄存器位来更改。 这些更改立即生效、但不会生效

    永久性、直到寄存器被提交(保存)、此时位的变化是永久性的。 如果是

    位从1更改为0且未提交、可通过执行上电复位来恢复

    序列。 更改通过 Flash 存储器控制(FMC)寄存器提交