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.

[参考译文] TMS320F28022:闪存值因 unknow 原因而改变

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/838022/tms320f28022-flash-value-changed-with-unknow-reason

器件型号:TMS320F28022

大家好、

我的客户将 F28022用于汽车应用、他们有引导加载程序代码和应用代码、每次上电时、软件都会检查闪存中存储的一个标志、以决定是跳转到引导加载程序代码还是 应用代码、即 当该标志为0x55BB 时、 然后、它将跳转到应用程序代码、否则将跳转到引导加载程序代码。

在正常应用中、当在应用代码中运行并通过 UART 从其他 MCU 接收更新代码命令时、将通过在软件中使用闪存 API 函数将标志从0x55BB 更改为0x55AA、然后将执行看门狗复位。 复位后、代码将跳转到引导加载程序代码。

问题在于、实际上、当 UART 没有来自其他 MCU 的更新代码命令时、还可能会将应保留0x55BB 的标志更改为0x55AA。 他们发现、 在几个月内工作的10万件产品中、有5个案例存在此问题、因此重现此问题并不容易。  在 UART 通信中、  有很多安全机制、如 CRC、cmd id check、数据长度 check 来确保数据 通信的安全性。

客户不知道如何解决此问题、我们是否有其他客户存在类似问题? 对此有任何建议吗?  

强张

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

    你好、张强、

    您能否提供有关此问题的更多信息以提供帮助。

    [引用用户="strong>Zhang ]问题是,实际上,当 UART 没有来自其他 MCU 的更新代码命令时,还可能将应保留为0x55BB 的标志更改为0x55AA。 [/报价]

    出现此问题时、是否通过 UART 接收到其他命令? 接收到的命令与初始化从0x55BB 到0x55AA 的闪存写入的命令不同? 或者、您是说在这段时间内没有通过 UART 发送通信?

    为了使闪存部分从0x55BB 更改为0x55AA、就像您说的那样、我想已经执行了已执行的 FLASH_PROGRAM 例程。 在发生这种情况之前、是否在 C2000或主机器件端接收/发送了 UART 命令的任何日志? 我假设不在 C2000侧、因为之后发生了复位。

    [引用用户="strong>Zhang ]他们发现,在几 个月内工作的十万件产品中,大约有5个案例出现了此问题,因此重现此问题并不容易。  在 UART 通信中、  有很多安全机制、如 CRC、cmd id check、数据长度 check、以确保数据 通信的安全性。[/quot]

    此问题在使用几个月后发生? 是这样吗?

    最棒的

    Kevin

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

    尊敬的 Kevin:

    出现此问题时、是否通过 UART 接收到其他命令? 接收到的命令与初始化从0x55BB 到0x55AA 的闪存写入的命令不同? 或者、您是说在这段时间内没有通过 UART 发送通信?

    -->是的,其他命令仍通过 UART 接收。 UART 始终工作。  

    为了使闪存部分从0x55BB 更改为0x55AA、就像您说的那样、我想已经执行了已执行的 FLASH_PROGRAM 例程。 在发生这种情况之前、是否在 C2000或主机器件端接收/发送了 UART 命令的任何日志? 我假设不在 C2000侧、因为之后发生了复位。

    ->是的、我同意 必须执行 FLASH_PROGRAM 例程、UART 命令没有可用的登录、因为这一问题可能在几个月内发生一次、 在闪存部分从0x55BB 更改为0x55AA 后、将发生复位、 然后、它将跳转至引导加载程序代码并在此模式下停止、直到对代码重新编程、产品才能继续工作。

    此问题在使用几个月后发生? 是这样吗?

    -->是的,它是随机发生的。

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

    尊敬的 Kevin:

    我只需将客户的代码发布在这里、我将通过电子邮件向您发送密码 、e2e.ti.com/.../TEST_5F00_CODE.7zcould如果可能出现任何问题、您会帮助查看代码?  我知道很难进行分析、因为无法复制、如果您能向客户提供一些建议、我将不胜感激、非常感谢。

    强张

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

    你好、张强、

    感谢您提供这些详细信息和代码。 目前已在非论坛上进行了讨论。

    最棒的

    Kevin