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:OAD 传感器/收集器

Guru**** 2398695 points
Other Parts Discussed in Thread: UNIFLASH, CC1312R7

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1543122/cc1312r-oad-sensor-collector

器件型号:CC1312R
Thread 中讨论的其他器件:UNIFLASH

工具/软件:

在尝试遵循 readme.html 文件中 Sensor_oad_onchip_secure 和 2 个 1312R7 LaunchPad 板的说明、1 个传感器、1 个收集器、我根本无法使 OAD 实际运行

CCS20.2.

新项目:sensor_oad_onchip_secure

新项目:sensor_oad_onchip_persistent_secure

将两者的 sys 配置更改为 868 频带

构建这两个

UniFlash

添加 sensor_oad_onchip_secure.bin @  

添加 bim 预编译的 hex 文件  

添加 sensor_oad_onchip_persistent_secure 十六进制文件

闪存到传感器板中

将协处理器闪存到其他电路板中

重置两块电路板,他们会高兴地启动,可以加入传感器到收集器,运行'v'固件版本,它会在选择后响应,温度是每 5 秒钟在设置 colllector.cfg 文件的预建/ bin 文件夹中,其中 host_colcollector 二进制文件是[运行在 Ubuntu 24 笔记本电脑]. 传感器报告 TI 传感器(用户应用程序)

更改了 oad_image_header_app.c 并重新构建映像。 将映像复制到运行 Ubuntu 收集器的预编译/bin 文件夹。  

使用 F 选择新的二进制文件。 必须正确、因为拒绝输入错误的文件名

然后使用 W 在传感器和传感器芯片上启动升级,它从不响应重置请求和收集器显示“信息:发送目标重置请求失败“  

根据写入的内容验证闪存、我可以看到 OAD 标头的部分现在已更改为标记无效、这有点有意义、因为我可以看到传感器应用@ 0 确实命中 processOadResetReq、因此它确实无论如何都处理了入站请求消息

我已经使用自己的 1312R1 电路板以及为较小代码空间工程构建的工程版本进行了尝试、可以看到合并了 3 个映像后、似乎有意义、其中内容=在正确分离的情况下、我可以看到 OAD 标头 @在映像之前的地址 0、CCFG 位于 BIM 复位矢量的顶部、但效果都相同

