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.

[参考译文] CCS/MSP430FR4133:编写自删除程序时遇到问题

Guru**** 2589265 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/629915/ccs-msp430fr4133-having-trouble-writing-a-self-deleting-program

部件号:MSP430FR4133

工具/软件:Code Composer Studio

您好,

我正在尝试为MSP430编写一个自删除程序。

__interrupt void watchdog计时器(void){
IF (wdtCounter == 2.1599万){
   //执行kill代码
   kill();
}

不确定如何写入kill()函数,我想覆盖/删除程序存储器,所以必须重新刷新主板才能再次使用。

谢谢

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

    这可以通过邮箱系统与启动代码一起完成,我猜是这样。 写入32位邮箱输入寄存器值0A55Ah (启动代码执行到LPM4后发送设备)和01A1Ah (用户代码擦除),然后软件重置。 设备最后应处于出厂空白状态

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

    我错了,因为SYSMJMBI0/1是只读寄存器,所以设备无法自行写入。

    您可以使用只需触发一次的DMA将0FFFFh数据从RAM/FRAM复制到所有FRAM内存位置。  

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

    您可以将函数复制到SRAM,并覆盖该处的所有FRAM。 (然后,要清除SRAM,请进入LPMx.5模式关闭电源。)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我有一个在WDT中断期间调用的SRAM功能。 我的问题是,在SRAM中如何写入FRAM位置(覆盖数据)?