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-CC2652RB:如何使用 BIM_ONCHIP 远程更新 UART2的非 BLE 项目

Guru**** 2551110 points
Other Parts Discussed in Thread: CC2652RB, UNIFLASH

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1081795/lp-cc2652rb-how-to-remote-update-the-non-ble-project-by-uart2-with-bim_onchip

部件号:LP-CC2652RB
线程中讨论的其他部件:CC2652RBSWRA466UNIFLASH

您好 TI,

我们有一个可以访问互联网的设备 A 和一个通过 UART2。与 DeviceB 交互的设备 B

现在,我们希望通过 Internet 将 DeviceB 的固件传输到 deviceA,并通过 UART 协议更新 DeviceB。

这意味着我们要修改 persistentApp 和非 BLE 项目(如 spimaster)以完成非 OAD (但 UART 下载)。

我发现一个问题非常有用,但对我来说不够清楚:

LAUNHXL-CC1352P:需要 OAD 示例- Sub-1 GHz 论坛- Sub-1 GHz - TI E2E 支持论坛

是否有任何文档显示如何执行此操作?

非常感谢您!

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

    你好,jude,

    最初的问题是几年前的,相当长。  我是否认为在 deviceA 或 DeviceB 上不需要 BLE?  我建议使用 ROM 引导加载     器,有关 CC2652RB ROM 引导加载器功能的详细信息,请参阅 SWRA466和 TRM 的第10章。  这样,您就不会牺牲永久应用程序和图像下载区域的一半以上可用闪存。  如果无法实现,则需要修改持久性应用程序,以使用 UART 代替 BLE OAD 图像传输层。  片上 BIM 应该保持相对不变,但图像标题除外。  这将是一项相当重大的努力,我不知道以前有任何尝试完成这项任务。

    此致,
    瑞安

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

    感谢您的回复!

    事实上,我们已经看到了 SWRA466的文档,bootloader 的问题是总是需要一个按钮操作来启动更新,是吗?

    但我们的设备可能离用户很远,因此我们需要远程更新。

    好消息是我的同事已经意识到了在 deviceA 的片外 UART_Download,但我们需要在 DeviceB 上进行片内 UART_download。

    现在我可以在 spimaster 项目中添加 img_header,并且 BIM 检查成功,BIM 可以运行到  jumpToPrgEntry (imgHdr.fixedHdr.prgEnde);在刷新固件后首次启动 ,如下图所示,LED 指示灯正常闪烁:

    但用户应用程序无法正常工作,因此我认为.cmd 或.cfg 文件中存在一些配置错误。

    我只使用${SDK}\SOURCE \ti\ble5stack\common\cc26xx\CC\cc\cc26x2_app_oad_agama.cmd 的.cmd 文件和 simule_peripheral_oad_onchip 项目 的 simple_peripheral_oad_onchip_app.cfg 文件,并进行一些修改以成功构建。

    是否有一些文档可以描述.cfg 和.cmd 文件的工作方式?

    再次感谢。 祝你度过美好的一天!

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

    我本希望您使用 cc13x2_cc26x2_app.cmd,因为这是片上的 Simple-Peripheral Linker 文件搜索路径所引用的内容。  您需要确保项目具有在“Arm Compiler Predefined Symbols”(臂编译器预定义符号)中定义的正确 OAD_IMG_A 或 OAD_IMG_B,并且还使用 OAD_ONCHIP。 在 Arm Linker Advanced Options Command File Preprocessing 中,OAD_IMG_A=1或 OAD_IMG_B=1也是如此。  所有这些都应通过应用程序项目(而不是 BIM 项目)来完成,以确保正确的重置矢量地址。  使用 Uniflash 或 Flash Programmer 2,确保 BIM 十六进制和应用程序二进制映像在设备上连续加载,而不会相互覆盖。  您可以在 《BLE5-Stack 用户指南 》和 《BLE 增强型 OAD SimpleLink Academy 实验》中了解更多信息。

    此致,
    瑞安

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

    你好,瑞安:

    感谢您的帮助! 我有一些问题要回答。

    [引用 userid="114053" url="~ë/support/wireless-connectivity /蓝牙组/蓝 牙/f/Bluetooth-forum/1081795/lp-cc2652rb-ho-remote-update-the-ber-ble-project-but-bart2-bim_onchip/4006410#400266410"cc_app2搜索路径中引用的简单文件路径13x2。

    我检查片上的 sime_peripheral 项目,并看到以下内容:

    我看到此项目是指  cc26xx_app_and_stack_agama_stad_onchip.cmd,但 “从内部版本中排除”表单项目,原因是什么?   是否不需要.cmd 文件来构建项目? (我已经尝试 了 cc13x2_cc26x2_app.cmd,但效果不好)

    [引用 userid="114053" url="~ë/support/wireless-connection/bluetooth/f/蓝 牙-forum/1081795/lp-cc2652rb-ho--remote-update-the-non-ble-project-ber-uart2-bim_onchip/4006410#4006410_oAD_CH10符号,这些符号在 OONAD_OIP 中定义为预定义的且在 OONAD_OIP 中使用。] Arm Linker Advanced Options Command File Preprocessing[/quot]中的 OAD_IMG_A=1或 OAD_IMG_B=1也是如此

    我已经知道 OAD_IMG_A 是持续性应用程序的含义,OAD_IMG_B 是用于 userApp 的,所以我认为我需要在 spimaster 中定义 OAD_IMG_B。

        

    按照上述定义,我构建了 spimaster,CCS 返回以下错误消息:

    我无法理解它的含义,你能给我一些建议吗?

    再次感谢,瑞安!

    你可以周末过得开心!

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

    您的项目目录屏幕截图可能暗示您没有评估最新的 SIMPLELINK-CC13XX-26XX-SDK。   cc13x2_cc26x2_app.cmd include 库文件通常位于“项目属性”->“生成器”->“臂链接器”->“文件搜索路径”中。   Persistent_app 是其自己的项目,其图像是预配置的设置。  您的 TI-RTOS 配置文件(如 BLE_Debugge.xscfg 或 BLE_Releas.xscfg )应包含定义 OAD_IMG_TYPE 的逻辑,simple_peripheral_oad_onchip_app.cfg 会引用是否定义了 OAD_IMG_A/B。

    此致,
    瑞安

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

    谢谢你的回复,瑞安。

    [引用 userid="114053" url="~ë/support/wireless-connection/蓝 牙-group/蓝 牙/f/Bluetooth-forum/1081795/lp-cc2652rb-ho-remote-update-th-non-ble-project-by-bart2-with -bim_onchip/4007270#4007270"> 资源库-资源工具库-资源工具库-资源工具库-资源库-资源库-资源库-资源库-资源库-资源库-资源库-资源库-资源库-资源库-资源-资源库-资源库-资源-资源-资源-资源-资源-资源库-资源-资源

    我已经在 “属性”->“生成器”->“臂链接器”->“文件搜索路径”中找到了 cmd。

    [引用用户名="114053" url="~ë/support/wireless-connection/blic-group/Blue/f/蓝 牙-forum/1081795/lp-cc2652rb-ho--remote-update-the-ber-ble-project-bote-bart2-bim_onchip/4007270#4007270#ble_eble_eble_eble_eble_ebuglle_exeding].scfg[或]

    但我在  simile_peripheral_odg_onchip_CC2652Rb_LAUNCHXL_TIrts_CCS 中找不到 ble_xxx.xscfg

    我想问 一下属性->构建-> Arm Compiler ->预定义符号->预定义符号->预定义...属性->构建-> Arm Linker ->高级选项->命令文件预处理->预定义...

    谢谢瑞安!

    此致,

    您的

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

    正如我所说,我们显然是指不同的 SDK 版本。  ARM 编译器预定义符号影响项目文件的内部版本定义(c/h),Arm Linker 预处理程序宏名称影响配置文件的参数(cg/xscfg)。

    此致,
    瑞安

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

    你好,瑞安,

    我 正在使用 CCS_v10.1.1在 simplelink_cc13x2_26x2_SDK_4_30_00_54中工作

    [引用 userid="114053" url="~ë/support/wireless-connection/蓝 牙组/蓝 牙/f/蓝 牙-forum/1081795/lp-cc2652rb-h-how-remote-update-th-non-ble-project-by-bart2-bim_onchip/4007923#400x7923"prics/procfg 参数 影响预定义的配置文件[库/编译器名称]。

    正如您所说,我在   Arm Compiler Predefined Symbols 中添加了 OAD_IMG_A,并在  Arm Linker 预处理程序宏名称中添加了 OAD_IMG_A=0,然后又构建了该宏,错误仍然存在...

    谢谢你的回复,瑞安。

    此致,

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

    我尝试在全局项目中搜索 OAD_IMG_B,结果与我的项目有所不同:

    你可以看到我已经在.cproject 中定义了 OAD_IMG_B,但为什么在示例项目的.ccsproject 中有一个记录,但我的记录中没有?

    下面是两个.ccsproject 文件的比较:

    希望这些信息能帮助您。

    谢谢你,瑞安。

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

    瑞安  

    我确信 OAD_IMG_A/B 未成功定义,即使我将其添加到“臂算器”预定义符号“臂行器 ”预处理程序宏名称中。

    当我对检查 OAD_IMG_A 的块进行注释后,又重新构建时,它会报告一个新错误,该错误无法找到 OAD_IMG_B...

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

    您观察到的项目差异涉及{OAD_IMG_B:1}在项目属性->构建-> XDCtools ->高级选项->配置脚本参数中使用,这可能是此较旧 SDK 的要求。  如果这仍然不起作用,则可以删除 Program Build 配置参数逻辑,并在.cfg 文件中直接设置 m3HWI.resetVectorAddress,ROM.constSfutAddr 和 ROM.externFuncStructAddr。

    此致,
    瑞安

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

     你好,瑞安,

    这就是,在配置完以下内容后,项目可以成功构建,但有一些警告,如下所示:  

    在将 bim.hex 和 user_app_oad.bin 闪存到 lb_CC2652rb 后,jumpToPrgEntry (imgHdr.fixedHdr.prgEnde)函 数仍无法跳转到 user_app。

    当我在 .cmd 文件中更改 load_start(prgEntryAddr)的位置时,img 标题中的 prgEntry 将会更改。

       

    希望这些信息能为您提供帮助!

    谢谢瑞安。

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

    您应该对照片上简单外设 BLE 示例检查此行为。  请记住,OAD_IMG_B 旨在在重置时运行,并从 BIM 跳至操作。  当 OAD 操作预期开始时,LOAD_IMG_A 将启动。  因此,内部闪存在任何给定时间都应包含 BIM,用户应用程序和持久应用程序(三幅图像)。  有关 详细信息,请参阅 BLE Enhanced OAD SimpleLink Academy Lab 和 BLE5-Stack 用户指南。

    此致,
    瑞安