持久性应用程序是否存在导致其死亡的问题、或者 BIM 是否只是针对持久性应用程序跳转到错误的地址? 恢复电路板的唯一方法是基本上重新刷写、或者在至少恢复 OAD 标头块、以将 imgVld 元素放回 0xFFFFFFFF、通常使其再次在 0 处引导映像

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

    尊敬的 Andy:

    我能够 将整个 OAD 运行到 CC1312R7 中。 我想您几乎就在那里、加载持久应用程序时必须使用“bin"文件“文件而不是“hex"。“。
    持久应用的加载地址为 0x00086000。

    查看 SENSOR_oad_onchip_persistent_secure 工程的 README.md 中的“生成所需的二进制映像“下方。

    请参阅下面的设置屏幕截图。

    请重试、并告诉我。

    此致、
    Daniel

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

    好的、所以今天早上有更多的比赛

    擦除芯片

    在 bim 十六进制文件中编程

    在持久十六进制文件中编程

    传感器引导至持久映像

    OAD 工作原理

    然后、传感器代码在复位后从 0 开始运行

    OAD 则不适用于传感器图像

    但是我注意到该项目没有报告 TI Sensor (User App ),并注意到没有在编译器符号中设置 OAD_ONCHIP

    在重新编译传感器后重复上述步骤、并仅从引导加载程序找到的 persistent.hex 开始、尽管公平地说、只要它搜索它就可以在闪存中的任何位置进行、但具有“user app“签名的新传感器代码会在 3 分钟奇数更新后启动、但当我尝试使用更新版本的传感器二进制文件再次执行重置命令时、该代码始终不会响应重置命令。 它至少不会崩溃、因为 CUI 在传感器板上响应、例如、我可以发送 LED ident 命令、因此有一些进展、但仍然不正确。  

    这就是编译器定义中设置的所有内容、我现在添加了 OAD_ONCHIP。 不确定是否缺少任何其他信息

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

    我不知道为什么需要使用二进制文件、然后设置地址、因为加载到闪存编程器中的十六进制文件以 0x86000 作为其来源、并且两者都在相同的位置完成、所以数据是相同的

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

    您好、Andy!、

    你有尝试过我在上面的帖子中描述的吗? 我能够 做到连续两次的 OAD、没有任何问题。 V.1 -> V.2 -> V.3
    如 README.ME 文件中所述、使用.bin  的原因是:“生成的.out 和.hex 将没有正确的 CRC、因此 BIM 不会启动到映像中“

    “如果您已在 BIM 中启用永久映像身份验证功能(有关更多信息,请参阅 bim_onchip 自述文件)、则必须刷写 sensor_oad_onchip_persistent_secure_cc1352lp_tirtos_ccs.bin 文件、而不是.hex 文件。 之所以需要.bin 文件、是因为它具有用于 BIM 身份验证的已填充安全段签名。 刷写持久映像.bin 文件时、必须将二进制加载地址指定为持久应用程序项目的链接器文件 (IMG_A_FLASH_START) 中指定的起始地址。 默认的持久应用程序起始地址将取决于器件的可用闪存。“

    请告诉我该怎么做。

    此致、
    Daniel

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

    好的、所以再次开始了一个库存 sensor_oad_onchip_secure 项目、然后创建@ 0 传感器映像、这些映像实际上是用户映像、实际上比其他项目生成的要小得多、因为现在只有 868 个块、不是 901、或者类似的、另一个映像在理论上是完全相同的起点、但显然是不同的

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

    尊敬的 Andy:

    感谢您所做的其他调试工作。 请让我们逐一了解这些要点、帮助我更好地了解您的情况:

    1.您正在使用哪些 Launchpad 和 SDK 项目:

    •  您正在将哪个 LaunchPad 和 SDK 工程用于收集器?
    •   您正在将哪个 LaunchPad 和 SDK 工程用于传感器?

    CC1312R1 和 1312R7 之间可能存在大小差异

    2.您是否遵循了我的第一篇文章中描述的指示?

    [引述 userid=“661065" url="“ url="~“~/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1543122/cc1312r-oad-sensor-collector/5936683

    尊敬的 Andy:

    我能够 将整个 OAD 运行到 CC1312R7 中。 我想您几乎就在那里、加载持久应用程序时必须使用“bin"文件“文件而不是“hex"。“。
    持久应用的加载地址为 0x00086000。

    查看 SENSOR_oad_onchip_persistent_secure 工程的 README.md 中的“生成所需的二进制映像“下方。

    请参阅下面的设置屏幕截图。

    请重试、并告诉我。

    [/报价]

    3.如果你有,你能运行一个 OAD 吗?

    此致、
    Daniel

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

    所以,是的,当我扔掉了我昨天创建的所有旧示例项目,并再次启动,它确实工作,它将下载图像使用 1312R7 板

    我现在正在尝试使用我们实际硬件上的 1312R1F3 设备执行相同的操作、似乎又回到了相同的操作。

    我无法使用 uniflash、因为我没有任何 TI 调试器、所以我使用 JLink JFlash 工具来合并映像然后进行闪存

    创建的
    BIM 项目
    传感器 OAD  
    传感器 OAD 持久

    然后
    加载 sensor.bin 图像 (@ 0)
    合并顶部的 BIM hex 文件(位于 0x56000 ->)
    加载传感器持久性@ 2e000(从链接器文件中的#define IMG_A_FLASH_START 0x0002E000)

    闪存后,“用户应用程序“在我的板上运行,收集器拿起板,它高兴地收到消息从它已经启用了自动启动,因为我没有按钮按下. 我还启用了显示统计信息、可以看到它一直在滴答

    但现在当我做 W 推新的映像时,它不会跳到持久的映像中

    如果我回到合并的映像并将前 0x200 字节设置为 0xFF 以使@0 应用无效、重新启动电路板然后跳转到持久映像、然后检查版本报告其版本正常、然后执行 W 以愉快地运行更新、再次传输 874 个块中的 n 个、尽管存在“安全错误: 0xdb“已经出现了一部分,已经到最后,并报告“成功完成“,它没有重新启动到用户应用程序,除非我重新启动板

    为了完整起见、我已将 3 个工作文件夹压缩到这里

    我仍然反对将 SDK 代码未复制到示例工程中这一事实、因为 oad 头文件之类的内容最终会出现在所有工程中、因为它只是链接到 SDK 源代码  

    e2e.ti.com/.../7701.test.zip

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

    我非常了解 CC1312R7 是一款更大的器件、因此我为该器件重新创建了工程、使内容适合正确的位置、并且 BIM 适当地位于顶部、并将 CCFG 数据放在正确的位置

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

    早上好、Andy、

    我按原样下载并编译了您的工程、 在运行 OAD 时完全没有问题。 我最初是通过 UniFlash 刷写传感器、因此我相信在生成合并的映像时可能会出现问题。 您是否仍面临同样的问题?

    此致、
    Daniel

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

    我当然不能通过同样的状态。 今天上午又花了一个小时或两个小时。 我可以看到、“问题“在于它确实会重置为 BIM、但持久性映像再次出现任何问题

    芯片擦除、编程 bim、编程 persistent only = persistent runs
    芯片擦除、编程 bim、编程 persistent 和 app = app 运行

    这有点有意义,因为显然首先检查应用程序,有 CRC 设置,然后继续

    读回芯片时、我看不到 BIM 会将持久标头标记为具有有效的 CRC、但用户应用程序尚未执行。  

    虽然如果我在前 256 字节设置为 0xFF 的情况下将相同的合并映像插入、但它会很高兴地启动持久映像、因此我不明白发生了什么

    合并的映像是整个芯片闪存大小的空白 0xFF 映像、合并 bim 十六进制、合并应用程序二进制@ 0、合并持久性@ 0x2e000  

    我可以在回读时看到、非易失性存储器用于存储收集器地址或任何其他 NV 数据存储的位置@ 2A000  

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

    再次大家好、Andy、

    我认为该问题与将 BIM 十六进制文件与二进制文件合并有关。

    我手动将所有二进制文件合并到一个文件中并使其正常工作、检查附件和以下步骤:

    1.闪存擦除芯片。

    2.只刷新 EPourBim.hex。

    3.  将内容从 0x56000 读回 0x57FFF(BIM 所在的位置)并保存为 bim.bin

    4、手动合并 EPourApp.bin @0x0、 EPourPersistent.bin @0x0002E000、 bim.bin @0x56000 并保存为 merged.bin

    5.闪存擦除芯片。

    6.闪存 merged.bin @0x0

    7.启动时没有问题。

    8.使用 EPourAppV5.bin(标头中的版本 5)运行 OAD。

    所有这些文件都是从您共享的文件生成的、因此您应该能够运行它。

    e2e.ti.com/.../merged.zip

    请告诉我这是否适合您。

    好极了
    Daniel

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

    不是

    还是一样的

    然后是信

    1->7 都没问题

    8 仍然无法正常重新启动

    如果在收集器仍在发送复位请求时重新启动电路板、它将启动持久映像、OAD 开始运行 、但我仍然看到传感器端显示“Status:Security Error:0xdB“消息

    然后、OAD 将其显示为“completed successfully“

    但除非我从外部将其复位、否则不会重新启动到用户应用

    然后、它会报告合并容器中的 v5 而不是 v1  

    这让我处于与我所做的一切相同的状态,这可能表明,我能够创建图像一样多的你的过程,但有其他的事情正在进行

    这显然没有在开发板上运行、而是我们自己的定制板

    是否可能有任何与设计相关的硬件可能表现出这种情况、因为我更想知道这不是软件/固件?

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

    似乎与仍连接调试器有关

    我一直有 jlink 盒仍然通过一些 2.5 英寸长的导线连接到板

    现在、当我从 jlink 适配器板上拔下电线时、它会在用户和持久应用之间正确复位、因此 OAD 会运行至完成并重新启动。 我显然无法从传感器看到任何控制台消息、因为它们处于同一连接中、但至少是在进行中

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

    尊敬的 Andy:

    感谢您发送编修。 我认为、您报告的问题类似于 OAD 期间引导中停止。  您是否可以在刷写器件后、执行 OAD 之前尝试拔下并重新插拔器件。 确保 器件不连接到调试器。

    此致、
    Daniel