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.

[参考译文] MSPM0L1306:mcuboot 无法将更高版本的映像放在主插槽中

Guru**** 2447430 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1290817/mspm0l1306-mcuboot-cannot-put-higher-version-image-in-primary-slot

器件型号:MSPM0L1306

大家好、

最近我以 boot_application 为例进行说明。 但是、我发现其中有一个问题:

我更改了 bim_sample_image 设置的示例工程、以设置具有更高版本号的主时隙配置(-version 2.0.0)

然后、我将 boot_application 刷写到偏移量0中、主控方存储到0x5400、而辅助方存储到0xa800。 我观察到闪烁的红色 LED 指示启动失败。

在另一种情况下、我有另一个项目、该项目几乎复制了这些配置、但双插槽映像配备了 OTA 功能。 我曾关注:

  1. 我用 ver0刷入了两个插槽、并且器件从插槽0启动。 (绿色 LED)
    1. 调试 返回 ver0-slot0。
  2. 我通过 Ver1使用 OTA。 (日志显示它使用了时隙1图像)
    1. OTA 成功、未报告错误。
    2. 器件重新启动、然后引导 SLOT1 (显示蓝色 LED)
    3. 调试返回 Ver1-SLOT1
  3. 我通过 Ver2设置 OTA。 (日志显示它使用了插槽0图像)
    1. OTA 成功、未报告错误。
    2. 设备重新启动和启动失败(呈红色闪烁)
  4. 我手动(仅限)将时隙1闪存至版本2
    1. 器件引导插槽0 (显示绿色 LED)
    2. 调试返回 Ver2-slot0
  5. 我手动(仅限)将时隙0闪存至版本1
    1. 器件启动 SLOT1 (显示蓝色 LED)
    2. 调试返回 Ver2-SLOT1

因此、我认为可能会有一个限制、即主插槽不能具有比辅助插槽更高的版本。 这是真的吗? 我们是否有决议? (没有两个相同版本的 OTA、将两个插槽刷新为相同版本)

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

    嘿、Tiger、

    我在第4步中有一点迷路。  在此步骤中、您是否说版本2已编程到插槽0和1中?  我看到"Device boot up slot" 1 。  调试返回 Ver2插槽 0 "

    如果您只对两个图像进行手动编程、该怎么办?  这个更高的版本号是否会导致它出现故障?   

    谢谢。

    JD

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

    在步骤4中、我使用 Ver2应用程序手动对 SLOT1区域进行编程。 器件最终从插槽0引导。

    是的、主插槽上的较高版本导致故障。 不管我如何以批处理方式对它们进行编程(首先结合 Bld+slot0+SLOT1、然后对闪存进行组合以构建整个闪存映像)、或者单独对它们进行刷写、也可以作为 OTA。

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

    对于未来的读者来说、我与 Tiger 离线工作、在开源 MCUBoot 代码中发现了一个错误。  此代码将在 MSPM0 SDK 中进行更新、并将包含在下一个版本中、2023年末期会更新。

    谢谢。

    JD