大家好、
我的客户将 F28022用于汽车应用、他们有引导加载程序代码和应用代码、每次上电时、软件都会检查闪存中存储的一个标志、以决定是跳转到引导加载程序代码还是 应用代码、即 当该标志为0x55BB 时、 然后、它将跳转到应用程序代码、否则将跳转到引导加载程序代码。
在正常应用中、当在应用代码中运行并通过 UART 从其他 MCU 接收更新代码命令时、将通过在软件中使用闪存 API 函数将标志从0x55BB 更改为0x55AA、然后将执行看门狗复位。 复位后、代码将跳转到引导加载程序代码。
问题在于、实际上、当 UART 没有来自其他 MCU 的更新代码命令时、还可能会将应保留0x55BB 的标志更改为0x55AA。 他们发现、 在几个月内工作的10万件产品中、有5个案例存在此问题、因此重现此问题并不容易。 在 UART 通信中、 有很多安全机制、如 CRC、cmd id check、数据长度 check 来确保数据 通信的安全性。
客户不知道如何解决此问题、我们是否有其他客户存在类似问题? 对此有任何建议吗?
强张