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.

[参考译文] LP-EM-CC2340R53:引导加载程序设置和源代码

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1510462/lp-em-cc2340r53-bootloader-settings-and-source-code

器件型号:LP-EM-CC2340R53
主题中讨论的其他器件:SysConfigCC2340R5

工具/软件:

我记得在 TI CC2340R53研讨会演示 BLE OAD 时、他们使用了 SDK_examples/rtos/LP_EM_CC2340R53/ble5stack/hexfiles 中的以下引导加载程序二进制文件、如下所示。

只共享十六进制文件、我们可以在其中获取源代码以生成 mcuboot_dual_image_LP_EM_CC2340R53_nortos_ticlang.hex、mcuboot_offchip_LP_EM_CC2340R53_nortos_ticlang.hex 和 mcuboot_onchip_LP_EM_CC2340R53_nortos_ticlang.hex 。

 

 如果使用了相同的示例代码"mcuboot_LP_EM_CC2340R53_nortos_ticlang" 、则您可以提供相应的配置设置来生成 mcuboot_dual_image_LP_EM_CC2340R53_nortos_ticlang.hex、mcuboot_offchip_LP_EM_R53_nortos_ticlang.hex 和 mcuboot_onchip_LP_CC2340rnortos_CC2340R53.

方面

Ilanchezhian T

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

    您好!

    您可以在有关 BLE OAD 的 SimpleLink Academy 中找到有关如何重现此技术讲座的说明(链接)。

    引用此 SLA:

    MCUboot 是一个开源工程、支持用于32位 MCU 的硬件独立安全引导加载程序。 在 OAD 中、MCUboot 的用途与启动映像管理器(BIM)相同、即在下载后验证并引导至新映像。 可在公共 MCUboot 文档中找到实现详细信息。 代码维护在 MCUboot GitHub 存储库中

    虽然您可以在 MCUboot GitHub 存储库中找到官方源代码、但有关如何为 CC2340R53构建工程的说明、 可以使用 MCUBOOT 工程 (链接)。 如果您的计算机上安装了 LOWPOWER F3 SDK、则示例位于:
    C:\ti\simplelink_lowpower_f3_sdk_8_40_02_01\examples\nortos\LP_EM_CC2340R53\mcuboot\mcuboot

    要编译其他十六进制文件(mcuboot_dual_image_LP_EM_CC2340R53_nortos_ticlang、hex、mcuboot_offchip_LP_EM_CC2340R53_nortos_ticlang.hex 和 mcuboot_onchip_LP_EM_CC2340R53_nortos_ticlang.hex)、您可以做到 按照有关 BLE OAD 的 SLA 说明进行操作 在 CC2340R53上(链接)

    此致、
    Maxence

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

    抱歉、我找不到有关 在中构建其他十六进制文件(mcuboot_dual_image_LP_EM_CC2340R53_nortos_ticlang、hex、mcuboot_offchip_LP_EM_CC2340R53_nortos_ticlang.hex 和 mcuboot_onchip_LP_EM_CC2340R53_nortos_ticlang.hex)的信息   按照有关 BLE OAD 的 SLA 说明进行操作  在 CC2340R53上(链接)  

    我的查询与此设置有关、因为有不同的 OAD 类型、我确实希望 MCU 引导中对每一个 OAD 进行单独的配置。 这是我感兴趣的内容。 我希望从工程中生成不同的 mcuboot oad 引导加载程序映像 " mcuboot_LP_EM_CC2340R53_nortos_ticlang"  

    更多关于我们项目的第一阶段 ,我们不会实施固件升级,而是只需要安全启动(仅使用我们生成的公共密钥存储在外部硬件安全存储(TPM)中的固件身份验证部分,您认为这种自定义是否可以 通过现有的示例 MCU 引导加载程序实现?  

    另一个问题是、我们确实希望有单独的 NVM 区域、用于将用户数据存储在指定的内存区域中。 我有什么想法是 创建单独的 NVM 如上一张图片所示,这种方法是否可行??  

     

    我需要 在 MCUBoot 中做出相应的新更改,我 想对于内存分区? "你有什么想法吗?  

    此致

    Ilan   

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

    您好、团队、3天前我们上次查询中发布的任何更新

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

    大家好、我目前正在研究它、试图回答您的问题、很抱歉耽误您的时间

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

    您好、

    1 - mcuboot_LP_EM_CC2340R53_nortos_ticlang 工程负责创建不同类型的 MCUboot (片上、片外、双映像)、但您必须手动进行更改以反映这些设置。 默认工程在片上使用 MCUBoot、但如果您要将片外存储器用于其中一个映像槽位、则必须在 MCUBoot 中将 XIP 设置更改为 Overwrite、并检查 Enable external flash 复选框 。 这将使 MCUBoot 默认在外部闪存中的地址0x00000000处查找辅助映像。

    2 - MCUBoot 允许安全启动、方法是将映像哈希值与未加密后与开发人员公钥进行比较的映像标头中的哈希值进行比较。 如果您只需要在不进行固件升级的情况下进行安全启动、则无需永久映像或向 BLE 项目添加 OAD、您只需在主插槽中添加项目作为用户应用程序、即可遵循 SLA。 至于使用 HSM 的 TPM 来满足您的加密需求、MCUBoot GitHub 工程有多个未决问题、这些问题提及(请参阅 链接链接)、但是 其中任何一个都没有显示出来自 MCUboot 团队的官方支持迹象 。 因此、 我们不能保证您能够将 TPM 与 MCUboot 配合使用

    3 -应该可以像您一样在 SysConfig 中添加第二个 NVM 节点、来拆分 NVM。 您可以为、和使用 Generate、而不是将指针用作区域类型 减小其他 NVM 的大小、使它们不会重叠

    此致、
    Maxence

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

    感谢 您的答复,我还没有通过你的答复 平均时间,我有一些关于这个的更多的问题,

    查询1:

    在 Basic BLE OAD 应用程序链接器文件中、我看到定义为"SECURE_BOOT"的宏、从链接器文件中的系统存储器映射中可以看到、如果引导加载程序被选择为 MCU Bootloader 且存在于"No MCU Boot"选项中、则未定义此宏。 那么、在这种情况下、SECURE_BOOT 用于什么?

      

    查询2:  

    另外、对于 secure_boot 选项、闪存大小宏设置为值"0xE8000"、它大于 CC2340R53闪存容量(512KB)、您能否就此提供更多信息? -请参阅我在下表中制定的信息[请参阅安全启动]   

    摘录自"Basic BLE OAD application "  
     链接器文件中使用的宏   安全启动   非安全启动   OAD 类型  
    闪存大小   0xE8000  0x80000 OAD_APP_ONCHIP [OR] OAD_PERSISTENT
    NVS_SIZE 0x4000 0x4000 OAD_APP_OFFCHIP [或] OAD_PERSISTENT [或] OAD_APP_ONCHIP [或] OAD_DUAL_映像
    NVS_BASE (= FLASH_SIZE - NVS_SIZE) 0xE4000 0x7c000  
    MCU_HDR_SIZE 0x80 0x100  
    MCUBOOT_BASE 0x00 0x00  
    MCUBOOT_SIZE 0x6000 0x6000  
    APP_HDR_BASE 0x32000 0x32000 OAD_APP_ONCHIP [OR] OAD_PERSISTENT [项目定义的链接器变量- APP_HDR_ADDR ]
    0x6000 0x6000 OAD_APP_OFFCHIP  [工程定义的 链接器变量- APP_HDR_ADDR ]
    0x6000 0x6000 OAD_dual_image [项目定义的链接器变量- APP_HDR_ADDR ]
    APP_BASE (APP_HDR_BASE + MCU_HDR_SIZE) 0x32080 0x32100 OAD_APP_ONCHIP [OR] OAD_PERSISTENT
    0x6080 0x6100 OAD_APP_OFFCHIP   
    0x6080 0x6100 OAD_dual_image   
    PERSISTENT_HDR_BASE 0x00 0x6000  
    persistent_base (persistent_HDR_BASE + MCU_HDR_SIZE) 0x80 0x6100  
    APP_SIZE (FLASH_SIZE - APP_BASE - NVS_SIZE) 0xB5B80 49F00 OAD_APP_ONCHIP [OR] OAD_PERSISTENT
    APP_SIZE (FLASH_SIZE - APP_BASE - NVS_SIZE) 0xDDF80 0x75F00 OAD_APP_OFFCHIP   
    APP_SIZE ((FLASH_SIZE - NVS_SIZE)/2 - MCU_HDR_SIZE) 0x71F80 不适用 oad_dual_image  -安全  
    APP_SIZE ((FLASH_SIZE - NVS_SIZE - MCUBOOT_SIZE)/2 - MCU_HDR_SIZE) 不适用 0x3AF00 OAD_dual_image  :不安全  

    此致、  

    Ilan  

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

    您好、 我导入了" mcuboot_LP_EM_CC2340R53_nortos_ticlang  "应用程序、请参见下图中的默认设置。  

    根据我的说法,这种默认设置可能适用于双映像,您可以在此确认,这里的引导加载程序的大小是0x6000 ,主插槽的大小是0x3D000 , 次插槽的大小 也是0x3D000。 因此、引导加载程序+主映像+辅助映像的最大大小 = 0x6000 + 0x3D000 + 0x3D000 = 0x80000 (512KB)。 但在链接器中、NVS 区域大小为0x4000。 因此,为用户保留的有效闪存是496 KB (0x00到0x7C000 ),所以这种配置是如何工作的。  

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

    您好、Maxence、  

    根据我的理解, 我 在下面提供了我的设置,请您确认设置是否正确。 ?  

      双映像 OAD 配置   片上 OAD 配置 片外 OAD 配置
    引导加载程序基础   0x00000000 0x00000000 0x00000000
    引导加载程序大小    0x00006000 0x00006000 0x00006000
    主映像基地址   0x00006000 0x00032000 0x00006000
    主映像尺寸   0x0003B000 0x0004A000 0x00076000
    辅助映像基地址   0x00041000 0x00006000 0x00000000
    次要映像尺寸   0x0003B000 0x0002C000 0x00076000
    升级模式   XIP   XIP   覆盖  
    启用外部闪存   不适用   不适用   已选择  

    此致  

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

    您好、

    假设您不需要 NVS 空间、片外和双映像 OAD 配置正确。

    您描述的片上 OAD 配置是 SLA 中给出的配置(主时隙为0x0004A000、辅助时隙为0x0002C000)、而不是默认的 SysConfig 配置(两者的大小均为0x0003B000、与双映像 OAD 配置一样)。

    我认为 SLA 和 SysConfig 建议的配置都是正确的。 唯一的问题可能是0x0002C000不足以使永久映像有足够的空间居住。 如果您稍后遇到问题、可以尝试使用0x0003B000作为两个图像的大小。

    我也在寻找你的另一个问题的答案,我没有忘记不用担心。

    此致、
    Maxence

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

    您好、

    查看 F2 SDK 的用户指南后、就可以完整了解 Trusted Firmware-M 实现 以及如何实现安全启动。 由于 F3 SDK 用户指南中的任何位置都没有提到这一点、因此我假设不应使用 SECURE_BOOT 宏。

    本节还提到安全启动是通过 MCUboot 实现的、因此我建议通过常规使用 MCUboot 来实现安全启动。

    此致、
    Maxence

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

    Maxence、我在 MCU 启动过程中对双映像所做的更改无法处理应用程序映像"  basic_ble_oad_dual_image_LP_EM_CC2340R53_freertos_ticlang"、我只能看到上次刷写的映像正在运行、上传的新映像没有运行。

    我附加了为双引导工程修改的 MCU 引导、以供您参考。 下图是存储器分区配置

    e2e.ti.com/.../mcuboot_5F00_dualOAD_5F00_LP_5F00_EM_5F00_CC2340R53_5F00_nortos_5F00_ticlang.zip   

    对我有用的是双映像预编译的十六进制文件和应用程序映像" basic_ble_oad_dual_image_LP_EM_CC2340R53_freertos_ticlang",正在升级我正在使用 Simplink connect 移动应用程序提供的示例双引导 v2二进制文件 Only_Release_ v2.)。  

    您能否提供在您的端测试的正确 MCU 双引导工程 以便验证示例应用程序<basic_ble_oad_dual_image_LP_EM_CC2340R53_freertos_ticlang>是否适合我。 谢谢

    此致

    Ilan

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

    您好、

    我可以使用您的代码重现我最后的问题。 映像似乎已正确上传和存储、但 MCUBoot 不会在 v2版本上启动。 我假设是因为 MCUBoot 不接受通过 OTA 发送的新映像的签名、或者可能因为版本不是预期的。 我会试着找出原因,我会回来给你

    此致、
    Maxence

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

    感谢您的支持。接下来、我还要分享我的示例代码、该代码是基本 BLE 示例应用、还将进行双映像 OAD 所需的更改以供您参考。

    e2e.ti.com/.../6663.Ilan_5F00_basic_5F00_ble_5F00_freertos_5F00_dualchip_5F00_OAD.zip

    请查找我生成的.bin、获取 要更新的当前固件(Ilan_basic_ble_freertos_dualchip_OAD\Release\Ilan_basic_ble_freertos_dualchip_OAD_v1_Ilan-dual_OAD_v1.bin)和要更新的固件(Ilan_bbasic_ble_freertos_dualchip_dualchip_Release\Release\ILOAD_OAD_ILOAD_v2下已编译的.rab_dual_v2)。 2个.bins 中的更改是 BLE 名称更改 和引导加载程序标头版本更改

    此致

    Ilan   

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

    您好!

    我可以确认、使用您版本的 MCUboot 双映像和 basic_ble_oad_dual_image 工程、映像正在正确地上传地址(0x41000)。

    您可以看到0x6000和0x41000包含 MCUboot 映像,因为它以魔术字开头0x96f3b83d。 版本号也更高、且密钥正确(如果没有、则不接受映像)

    问题可能是在双映像中、MCUboot 仅使用辅助插槽作为下载空间、并且始终启动主插槽(如果签名检查)、因此 MCUboot 有效地忽略第二个映像。 我需要找到一种方法、在 OAD 成功且版本更高时、将第一个映像替换为第二个映像。 我正在继续调查、我会回来给您。

    此致、
    Maxence

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

    您好!

    好消息,我在我的最后一个消息是正确的! 问题在于、需要在 SysConfig 中将覆盖设置为升级模式、而不是将 XIP 设置为升级模式。 如果满足正确的条件(版本更高并且签名检查出来)、这会告知 MCUboot 用辅助时隙覆盖主时隙。


    以下是通过 OAD 进行升级的 SysConfig:

    此致、
    Maxence

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

    是、Maxence、

    我更改了 mcuboot SysConfig、将 其更改为覆盖模式、并使用 TI 提供的示例"basic_ble_oad_dual_image_LP_EM_CC2340R53_freertos_ticlang"进行了测试。  更新后、我从闪存读取了存储器内容、可以看到在主槽位版本2的 bin 文件已更新、在从地址0x00041000到0x00041800开始的辅助槽位中、该文件已被擦除。 我认为这是预期的行为。  

    现在什么是不起作用的, 我   在 参考 TI 示例" basic_ble_LP_EM_CC2340R53_freertos_ticlang"中对双映像 OAD 进行了更改。 你可以找到我的移植项目在 "6663.Ilan_basic_ble_freertos_dualchip_OAD.zip ,请参阅在这个线程发布19小时前。  

    如果您能告诉我们我更改的问题是什么、这会很有帮助。  

    MCU 引导提供的图像工具用作工程中编译后处理步骤的一部分、用于创建不同版本的 v1和 v2、在与十六进制比较工具进行比较时 、我可以看到 v1和 v2之间的图像生成方式存在一些差异、我注意到在 根据 MCUBOOT 所需的格式进行打包时发生了一些变化、但不确定这是否是问题。  

    请找到随附的 zip 文件、其中包含我的应用和 TI 生成的一个的.bin 文件、以及我制作的几个十六进制比较屏幕截图、以了解其中的差异。  

    e2e.ti.com/.../Images.zip

    此致、  

    Ilanchezhian T  

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

    您好、

    v1和 v2文件之间的十六进制差异看起来很正常。 标头的唯一区别是版本号(从1到2)、文件的末尾是固件的签名、用于验证固件的真实性。

    TI 的 v1和 v2文件中的最后差异相对于您的软件而言似乎误报、因为没有区别。

    当我尝试在您的双映像项目中寻找问题时,您能告诉我您从哪个项目开始,您做了哪些更改,以结束您的双映像项目吗?

    此外、您正在做什么的用例?为什么您不简单地使用 TI 提供的双图像模板?

    此致、
    Maxence

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

    您好、Maxence、  

    正如我上面描述的,我已经采取了基本的 ble 示例,并根据你提到的前一个线程修改: https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1510448/lp-em-cc2340r53-application-not-getting-loaded-via-mcuboot/

    [有关如何将 BLE OAD 添加到工程(例如 Basic_BLE)的确切步骤、您可以按照 SimpleLink Academy 中有关 OAD 的说明(链接)。]  

    在如下所示更改编译后处理步骤后、我的工程会正常工作。  

    Ilan 编译后处理步骤:

    ${COM_TI_SIMPLELINK_LOWPOWER_F3_SDK_INSTALL_DIR}/tools/common/crc_tool/crc_tool patch-image ---elf ${BuildArtifactFileBaseName}.out -symbol-prefix ti_utils_build_GenMap_sym_crc_CCFG -o ${BuildArtifactFileBaseName}.out
    ${CG_TOOL_ROOT}/bin/tiarmobjcopy -O ihex ${BuildArtifactFileBaseName}.out ${BuildArtifactFileBaseName}.hex
    ${CG_TOOL_ROOT}/bin/tiarmobjcopy ${BuildArtifactFileBaseName}.out -- output-target binary ${BuildArtifactFileBaseName}_noheader.bin -- remove-section=.ccfg
    ${COM_TI_SIMPLELINK_LOWPOWER_F3_SDK_INSTALL_DIR}/tools/common/mcuboot/imgtool 符号--header-size 0x100 --align 4 --slot-size 0x3B000 --version 1.0.0 --pad-header --key ${COM_TI_SIMPLELINK_LOWPOWER_F3_SDK_INSTALL_DIR}/source/third_party/mcuboot/root-ec-p256.pem ${BuildfacartArtifactBaseName}_noheader.bin ${BuildFileFileName}_v1.bin
    ${COM_TI_SIMPLELINK_LOWPOWER_F3_SDK_INSTALL_DIR}/tools/common/mcuboot/imgtool 符号--header-size 0x100 --align 4 --slot-size 0x3B000 --version 2.0.0 --pad-header --key ${COM_TI_SIMPLELINK_LOWPOWER_F3_SDK_INSTALL_DIR}/source/third_party/mcuboot/root-ec-p256.pem ${BuildfacartArtifactBaseName}_noheader.bin ${BuildFileFileName}_v2.bin

    TI 编译后处理步骤:

    ${CG_TOOL_ROOT}/bin/tiarmobjcopy ${BuildArtifactFileBaseName}.out -- output-target binary ${BuildArtifactFileBaseName}_noheader.bin -- remove-section=.ccfg
    ${COM_TI_SIMPLELINK_LOWPOWER_F3_SDK_INSTALL_DIR}/tools/common/mcuboot/imgtool _v1.bin 符号--header-size 0x100 --align 4 --slot size 0x3B000 --version 1.0.0 --pad-header --pad --key ${COM_TI_SIMPLELINK_F3_SDK_INSTALL_DIR}/source/third_party/mcuboot/root-ec-p256.pem ${LOWfacArtifactFileName}_noheader.bin
    ${COM_TI_SIMPLELINK_LOWPOWER_F3_SDK_INSTALL_DIR}/tools/common/mcuboot/imgtool _v2.bin 符号--header-size 0x100 --align 4 --slot size 0x3B000 --version 2.0.0 --pad-header --pad --key ${COM_TI_SIMPLELINK_F3_SDK_INSTALL_DIR}/source/third_party/mcuboot/root-ec-p256.pem ${LOWfacArtifactFileName}_noheader.bin

    可能我看到的不同之处在于这一点、我不确定  我认为下面的命令是什么导致了一些问题、我不确定它是什么。

    ${COM_TI_SIMPLELINK_LOWPOWER_F3_SDK_INSTALL_DIR}/tools/common/crc_tool/crc_tool patch-image ---elf ${BuildArtifactFileBaseName}.out -symbol-prefix ti_utils_build_GenMap_sym_crc_CCFG -o ${BuildArtifactFileBaseName}.out  

    此致

    Ilan T  

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

    您好、

    今天我将花一些时间来调试您的项目、一旦我发现问题、我将尽快回复您。

    此致、
    Maxence

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

    您好、

    无论我是使用了 TI 编译后处理步骤还是您的编译步骤、我都不幸运地使您的工程正常工作。

    我注意到您的项目有多个问题。
    首先、您没有按照 SLA 的建议包含 oad_reset_service:

    我发现的第二个问题是您从编译后处理步骤中删除了--pad 标志。 这种填充实际上很重要、因为它添加了报尾魔法和复制标志、这在双映像 OAD 和片外 OAD 中是必需的、因为存储器设置为"覆盖"而不是"就地执行"。


    您可以 点击此处、阅读有关 MCUboot 中映像工具的更多信息。

    我建议您从零开始重新启动 SLA、并且在选择步骤时要小心始终选择双映像。

    此致、
    Maxence

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

    你好 Maxene ,你是正确的,我错过了 国旗--在我的应用程序中我之前分享.  

    我从参考应用程序"basic_ble_oad_dual_image_LP_EM_CC2340R53_freertos_ticlang"工程中复制编译后步骤命令后、该工程已经有 flag --pad、因此它有效(对不起、我忘记在 SLA 中注意到了我的错误)。 在进行此更改后、我的应用程序按预期运行、这是唯一遗漏的问题。  

    此外、我注意到无论是否包含 oad_reset_service、我的应用程序都在工作、而且当我提到 "basic_ble_oad_dual_image_LP_EM_CC2340R53_freertos_ticlang"工程时、我的应用程序仅供我参考 、它也不包括 oad_reset_service、并且它也有效。  

    最后一个问题用于关闭该主题。  

    双映像 OAD 配置   片上 OAD 配置 片外 OAD 配置
    引导加载程序基础   0x00000000 0x00000000 0x00000000
    引导加载程序大小    0x00006000 0x00006000 0x00006000
    主映像基地址   0x00006000 0x00032000 0x00006000
    主映像尺寸   0x0003B000 0x0004A000 0x00076000
    辅助映像基地址   0x00041000 0x00006000 0x00000000
    次要映像尺寸   0x0003B000 0x0002C000 0x00076000
    升级模式   XIP   覆盖 覆盖  
    启用外部闪存   不适用   不适用   已选择  

    您能否检查 具有外部存储器的片外 OAD 的 MCU 引导配置是否正确、 辅助映像大小上最明显的应为1MB 或0x0007600以及辅助 映像基址 - 0x00000000。  

    谢谢  

    Ilan    

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

    您好!

    根据有关 OAD (链接)的用户指南、主映像大小应为器件闪存大小- nV 空间- MCUboot 空间。

    对于具有512KB 闪存的 CC2340R53、这相当于0x00080000 - 0x00004000 - 0x00006000 = 0x00076000。

    辅助映像基本地址为0x00000000、因为这里仅存储映像、无需为 MCUboot 的引导加载程序留出空间。

    此致、
    Maxence