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.

[参考译文] CC2340R5:如何更改当前运行的映像并将器件复位为新映像?

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1420961/cc2340r5-how-can-i-change-the-image-currently-running-and-reset-the-device-to-a-new-one

器件型号:CC2340R5

工具与软件:

下午好!

我正在使用 CC2340R5芯片执行一个 OAD 片上项目。

我的申请包括:

-MCUboot 引导加载程序

-Persistent Application

-用户应用程序

我想使我的应用程序失效、然后返回到持久应用程序、为移动应用程序创建新的应用程序。
此过程是怎样的?

我知道该示例使用了以下解决方案:

STATUS_4.42t Update_Revoke 457(uint8图像插槽)

STATUS_t STATUS = FLASH_SUCCESS;
struct image_header emptyHeader ={0};

status = flash_open();

if (INT_PRIMARY_SLOT == imageSlot)

writeFlash (HDR_offset、(uint8_t *)&(emptyHeader)、sizeof (pSwUpdateModuleGlobalData->primaryHdr);

}
flash_close();

返回(状态);
}

那么、我尝试了在我的代码中实现该函数、并重新启动我的芯片。 重新启动后、我的应用程序在用户应用程序中重新启动、而无需切换回超级应用程序。

我是否误解了如何做到这一点? 是否有其他解决方案? 我还需要做什么?

Yohan,

此致

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

    尊敬的 Yohan:  

    感谢您联系我们。  

    我认为您遵循的流程是正确的。 然后、我可以考虑两个潜在的问题:1)接头未正确更改、或2) 引导加载程序未选择预期的映像。

    为了验证1)、我建议确保按预期更改接头。 这可以使用调试器并监控应用的头内容来实现。  

    为了验证2)、我首先建议确保按预期进行复位(即执行 MCUboot)。 假设已执行 MCUboot、请在调试模式下运行它、以便您了解为何一直选择应用程序映像。  

    我希望这将有所帮助、

    此致、