主题中讨论的其他器件:CC3220SF
您好!
使用 CC3220MODASF 时、我在编译 cloud_ota 应用程序时遇到错误、因为该应用程序在 ti/net/otA/CCS/Release/ota.a 路径中找不到"ota.a"库。 SDK 检查发现缺少 OTA.A 文件。 您能否共享编译后的 ota.a?
谢谢
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.
您好!
使用 CC3220MODASF 时、我在编译 cloud_ota 应用程序时遇到错误、因为该应用程序在 ti/net/otA/CCS/Release/ota.a 路径中找不到"ota.a"库。 SDK 检查发现缺少 OTA.A 文件。 您能否共享编译后的 ota.a?
谢谢
您好!
我认为"#define OTA_SERVER_TYPE OTA_FILE_DOWNLOAD"已用于指定云服务。 提供三个选项:GitHub、Dropbox 和 OTA 文件下载。 我已在 otauser.h 上启用此设置、但问题仍然存在。
****项目 cloud_ota_CC3220SF_LAUNCHXL_tirtos_ccs 的配置调试构建****
"C:\\ti\\ccs1240\\ccs\\utils\\bin\\gmake"-k -j 12所有-O
构建目标:"cloud_ota_CC3220SF_LAUNCHXL_tirtos_ccs.out"
调用:ARM 链接器
"c:/ti/ccs1240/ccs/tools/compiler/ti-cgt-arm_20.2.7.LTS/bin/armcl /ti/simplelink_cc32xx_sdk_4_10_00_07/source/ti/net/ota /ti/simplelink_cc32xx_sdk_4_10_00_07/source /ti/ccs1240/ccs/tools/compiler/ti-cgt-arm_20.2.7.LTS/lib /syscfg/ti_drivers_config.obj -mv7M4 --code_state=16 --float_support=vfplib -me -- define=CC32XX -g --out_warning=225 /ti/simplelink_cc32xx_sdk_4_10_00_07/source/ti/utils/json/lib --xml_warning=255 /ti/simplelink_cc32xx_sdk_4_10_00_07/source/ti/drivers/net/wifi --obj_wap=off /ti/simplelink_cc32xx_sdk_4_10_00_07/kernel/tirtos/packages --display_error_number --gen_func_subsections=on /syscfg/ti_net_config.obj /syscfg/ti_drivers_net_wifi_config.obj /Users/noush/test/tirtos_builds_CC3220SF_LAUNCHXL_release_ccs/Debug/configPkg/linker.cmd
错误#10008-D:找不到文件"CCS/Release/ota.a"
第一个引用的未定义
文件中的符号
---------------- ----------------
ota_get ./cloud_ota.obj
ota_init ./cloud_ota.obj
ota_run ./cloud_ota.obj
ota_set ./cloud_ota.obj
错误#10234-D:未解析的符号仍存在
错误#10010:链接期间遇到错误;未生成"cloud_ota_CC3220SF_LAUNCHXL_tirtos_ccs.out"
>>编译失败
Makefile:154:目标"cloud_ota_CC3220SF_LAUNCHXL_tirtos_ccs.out"的配方失败
gmake[1]:***[cloud_ota_CC3220SF_LAUNCHXL_tirtos_ccs.out]错误1
Makefile:147:目标"全部"的食谱失败
gmake:***[全部]错误2
****构建完成****
您首先需要编译 ota.a。 然后在编译应用程序时-确保链接器使用正确的路径(在您的示例中未找到 OTA.a)。
OTA_FILE_DOWNLOAD 意味着库会跳过与云服务器进行的 CDN 客户端协商、并直接使用给定的 URL 从 A 文件服务器下载 OTA 内容。 从 SDK6.10开始到引入 OTA_IF、CDN 协商由应用程序代码完成(请参阅我们的 OTA_Vender_GitHub.c 和 OTA_Vender_dropbox.c 参考)、该库仅负责加载和解析(主要在 oOtaArchive.c 中)更新内容。
您好!
创建 ota.a 库可解决问题。 现在我可以编译云 OTA 示例代码。 通过 OTA_FILE_DOWNLOAD、由于我们正在使用 Azure IoT Hub 进行云存储、我能否避免 CDN 客户端协商? 是否可以使用类似于 Dropbox 的 Azure IoT Blob 存储? 目前、我们已完成 ESP HTTPS OTA;其 URL 如下。
https://onesensedeviceupdate.blob.core.windows.net/deviceupdate-5/PCB_V0_5_v1_2_17_1.bin?sv=2020年04月08日(&S)=2024-01-16T06%3A04%3A15Z&SR=b&sp=r&Dp=m1hjqDp0pUB2zAwLV3z2fkfFdGQD8Dr4wwyiVDbRvgm%3d sig
请检查 OTA_IF 接口和 MQTTClient 示例的自述文件。
如果您已经有映像下载的文件服务器 URL、则可以使用: OTA_IF_downloadImageByFileURL (而不是 OTA_IF_downloadImageByCloudVendor )。
FileServerParams_t params; memcpy(params.URL, "">onesensedeviceupdate...") // update certificates info according to TLS requirements OTA_IF_downloadImageByFileURL(¶ms, 0);
如果您想用一个探测从 Azure 下载 URL 的代码替换 Dropbox/Github 代码-您可以实施自己的" OTA_供应商_azure "并提供名为 OTA_Azure_getDownloadLink () ,那么您将能够使用以下功能:
OTA_IF_downloadImageByCloudVendor(OTA_Azure_getDownloadLink, NULL, 0);
您好!
我们当前正在使用 simplelink_cc32xx_sdk_4_10_00_07。 我认为它没有 OTA_IF 选项。 在我的 SDK 中、otauser.h 有三个 OTA 选项:
# define OTA_SERVER_TYPE OTA_SERVER_GITHUB
# define OTA_SERVER_TYPE OTA_SERVER_DROBS_V2
#define OTA_SERVER_TYPE OTA_FILE_DOWNLOAD
我是否可以使用#define OTA_SERVER_TYPE OTA_FILE_DOWNLOAD 从 Azure IoT Blob 存储下载 OTA 文件?
需要对 otauser.h 文件进行哪些更改?
我需要 Azure 根证书吗? Cert_High_Assurance_CA.der?
是的、您应该使用 OTA_FILE_DOWNLOAD。
在 otauser.h (位于 #Elif OTA_SERVER_TYPE = OTA_FILE_DOWNLOAD) -定义服务器根 CA 认证。
在应用程序中、使用 OTA_SET (EXTLIB_OTA_SET_OPT_FILE_SERVER_URL、strlen (URL)、URL、NULL) -在 开始 OTA 处理之前设置所需的 URL (而不是 EXTLIB_OTA_SET_OPT_SERVER_INFO )。