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.
您好!
我尝试使用 azure_cc32xx_4_10_01_01 SDK 中的 iothub_client_sample_MQTT 示例通过 CC3220SF-LaunchXL 连接到 Azure IoT Hub。
>> CCS 版本:12.0
>> simplelink_cc32xx_sdk_4_10_00_07
在执行示例期间不会触发"ReceiveMessageCallback"的回调函数。 此外、消息不会发送到 Azure Cloud。 控制台显示以下消息
启动 iohub_client_sample_mqTT 示例
当前时间:周五9月19日05:57:20 2023
CC32XX 已连接到 AP 并获取了 IP 地址。
IP 地址:172.20.10.2
IoTHubClient_LL_SetMessageCallback...成功。
IoTHubClient_LL_SendEventAsync 已接受消息[0],用于传输到物联网集线器。
IoTHubClient_LL_SendEventASYNC 接受的消息[1]、用于传输到物联网集线器。
IoTHubClient_LL_SendEventASYNC 接受的消息[2]、用于传输到物联网集线器。
IoTHubClient_LL_SendEventASYNC 接受的消息[3]、用于传输到物联网集线器。
IoTHubClient_LL_SendEventAsync 已接受消息[4],用于传输到物联网集线器。
我尝试更新服务包 sp_3.15.0.1_2.0.0.0_2.2.0.7.bin。 但这并没有解决问题、
请帮助我解决此问题。
您好!
您是否刚开始使用 Azure? 您是否已查看插件的用户指南?
什洛米
您好!
是的、我将关注此文档并更新示例、以使用您的 Azure 连接字符串和 Wi-Fi 接入点信息。 但我无法与 azure IoT 集线器建立连接
请帮助我解决此问题。
您好!
请检查以下看起来类似的主题:
(如果问题无法解决、请至少按照步骤添加日志)
您好!
您能否帮助启用调试日志
如何进行第一步
1.链接到 Azure 库的调试版本,例如
PAL_SL_DEBUG.A、COMMON_SL_DEBUG.A、...
我们正尝试注释掉 ENABLE_LOCKING
出现以下错误
****项目 iothub_client_sample_mqtt_CC3220SF_LAUNCHXL_tirtos_ccs ****的配置调试构建
"C:\\ti\\ccs1240\\ccs\\utils\\bin\\gmake"-k -j 12所有-O
构建目标:"iothub_client_sample_mqtt_CC3220SF_LAUNCHXL_tirtos_ccs.out"
调用:ARM 链接器
"c:/ti/ccs1240/ccs/tools/compiler/ti-cgt-arm_20.2.7.LTS/bin/armcl /ti/azure_cc32xx_4_10_01_01/source /ti/simplelink_cc32xx_sdk_4_10_00_07/kernel/tirtos/packages -mv7M4 --code_state=16 --float_support=none -me --define=NET_SL - define=use_baltime_cert -g /ti/simplelink_cc32xx_sdk_4_10_00_07/source --c99 /ti/ccs1240/ccs/tools/compiler/ti-cgt-arm_20.2.7.LTS/lib - diag_warning=225 - diag_warning=255 - rom_model -o "iothub_client_sample_mqtt_CC3220SF_LAUNCHXL_tirfs_ccs.out".cms"/syscfg/ti_net_config.obj ".cs"".crts""./ccs.obj"/syscfg/ti_drivers_config.obj "./certs.obj""./iotb_client_sample_mqtt.lib".lib".".main_tirtos"/ti/azure_cc32xx_4_10_01_01/source/third_party/azure-iot-pal-simplelink/build_all/sdk/lib/ccs/m4/iotclient_sl_release.a /ti/simplelink_cc32xx_sdk_4_10_00_07/source/ti/net/http/lib/ccs/m4/httpclient_release.a /ti/simplelink_cc32xx_sdk_4_10_00_07/source/ti/drivers/net/wifi/ccs/rtos/simplelink.a "/ti/azure_cc32xx_4_10_01_01/source/third_party/azure-iot-pal-simplelink/build_all/sdk/lib/ccs/m4/common_sl_release.a "/syscfg/ti_drivers_net_wifi_config.obj /ti/azure_cc32xx_4_10_01_01/source/third_party/azure-iot-pal-simplelink/build_all/pal/lib/ccs/m4/pal_sl_release.a /ti/simplelink_cc32xx_sdk_4_10_00_07/source/ti/net/sntp/lib/ccs/m4/sntp_release.a /ti/simplelink_cc32xx_sdk_4_10_00_07/source/ti/net/lib/ccs/m4/slnetsock_release.a /ti/simplelink_cc32xx_sdk_4_10_00_07/source/ti/drivers/net/wifi/slnetif/ccs/Release/slnetifwifi.a /ti/azure_cc32xx_4_10_01_01/source/third_party/azure-iot-pal-simplelink/build_all/sdk/lib/ccs/m4/umqtt_sl_release.a /Users/noush/workspace_v12/tirtos_builds_CC3220SF_LAUNCHXL_release_ccs/Debug/configPkg/linker.cmd
第一个引用的未定义
文件中的符号
---------------- ----------------
xloging_set_log_function ./iothub_client_sample_mqtt.obj
错误#10234-D:未解析的符号仍存在
错误#10010:链接期间遇到错误;未编译"iothub_client_sample_mqtt_CC3220SF_LAUNCHXL_tirtos_ccs.out"
>>编译失败
Makefile:161:目标"iothub_client_sample_mqtt_CC3220SF_LAUNCHXL_tirtos_ccs.out"的配方失败
gmake[1]:***[iothub_client_sample_mqtt_CC3220SF_LAUNCHXL_tirtos_ccs.out]错误1
Makefile:154:食谱目标'all'失败
gmake:***[全部]错误2
****构建完成****
您正在链接到"发布"库、例如"C:/ti/azure_cc32xx_4_10_01_01/source/third_party/azure-iot-pal-simplelink/build_all/sdk/lib/ccs/m4/common_sl_ 版本 .a"-您应该改用调试库(例如 common_sl_ 调试 .a)、您可以在同一文件夹中找到它们。
转到"Project Properties"->"Build"->"Arm Linker"->"File Search Path"、然后将"...release.a"替换为"...debug.a"。
您好!
我们已更新服务包和根证书目录、
控制台输出:
启动 iohub_client_sample_mqTT 示例
startsntp:当前时间:星期三4 05:00:43 2023
CC32XX 已连接到 AP 并获取了 IP 地址。
IP 地址:192.168.1.26
IoTHubClient_LL_SetMessageCallback...成功。
IoTHubClient_LL_SendEventAsync 已接受消息[0],用于传输到物联网集线器。
错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
SlNetSock_startSec 无法启动会话
IoTHubClient_LL_SendEventASYNC 接受的消息[1]、用于传输到物联网集线器。
错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
SlNetSock_startSec 无法启动会话
IoTHubClient_LL_SendEventASYNC 接受的消息[2]、用于传输到物联网集线器。
错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
SlNetSock_startSec 无法启动会话
IoTHubClient_LL_SendEventASYNC 接受的消息[3]、用于传输到物联网集线器。
错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
SlNetSock_startSec 无法启动会话
IoTHubClient_LL_SendEventAsync 已接受消息[4],用于传输到物联网集线器。
错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
SlNetSock_startSec 无法启动会话
错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
SlNetSock_startSec 无法启动会话
错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
SlNetSock_startSec 无法启动会话
错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
SlNetSock_startSec 无法启动会话
错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
SlNetSock_startSec 无法启动会话
错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
SlNetSock_startSec 无法启动会话
但这并没有解决问题、
请帮助我解决此问题
这 不应该解决任何 问题-只是为了获得有关问题的更多信息(我们刚刚启用了日志)。
我们现在知道我们在连接到 TLS 服务器时遇到了问题、但它没有为我们提供足够的信息(错误代码)。
问题可能与您正在使用的证书有关、但为了获得更多信息、我需要精确确定错误代码。
在 /source/third_party/azure-iot-pal-simplelink/pal src / tlsi_sl.c、查找下面的行(应该是第381行-我不明白它是如何在日志中被提及的第371行):
LogError("SlNetSock_startSec failed to start session\n");
并对其进行更新(以便我们可以看到来自 SlNetSock_startSec 的错误代码):
LogError("SlNetSock_startSec failed to start session %d\n", status);
您需要重新构建 Azure PAL 库:
打开快速入门指南(位于 /docs 文件夹中)并检查"构建 Azure PAL 和 SDK 库"中的说明。
然后重新编译应用。
您好!
这是具有错误代码状态的调试日志
在 tlsi_sl.c 中修改:
371 LogError ("SlNetSock_startSec 启动会话%d\n"失败,状态);
控制台输出:
启动 iohub_client_sample_mqTT 示例
startSNTP:当前时间:10月5日星期四11:54:07 2023
CC32XX 已连接到 AP 并获取了 IP 地址。
IP 地址:192.168.1.26
IoTHubClient_LL_SetMessageCallback...成功。
IoTHubClient_LL_SendEventAsync 已接受消息[0],用于传输到物联网集线器。
错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
SlNetSock_startSec 无法启动会话-468
IoTHubClient_LL_SendEventASYNC 接受的消息[1]、用于传输到物联网集线器。
错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
SlNetSock_startSec 无法启动会话-468
IoTHubClient_LL_SendEventASYNC 接受的消息[2]、用于传输到物联网集线器。
错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
SlNetSock_startSec 无法启动会话-468
IoTHubClient_LL_SendEventASYNC 接受的消息[3]、用于传输到物联网集线器。
错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
SlNetSock_startSec 无法启动会话-468
IoTHubClient_LL_SendEventAsync 已接受消息[4],用于传输到物联网集线器。
错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
SlNetSock_startSec 无法启动会话-468
错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
SlNetSock_startSec 无法启动会话-468
错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
SlNetSock_startSec 无法启动会话-468
-468表示证书未包含在已安装的证书目录中。
这只是一个警告(连接已建立)、如果这是预期结果(例如、如果您仍在使用游乐场根 CA 或新 Azure 根 CA 不是 CC32xx 官方目录的一部分)、则可以忽略该警告(即、如果您仍在使用游乐场根 CA 或新 Azure 根 CA)。
问题是、代码似乎没有忽略此内容、并将其报告为错误。
您可以做的是更改第380行的 tlsi_sl.c ("if (status < 0){")、如下所示:
if (status < 0 && status != SL_ERROR_BSD_ ESECUNKNOWNROOTCA) {
您可以在以下位置阅读有关 CC32xx 证书处理的信息: https://www.ti.com/lit/pdf/swpu332 (有关具体错误的详细信息、请参阅第5章"疑难解答")。