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.

[参考译文] LAUNCHCC3220MODASF:使用 SIM7600通过 GSM 调制解调器执行 OTA 更新的指导

Guru**** 1805680 points
Other Parts Discussed in Thread: CC3220SF, SYSCONFIG
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1393002/launchcc3220modasf-guidance-on-performing-ota-updates-over-gsm-modem-with-sim7600

器件型号:LAUNCHCC3220MODASF
Thread 中讨论的其他器件:CC3220SFSysConfig

工具与软件:

尊敬的 TI 技术团队:

我目前正在从事一个项目、该项目涉及通过 GSM 调制解调器执行 OTA (无线)更新。 我的 GSM 调制解调器是 SIM7600、它支持诸如 MQTT、HTTPS 和 TCP 等多种通讯协议。

我已使用 SIM7600调制解调器的 HTTPS 功能成功下载 OTA 更新文件(.tar)。 我的问题是:如何在 MCU 上使用此文件执行 OTA 更新? 具体而言、我想了解为确保无缝可靠的 OTA 更新过程、应使用的最佳实践和任何建议的过程或命令

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

    您好!

    参阅此内容。

    1月

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

    您好@Jan D


    感谢您的支持。
    我们的调制解调器(SIM7600)提供下文所述的512字节的 OTA 文件块。 我是否可以在没有完整数据的情况下执行 OTA? 如果不能、我能否将整个 OTA 文件存储在 MCU 的文件系统中? 哪个选项更适合我的应用?

    AT 命令:AT+CFTRANTX="F:/ota_Update.tar"、0512

    响应:20240315114848_CC3220SF_OTA/0000644000000000000000000000000000000000000011144 5ustar00

    偏移量:0、剩余长度:174080、块大小:512

    AT 命令:AT+CFTRANTX="F:/ota_Update.tar"、512,512

    响应:20240315114848_CC3220SF_OTA/0/0000644000000000000000000000000000000000000011303 5ustar00

    偏移量:512、剩余长度:173568、块大小:512

    AT 命令:AT+CFTRANTX="F:/ota_Update.tar"、1,024,512

    响应:20240315114848_CC3220SF_OTA/1/0000644000000000000000000000000000000000000011304 5ustar00

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

    您好!

    是的、您可以按数据块处理 OTA。 但使用稍大的数据块会更好。 恐怕要使用5KB 块。 您可以将多个512B 块下载到5KB 的缓冲区中、并将这个缓冲区发送到 OTA 代码中。

    sFlash 中可能没有足够的空间用于通过 OTA 更新下载整个 TAR 文件。 从这个原因出发,更好地处理数据块。

    1月

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

    您好!

    我正在按照您的说明将本地 OTA 包含到我的工程中

    1. 头文件
    -`ota_archive.c`
    -`ota_archive.h`
    -`ota_json.c`
    -`ota_json.h`

    2. 3)链接库
    -`ti/utils/json/lib/ccs/m4/json_release.a`

    我会遇到以下链接错误。



    首次引用了未定义的
    符号
    --- -------
    CryptoCC32XX_CONFIG C:/ti/simplelink_cc32xx_sdk_4_10_00_07/source/ti/drivers/lib/drivers_cc32xx.aem4
    CryptoCC32XX_COUNT C:/ti/simplelink_cc32xx_sdk_4_10_00_07/source/ti/drivers/lib/drivers_cc32xx.aem4

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

    您好!

    文件 ota_archive.c 使用 CryptoCC32XX 库。 库中缺少此库。 请参阅 SDK 中的 OTA 示例、以确定需要链接哪些库。

    1月

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

    您好!

    我已经为云 OTA 和本地 OTA 工程复制了库路径和链接、但仍然遇到链接错误。 我的链接配置已在下面附上。






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

    您好!

    很遗憾、我不知道您的项目的来源是什么。 我没有足够的时间来深入探究你的收入有什么问题。 但很明显、您的编译在\source\ti\drivers\cryptoCC32XX.h/c 中失败

    1月

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

    您好!

    我想补充一点、我正在尝试使用 azure_cc32xx_4_10_01_01 SDK 中的 IoTHub 示例代码构建自定义本地 OTA。 与此问题有任何关系吗?

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

    您好!

    我不熟悉此 Azure 插件示例。 但除了缺少包含路径外、我不期望任何其他东西。

    1月

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

    尊敬的 Jan D:

    https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1394523/launchcc3220modasf-linking-errors-with-cryptocc32xx-driver-in-cc3220modasf-project

     可通过 在 syscfg 上启用加密来修复该问题

    现在我在 调用 Archive_Init (&gOtaArchive);此函数时遇到代码卡滞错误



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

    您好!

    这看起来像是某种 RTOS/SysConfig 初始化错误或类似错误。 我以前从未见过这样的错误。

    我认为主要问题是您的项目和它们的来源。 似乎在该工程中未配置许多内容。 但是,如果您的 Error_init()问题有一个简单的解决方法,请等待其他人的回答。

    1月

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

    您好!


    这是 my SysConfig





    是否还有其他专家可以为我的问题提供解决方案?



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

    您好!

    Im 猜测发生此错误是因为您在 syscfg 中未设置 OTA、因此未正确初始化此错误。

    我相信这个 E2E 会帮助您通过 Azure 使用 OTA

    https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/984261/cc3220sf-azure-ota-process

    此致!

    Rogelio

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

    尊敬的
    https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/984261/cc3220sf-azure-ota-process

    我还尝试将 C32XX SDK 中的 OTA 示例与 Azure SDK 中的 IoT 集线器 MQTT 示例代码合并。 能否解释如何在 syscfg 中设置 OTA? 我比较了这两个文件的 syscfg、但找不到任何 OTA 配置。

    调试分析表明、在 OtaArchive_init ()中调用_SlOtaLibTrace 函数时、代码停止。 然后、它尝试访问内存以进行打印、但失败、导致代码卡住。 这是什么 sysconfg 问题吗? 如何解决?




    我在 uart_term.c 中修改了打印函数(int Report (const char * pcFormat、...)、从而使 OtaArchive_init 函数成功运行。 我在下面附上了修改后的 Report()函数。 我是否可以将其用作我的问题的解决方案?


    int Report (const char *pcFormat、...)

    va_list 列表;
    内部 IRET;

    //开始变量参数处理
    va_start (list、pcFormat);

    //使用 vprintf 将格式化字符串打印到 stdout
    IRET = vprintf (pcFormat、list);

    //结束变量参数处理
    va_end (list);

    返回 IRET;
    }



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

    您好!
    今天有更新吗?

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

    您好!

    您是否必须添加 uart_term.c? 因为我没有看到它包括在 azure 项目。  

    关于变化、OTA 现在是否成功? Im 不知道为何常规报告()函数会导致错误。 您能否在函数中设置断点以尝试查明故障。  

    此致!

    Rogelio

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

    尊敬的

    是的,我包含UART_term.c.h因为他们是需要的ota_archive.h,和我这样称呼它:#define _SlOtaLibTrace(pargs) Report pargs. 在中进行这些更改后UART_term.c、我从获得了成功的响应OtaArchive_Init(&gOtaArchive)

    然而、当我OtaArchive_Process()使用我的5120字节数据块调用函数时、我收到一个成功的返回、但是处理的数据是零字节、然后代码再次卡住调用任何 printf 函数


    使用 uart_term.c 中的常规报告函数进行调试




















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

    您好!
    今天是否有更新?

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

    您好!
    今天是否有更新?

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

    您好!
    今天是否有更新?