主题中讨论的其他器件: LP-XDS110、 UNIFLASH、 SysConfig
工具与软件:
尊敬的 TI 社区:
我不熟悉 TI RTOS、并尝试让 MCUBoot 样本运行、但我会遇到我无法解决的问题。 如果能提供任何指导或故障排除步骤来帮助我使样片正常工作、我将不胜感激。
执行 该设计的链接 :
- 电路板: 具有 LP-XDS110编程器的 CC1354P10
- SDK 版本: simplelink_cc13xx_cc26xx_sdk_8_30_01_01
- 开发环境: 带有 CCS Studio 20.0.2.5__1.6.2的 Windows 11 (我没有使用 ccs_20.1.0.00006_win、因为它需要更新我的 XDS110 Programmer、导致电路板无法刷写)
设置说明:
我在 MCUboot 中启用了跟踪(mcuboot_LP_EM_CC1354P10_1_nortos_ticlang)。
- 为此、我将 trace.c、trace.h 和 itm_private.h 复制到本地项目。
- 我 在 mcuboot.syscfg 中启用了功率 TI 驱动程序。
- 我将升级模式更改为 覆盖
- 我按如下方式编辑了 trace.c:
ITM_CONFIG ITM_CONFIG ={48000000、ITM_115200 //以前是 ITM_3000000}; - 我按如下方式更改了映像地址、以便适应由于跟踪而增加的引导加载程序大小:
- 引导加载程序基址:0x00000000;引导加载程序大小:0x00008000
- 主映像基址:0x00008000;主映像 大小:0x0002B000
- 辅助映像基址:0x00033000;辅助 映像 大小:0x0002B000
MCU Boot_Blinky 说明:
编译后处理步骤:
${CG_TOOL_ROOT}/bin/tiarmhex -order MS --memwidth=8 --romwidth=8 --Intel -o ${BuildArtifactFileBaseName}.hex ${BuildArtifactFileBaseName}
${CG_TOOL_ROOT}/bin/tiarmobjcopy -o 二进制文件${BuildArtifactFileBaseName}.out ${BuildArtifactFileBaseName}-noheader.bin --remove-section=.ccfg
${COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR}/tools/common/mcuboot/imgtool 符号--HEADER-SIZE 0x80 --ALIGN 4 --SLOT-SIZE 0x2b000 --VERSION 1.0.0 --PAD-HEADER --PAD --KEY -noheader.bin ${COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR}${BuildFileBasefactName}/source/third_party/mcuboot/root-ec-p256.pem
${COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR}/tools/common/mcuboot/imgtool -noheader.bin .p2.bin 符号--HEADER-SIZE 0x80 --ALIGN 4 --SLOT-SIZE 0x2b000 --VERSION 2.0.0 --PAD-HEADER --PAD --KEY ${COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR}${FileBuildFileFileFileName}/source/third_party/mcuboot/root-ec-p256.pem
我更新了 mcuboot_blinky_cc13x4_cc26x4.cmd 如下所示、为匹配引导加载程序大小从0x6000增加到0x8000:
问题:
- 当我擦除整个闪存并仅对 MCUboot_blinky 或 OAD_samples 进行编程时、第一个 MCUboot 分区是空的、但样本仍在运行。 为什么此应用程序仍在运行?
- 此外、为什么应用程序在电路板复位后始终无法运行。 即使 MCUboot 已刷写并正确寻址(我认为是正确的、我可能会被误码)、它也无法运行。
- 使用 Upgrade_Mode =覆盖时、我获得以下输出:
[INFO][MCB ]:mcuboot_app
[err ][mcb ]:assert: c:/ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01/source/third_party/mcuboot/boot/ti/source/mcuboot_app/flash_map_backend/f
[err ][mcb ]:assert: c:/ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01/source/third_party/mcuboot/boot/ti/source/mcuboot_app/flash_map_backend/f
[INFO][MCB ]:图像索引:0、交换类型:无
[INFO][MCB ]:bootRsp:SLOT = 0、OFFSET = 8000、VER=1.0.0.0
[INFO][MCB ]:正在启动主应用程序
[INFO][MCB ]:图像起始偏移:0x8000
[INFO][MCB ]:矢量表起始地址:0x8100
- 当使用 Upgrade_Mode = XIP 时、我获得以下输出:
[INFO][MCB ]:mcuboot_app
[INFO][MCB ]:主插槽:VERSION=1.0.0+0
[INFO][MCB ]:未找到图像
[INFO][MCB ]:从主插槽引导映像
[INFO][MCB ]:bootRsp:SLOT = 0、OFFSET = 8000、VER=1.0.0.0
[INFO][MCB ]:正在启动主应用程序
[INFO][MCB ]:图像起始偏移:0x8000
[INFO][MCB ]:矢量表起始地址:0x8100
- 为什么覆盖会产生断言错误、而 XIP 不会产生断言错误?
总结:
请有人提供一些见解、说明如何使用 TI RTOS 开始使用 MCUBoot。 在此阶段、我只想加载 MCUBoot、在 BOARD_RESET 时仍加载闪烁样本。
任何援助都将受到真正的赞赏。
此致
Brenton