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.

[参考译文] CC2642R:有关定制引导加载程序映像和 MCU 复位矢量的问题

Guru**** 2595805 points
Other Parts Discussed in Thread: CC2640, CC2642R, SIMPLELINK-CC13XX-CC26XX-SDK, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1184777/cc2642r-question-regarding-our-custom-boot-loader-image-and-the-mcu-reset-vector

器件型号:CC2642R
主题中讨论的其他器件:CC2640SIMPLELINK-CC13XX-CC26XX-SDKSysConfigARM-CGT

对于我们的旧 TI MCU CC2640:我们成功使用了自己的引导加载程序映像(BIM)。 配置文件 appBLE.cfg 最初具有应用程序复位矢量0x0、我们将其更改为复位矢量0x1010、并且旧的引导加载程序多年来正常工作。
对于我们的新 TI MCU CC2642:我们在 TI EE 论坛中回复了我们的票证,并在.cfg 文件中进行了类似的更改,文件名中包含了我们的项目:wellshell_peripheral_app.cfg:即,我们更改了复位矢量0x0 -> 0x1010。 这对我们的新 BIM 不起作用:我们准备并尝试运行合并的映像:MCU CC2642上的引导加载程序和固件应用+ BLE 堆栈:我们的应用代码未正确启动。 有什么意见和进一步的建议?

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

    器件型号:CC2642R

    @Ryan Brown1您在回复我之前的相关 TT 时写道:"命令链接器文件(.cmd)的应用程序条目地址值存储在与 BIM 应用程序共享的 OAD 映像头文件中。"

    您或其他人能否对此进行澄清? 我们在 CC2642的链接器文件 cc13x2_cc26x2_app.cmd 中看不到应用程序起始地址。 我们已添加到此链接器 cmd 文件:

    #define APP_BASE 0x00001000

    因为此 def 位于 CC2640的旧链接器 cmd 文件中。  我们的旧 BIM 代码有一个汇编器代码、用于使用存储在0x1014中的向量启动应用。 我们正在尝试重新使用这种方法。 我们的新型 MCU CC2642R 的定制 BIM 代码中是否需要这种方法?

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

    您好 Ludmil、

    您是否仍在使用 SIMPLELINK-CC13XX-CC26XX-SDK 6.10版、您的应用是否使用 TI-RTOS 或 TI-RTOS7?  默认 BIM 已 预先定义 SET_CCFG_IMAGE_VALLED_CONF_IMAGE_VALLE=0x56000、以便 CCFG 知道 在 BIM 中启动、也知道其中断矢量的存储位置。  然后,BIM 应用程序最终将使用 jumpToPrgEntry 跳转到存储在 metadataHdr.fixedHdr.prgEntry 中的程序项。  在 BLE 项目中 、prgEntry 等于 prgEntryAddr。   这被定义为 cc13x2_cc26x2_app_tirtos7.cmd 文件中.resetVecs 的 load_start、从而找到 BLE 应用自己的中断矢量。  它们专门设置在代码的入口部分内、放置在 SDK 中提供的示例中的 OAD 映像头之后、后跟闪存内容本身。  查看应用程序和 BIM (bim_cc26x2_cc13x2.cmd)项目的命令链接器文件将会非常有帮助。  您是否能够独立运行和调试 BIM 项目?  应用程序映像能否在首次加载期间按预期运行、但在复位后失败?

    此致、
    Ryan

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

    尊敬的 Ryan Brown1:
    感谢您的建议。 我们使用的是 SDK 6.10和 TI RTOS。 我们可以在哪里使用默认 BIM?

    我们尝试在 SysConfig、代码和项目设置中添加预定义符号-它不起作用。
    其他示例项目中存在"jumpToPrgEntry"、但我们不确定如何使用它。

    我们不能独立运行 BIM 项目,我们是否可以拨打电话进行讨论?
    我们的应用仅通过调试器工作。 当我们使用器件电池和合并的十六进制映像时、我们应该首先启动 BIM。 BIM 将启动我们的应用、但我们看到 BIM 未正确启动我们的应用。

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

    您可以在 simplelink_cc13xx_cc26xx_sdk_6_10_00_29\examples\nortos\CC26X2R1_LAUNCHXL_bim\bim_onchip 目录中找到默认的 BIM 项目。  这还将显示如何使用 jumpToPrgEntry 函数。  您将需要 SET_CCFG_IMAGE_VALLED_CONF_IMAGE_VALID 等效   于 BIM 应用的起点、例如、BIM_cc26x2_cc13x2.cmd 的 FLASH_BIM_START 为0x56000、这是命令链接器文件在存储器中分配的段。  这样、.intvecs 在 startup_ticlang.c 中执行 ResetISR、在跳转到 CCS C 初始化例程之前完成器件调整。  例如、这不在 simple_peripheral_oad_onchip 中使用、而是在 cc13x2_cc26x2_app_tirtos7.cmd 中保留一个条目段 、该段在 OAD 映像头中包含带有 prgEntryAddr 的 resetVecs。  您可以从其 技术文档中阅读有关 ARM-CGT 链接器的更多信息。  您还应参考 链接器命令文件入门。  您还可以使用工具 将单独的图像组合成单个生产图像

    此致、
    Ryan

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

    尊敬的 Ryan Brown1:
    非常感谢默认 BIM 项目、我们研究了该项目并构建了定制 BIM、为旧 MCU cc2640重复使用了一些旧代码。 我们尝试使用合并工具 SRecord 将 MCU cc2642R 的应用固件.bin 文件与 BIM .hex 映像合并、但出现错误、我们无法理解:
    我们运行了以下命令:
    设置 SREC_LOC="C:\Program Files\srecord\bin"
    %SREC_LOC%\srec_cat.exe bim_onchip_CC26X2R1_LAUNCHXL_nortos_ccs.hex -英特尔 activbody-firmware-BT5.bin -bin -o multi_role_oad_oad_product.hex -英特尔

    在控制台上接收到错误:
    srec_cat:activbodio-firmware-BT5.bin:0x5609A:警告:冗余0x00056000
    值(0x00)
    srec_cat:activbodio-firmware-BT5.bin:0x5609A:多个0x00056001值
    (上一个= 0x40、这个= 0x00)

    我们的 BIM 从0x56000开始。 如果需要、我可以提供2个图像。 非常感谢您的建议。

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

    您好 Ludmil、

    我很高兴听到您正在取得进展。  请记住、0x5600到0x5800是最后一个闪存页、也是 CCFG 的存储位置。  由于该页面由 BIM 维护、因此 ACTIVATE-firmware-BT5工程不应尝试将任何内存写入此闪存页面。  例如、我们可以在 simple_peripheral_onchip_oad 项目中发现、来自 examples/rtos/CC26X2R1_LAUNCHXL/ble5stack/simple_peripheral_oad_onchip/tirtos7/ticlang 目录的命令链接器文件 cc13x2_cc26x2_app_tirtos7.cmd 可防止 FLASH_PAGE_PAGE_SECTORS 的任何分配。  您应该验证生成的映射文件没有显示从0x56000到0x58000的任何闪存分配、因为这可能会导致观察到的重叠问题。

    此致、
    Ryan

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

    您好、Ryan Brown1、非常感谢您的建议。 我们在调用合并工具 SRecord 后成功地消除了错误。 我们现在已经合并了映像、我们将尝试对其进行调试、因为它运行不是很好、但这是另一个问题、上一个工具问题已解决。