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.

[参考译文] CC1312R:引导加载程序跳转到应用程序不起作用

Guru**** 2555630 points
Other Parts Discussed in Thread: CC1312R

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1040468/cc1312r-bootloader-jumping-to-application-is-not-working

器件型号:CC1312R

我有一个基于项目 BIM 的简单 cc1312R 引导加载程序、该程序使用 CSS TI-RTOS 进行编译。 该引导加载程序 从0x0写入到0x3000。 CCFG 在闪存的末尾被写入。 它运行良好、因为它可以使 LED 闪烁。 引导加载程序主函数仅执行以下操作:

static void jumpToPrgEntry(uint32_t prgEntry) {
    static uint32_t temp;
    temp = prgEntry;
    temp +=4;
    asm(" LDR SP, [R0, #0x0] ");
    ((void (*)(void))(*((uint32_t*)temp)))();
}

使用地址0x3000。

我有一个运行良好的标准 TI-RTOS 应用程序。 此应用 程序从0x3000开始写入闪存。 在此应用中、我已在 cfg 文件中进行了修改:

m3Hwi.resetVectorAddress = 0x3000;

我尚未修改 cmd 文件。 这不能正常工作。 应用程序不是从引导加载程序启动(或发生崩溃)。 我缺少什么?

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

    有人将被分配到此主题。 同时、请提供有关您使用的 SDK 版本以及您使用的示例作为代码起点的信息。

    BR

    Siri

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

    我使用的是 SimpleLink 4.20。 我不愿意升级该框架、因为我在 Simplelink 中有一些非常复杂的修复程序、无法轻松移植、我认为我的问题与 Simplelink 的某个版本有关。

    我已经取得了进展、我认为我已经接近我的目标。

    -我可以将引导加载程序放在0x56000、修改 cfg VALID _IMG 地址、 并在0x0写入未修改的应用程序。 该芯片引导至我的引导加载程序并跳转到我的应用程序。 成功!

    我希望执行"相反"操作:我的引导加载程序位于0x0、具有默认的 ccfg valid_IMG。 我的应用程序被复制到闪存中的0x2000。 引导加载程序启动并跳转到0x2000时、它不起作用:应用程序未启动。 我的应用中唯一的修改是 cfg 文件中的 m3Hwi.resetVectorAddress = 0x2000。

    我的应用程序中还缺少什么 内容、因为 它被物理移动到0x2000?

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

    Gregoire、您好!

    我不确定是否可以更改引导加载程序的位置。 至少需要更改 CCFG。

    您是否看到了 EnhancedOAD SimpleLink Academy? 尽管主要面向 BLE 用户、但我认为您会发现一些有用的器件:

    https://dev.ti.com/tirex/explore/node?node=AIixxGE2y6tnPJ7cm65SFQ__pTTHBmu__LATEST

    谢谢、

    玛丽·H.