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.
工具与软件:
尊敬的 TI 技术团队:
我目前正在从事一个项目、该项目涉及通过 GSM 调制解调器执行 OTA (无线)更新。 我的 GSM 调制解调器是 SIM7600、它支持诸如 MQTT、HTTPS 和 TCP 等多种通讯协议。
我已使用 SIM7600调制解调器的 HTTPS 功能成功下载 OTA 更新文件(.tar)。 我的问题是:如何在 MCU 上使用此文件执行 OTA 更新? 具体而言、我想了解为确保无缝可靠的 OTA 更新过程、应使用的最佳实践和任何建议的过程或命令
您好@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
此致!
Rogelio
尊敬的 RogelioD:
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
尊敬的 RogelioD:
是的,我包含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 中的常规报告函数进行调试
您好!
今天是否有更新?
您好!
今天是否有更新?
您好!
今天是否有更新?