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.

[参考译文] CC1310:Turbo OAD CRC 失败

Guru**** 2928980 points

Other Parts Discussed in Thread: CC1310, UNIFLASH

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1636875/cc1310-turbo-oad-crc-failed

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

嗨、大家好:

使用两个 CC1310 MCU 测试 OAD 的示例
SDK 版本:Simplelink_cc13x0usdk_4_20-02_07、ti154STACK_LUX_x64_8_30_00_05

我尝试在 Linux 上发送 OAD 请求、但传感器会显示 CRC 失败

我创建增量软件包的步骤如下:

  1.  python hexmerge.py -o devices_1310.hex “--overlap=error“./Release/devices_1310_v0.9.0.hex bim_1310.hex
    通过 UniFlash 将 device_1310.hex 下载到 MCU
  2. Python oad_image_tool.py -v 0x0090 -t offchip -i app ./Release/devices_1310_v0.9.0.hex -ob a.bin -m 0x14F0
  3. Python oad_image_tool.py -v 0x0091 -t offchip -i app ./Release/devices_1310_v0.9.1.hex -ob b.bin -m 0x14F0

  4. python toad_image_tool.py -oimg a.bin -nimg b.bin -o ab.dim  
    将 ab.dim 传输到 Linux 并使用“u“命令将其发送到传感器image.png
    上图显示了传感器负载的最后一条指令之后的输出

    我还尝试了在上面的步骤 2-3 中移除片外器件、但结果是 CRC 失败
     可以帮帮我吗? 谢谢你  

 

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

    您好、Faker、

    常规 OAD 可以正常运行吗? 是否只是 Turbo OAD 无法实现? 映像 a.bin 和 b.bin 之间是否有区别、或者只是版本号?

    我建议您使用与嵌入式器件 SDK (https://www.ti.com/tool/download/TI-15-4-CRC/4.40.00.03) 匹配的 TI 15.4 STACK-GATEWAY-LINUX-SDK 版本、但 CRC 的计算方式可能有所更改。

    此致、

    Daniel

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

    您好 Daniel:


    1.可以使用普通 OAD
    在 a.bin 和 b.bin 代码中、以及在从十六进制生成二进制文件时(如上面的命令所示)、修改了版本号
    3.我会尝试你提到的 SDK 版本

    此致、

    Faker

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

    您好 Daniel:

    我尝试了 ti154STACK_ LINUX_ x64_ 4_40_00 SDK
    结果相同、 Turbo OAD 仍会失败、增量 OAD 仍会导致 CRC 失败

    此致、

    Faker

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

    您好、Faker、

    您能否分享您正在使用的模块版本? 尝试使用自述文件中显示的内容

    • Python 2.7
    • Python intelhex-2.1
    • Python crcmod-1.7

    python -V
    
    pip show crcmod
    
    pip show intelhex

    此致、

    Daniel

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

    您好 Daniel:


    PYTHON -V
    Python 2.7.18
    名称:crcmod
    版本:1.7
    名称:intelhex
    版本:2.2.1

    此致、

    Faker

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

    您好 Daniel:

    是否已经过测试

    此致、

    Faker

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

    您好、Faker、

    很抱歉、我的 Linux 设置有问题。 我现在就开始测试、明天我会给您并进行更新。

    此致、

    Daniel

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

    您好 Daniel:

    好的、谢谢。 我将等待您的答复

    此致、

    Faker

     

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

    您好、Faker、

    我还没有答案、但我的环境可以正常工作、我相信您已经完成了这些步骤、但对于以下内容:

    • 默认情况下、TIRTOS_IN_ROM 在 CC13x0 工程中定义、但不是针对 TI 15.4 Linux SDK 定义的、因此您需要 
      CFLAGS += -DTIRTOS_IN_ROM
       在 ti15STACK_LINUX_/example/collector/Makefile 中进行定义、并通过运行 build_all.sh 重新构建 HOST_COLLEGER
    • 如果 build_all.sh 返回错误、请检查  CC1312R:ti154stack_linux_x64_4_40_00_03 示例不会构建框 

    现在、回到 Toad、我可以在 collector_log.txt 中看到增量图像“ab.dim“被检测为常规图像而不是 Toad 图像、我相信这可能是导致 CRC 错误的原因。 我稍后再回来。

    此致、

    Daniel

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

    您好、Faker、

    我还没有找到问题、但我可以肯定地看到相同的问题。 读取标头时不确定它是在生成的增量图像上还是嵌入式侧。

    此致、

    Daniel

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

    您好 Daniel:

    感谢您继续调查此问题、我仍在尝试解决此问题

    CC1312 和 CC1310 的 OAD 是否不兼容? 我在我移植的 Linux 中尝试使用 CC1312 的 LOAD 命令、但第一个帧命令报告了错误、这意味着无法读取数据包长度

    此致、

    Faker

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

    您好 Daniel:

    我想问是否还有结果

    此致、

    Faker

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

    您好、Faker、

    我已经研究过它,但没有成功,不幸的是,我也没有太多的时间。

    此致、

    Daniel

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

    您好 Daniel:

    我检查了 Linux 端的代码,它会检查第 16 个字节是否是“TURBOAD“来确定它是否是 toad ,
    我已经检查了我的'ab. DIM“文件、并发现“TURBOAD“位于 0x500
    因此、它基本上表明使用“toad_image_tool 编译增量软件包时出现问题。 使用此文件。 我希望您能继续学习

    此致、

    Faker

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

    您好、Faker、  

    是的、您是对的、但我还没有出现 CRC 错误就无法让它正常工作。 很抱歉耽误你的时间。

    此致、

    Daniel

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

    您好 Daniel:

    我们希望尽快解决这一问题、因为这一特点似乎非常重要

    此致、

    Daniel

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

    您好 Daniel:

    抱歉、是否有任何进展

    此致、

    Daniel

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

    您好、Faker、

    我很抱歉耽误了时间,找到这个问题花了相当多的时间,我感谢你的耐心。

    请替换以下 3 个文件:

    1.在 Linux 端、替换 example/collector/collector.c

    这里有两个问题:首先、 fseek 中存在错误的偏移 (oadFile、IMG_HDR_ADDR、seee_set);它被硬编码为 0x00、这对 TIRTOS_IN_ROM 不起作用。 其次、 由于终止符为空、sizeof(“TURBOOAD“)返回 9。 这导致映像被识别为常规 OAD、而不是 Turbo OAD。

    替换文件后、重新编译 Linux 主机:

    ./build_all.sh clean
    ./build_all.sh

    e2e.ti.com/.../4265.collector.c

    2.修复第一部分后,由于边界检查失败,图像仍然被拒绝,所以我用“小于等于“替换了“小于等于“。

    完成更改后、重新编译工程。 由于 CCS 工程从源代码复制(而不是链接)、因此必须在工程和 SDK 中的本地替换它以供将来使用。

    simplelink_cc13x0_sdk_4_20_02_07/source/ti/ti154stack/apps/sensor_oad_offchip/CC13X0_LAUNCHXL/oad_client.c

    CCS project/Application/oad_client.c

    现在、重新编译工程并生成新的.hex

    e2e.ti.com/.../oad_5F00_client.c

    3.最后,图像仍会计算出错误的 CRC ,因为该工具覆盖了网络信息存储的 NV 区域。 更新 implelink_cc13x0_SDK_4_20_02_07/tools/ti154stack/turbo_oad/toad_image_tool.py

    生成新的 a.bin、b.bin、ab.dim

    e2e.ti.com/.../toad_5F00_image_5F00_tool.py

    此致、

    Daniel

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

    您好 Daniel:

    谢谢、我会尽快验证以下内容。

    再次感谢您

    此致、

    Daniel

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

    您好 Daniel:

    我测试了您提供的方法
    请问您忘记上传 product_util_13x0.py 文件了吗? 根据我的观察、似乎此文件中添加了两个常量:
    1.FLASH_nV_BASE
    flash_app_base

    此致、

    Daniel

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

    您好、Faker、

    是的、您的回答正确! 我忘记在上一个答案中包括这些内容:

    FLASH_APP_BASE = 0x1000
    FLASH_NV_BASE = 0x1E000

    e2e.ti.com/.../product_5F00_util_5F00_13x0.py

    此致、

    Daniel

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

    您好 Daniel:

    我下载了您提供的文件并替换了当前工程中的文件、但存在一些问题:
    1. OAD  成功
    2. Toad 在传感器端显示“故障“


    请问是否有任何其他修改尚未上传? 以下是我的命令:

     Python oad_image_tool.py -v 0x0100 -t onchip -i app ./Release/devices_1310_v1.0.0.hex -ob a.bin -m 0x14F0 -r :0x1e000

     Python oad_image_tool.py -v 0x0200 -t onchip -i app ./Release/devices_1310_v2.0.0.hex -ob b.bin -m 0x14F0 -r :0x1e000

    python toad_image_tool.py -oimg a.bin -nimg b.bin -o ab.dim

    此致、

    Daniel

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

    您好、Faker、

    我这样做类似于你在你的第一篇文章中描述它。 因此,片外和没有范围-r

    [引述 userid=“583822“ url=“~/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1636875/cc1310-turbo-oad-crc-failed
    • Python oad_image_tool.py -v 0x0090 -t offchip -i app ./Release/devices_1310_v0.9.0.hex -ob a.bin -m 0x14F0
    • Python oad_image_tool.py -v 0x0091 -t offchip -i app ./Release/devices_1310_v0.9.1.hex -ob b.bin -m 0x14F0
    [/报价]

    您能再试一次吗?

    此外、请确保您已使用 FLASH-ROVER GitHub - TexasInstruments/FLASH-ROVER:直接从主机·GitHub 读取和写入 TI CC13xx/CC26xx 器件上的外部闪存

    和 UniFlash 以擦除内部存储器并使用 BIM 和新的.bin 再次刷写它

    ./flash-rover -d cc1310 -x L200XXXX erase --mass-erase

    此致、

    Daniel

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

    尊敬的 Daniel:

    我尝试了使用和不使用参数'- r',结果是相同的

    此致、

    Daniel

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

    您好、Faker、

    片外呢? 由于使用的是片外 BIM、因此请确保如上所述批量擦除外部闪存、并使用新的片外映像。 BIM 可能从之前的现有映像之一引导。

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

    尊敬的 Daniel:

    我尝试使用“erase_extflash_cc13x0lp“擦除片外闪存并重新擦除 MCU 片上闪存。 十六进制、然后再次下载固件、但结果仍然是“失败“

    此致、

    Daniel

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

    您好、Faker、

    我在代码中没有看到“失败“、您是否添加了这个内容? 您能告诉我何时触发?

    此致、

    Daniel

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

    尊敬的 Daniel:


    它是 oad_evice 中的 display OadStatusUpdate () 函数。 C 文件

    我删除了它前面的三个字符“OAD“用于统一提示、如图 2 所示

    此致、

    Daniel

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

    您好、Faker、

    您可以尝试使用默认的 SENSOR_OAD 而不进行修改吗? 或者、您是否愿意分享 a.bin、b.bin 和 ab.dim?

    在 oad_client.c 上、您可以在第 720 行添加。 重新编译并再次刷写。

    if (imgIdentifyPld->oldImgCrc != imgDataCrc)                                                                                                                                    
    {                                                                                                                                                                         
        LCD_WRITE_STRING_VALUE("TOAD:cmpCRC ", imgIdentifyPld->oldImgCrc, 16, 3);                                                                                                 
        LCD_WRITE_STRING_VALUE("TOAD:sensrCRC ", imgDataCrc, 16, 3);                                                                                                                           
    } 

    此致、

    Daniel

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

    尊敬的 Daniel:

    论坛回复似乎无法直接上载 bin 文件。 请您通过我的朋友请求、以便我可以直接向您发送我的文件

    此致、

    Daniel

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

    尊敬的 Daniel:

    我添加了一个用于打印 CRC 的语句、但此时无法执行代码、
    因为我的日志显示、第一个数据帧发送后、验证失败、如图中所示、值为 72

    此致、

    Daniel

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

    尊敬的 Daniel:

    我也发现了一个问题、
    如果只更改了我的 a.bin 和 b.bin 的版本号、则可以创建旅行分包合同(约 1KB)
    但在 Linux 方面、将出现一条错误消息、指出找不到文件

    此致、

    Daniel

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

    您好、Faker、

    请   像在第一个 POST 中一样使用-t offchip 和-v 0x0090、-v 0x0091 重新生成 bin。

    关于第二个问题,我不知道它是否是一个错误,因为图像之间没有区别,不管怎样,重定向线程的焦点,让我们保持它到原来的问题。

    此致、

    Daniel

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

    尊敬的 Daniel:

    我已经测试过、而且确实已经解决了。 谢谢你

    此致、

    Daniel