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.

[参考译文] MSP430FR5959:内存损坏

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/857289/msp430fr5959-memory-gets-corrupt

器件型号:MSP430FR5959
主题中讨论的其他器件: MSP430WARE

你好,先生  

 我正在使用 MSP430FR5959 控制器,代码运行正常,但几天后它停止运行。 只有重新编程才起作用。 因此、我使用 FET-pro430读取存储器、它显示0x1800至0x13FFF 的全部为零。 这是什么原因呢? 我还附上了错误和原始文件的文件。  

请为我们提供指导、因为这是一个非常关键的问题。  e2e.ti.com/.../original_5F00_file_5F00_txt.txte2e.ti.com/.../faulty_5F00_txt.txt

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

    Anushka、您好!

    您的应用中是否有任何正在运行的例程、这些例程写入 FRAM 中存储的变量?

    您是否在应用程序中使用引导加载程序?

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

    你好,先生

    是的、我们使用的是写入 FRAM 的变量、但这种情况很少见。 在运行 FRAM 中没有要写入的变量的 noramal 应用中
    没有、我们在我的应用中不使用引导加载程序


    下面给出了写入变量的例程


    变量的除法

    pragma PERSISTENT (au16_config)

    unsigned short au16_config[WDOG_LOG_IN_16BIT]=

    0
    };
    #endif


    从 FRAM 读取(这将在加电时执行)

    memcpy (&un_RegHoldingBuf.st_config.U16_slaveId、&au16_config、
    sizeof (au16_config));

    其中 un_RegHoldingBuf.st_config 是配置结构大小为85字节


    写入 FRAM (仅在用户想要更改某些参数时执行)

    memcpy (&au16_config、&un_RegHoldingBuf.st_config.U16_slaveId、
    sizeof (au16_config));


    其中 un_RegHoldingBuf.st_config 是配置结构大小为85字节
    /

    和引脚编号21 (TEST/SBWTCK)和引脚编号22 (RST/NMI/SBWTDIO)引脚在硬件侧断开、没有要连接的无源组件。
    该引脚直接连接到连接器以进行编程

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

    显然、您的程序在某个时候会在 FRAM 上写入数据、留下很少的痕迹。 我建议您启用 MPU 来保护您的代码、当发生写入违规时、您可以看到当时系统的状态。

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

    尊敬的 Anushka:

    几天以来,我没有听到您的声音,因此我假设您能够解决您的问题。
    如果情况并非如此,请单击“这无法解决我的问题”按钮,并使用更多信息回复此主题。
    如果此主题锁定、请单击"提出相关问题"按钮、然后在新主题中描述您的问题的当前状态以及您可能需要帮助我们帮助解决您的问题的任何其他详细信息。

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

    如何启用 MPU 来保护我的代码。  

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

    以及如何检查和验证该问题是否已解决。 因为这是罕见的情况。 如何启用 MPU 以保护代码存储器免受损坏。 请举例说明这一点。   

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

    尊敬的先生  

    请详细解释 MPU 及其在我现有代码中的用法示例。  

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

    Anushka、您好!

    TI Resource Explorer (TIREX)中有几个示例项目展示了如何使用 MSP430FR5959上的 MPU。  这些内容将向您展示如何"陷阱"错误、以便您知道错误是否发生以及何时发生。

    您可以 在网上找到 TIREX 、如果您使用的是 code composer studio、则可以在菜单 Help > Getting Started 中找到 TIREX。

    打开 TIREX 后、导航到 MSP430WARE_3.80.xx.xx 目录、然后依次选择"Devices>MSP430FR5xx6xx>MSP430FR559>"外设示例">"寄存器级别"。  有两个演示、msp430fr59XX_MPU_01.c 和*

    此外、有关 MPU 的详细信息、请参阅《MSP430FR58xx 系列用户指南》SLAU367第9.1节