主题中讨论的其他器件:CC3235SF
我使用的原型基于 mqtt_client_over_tls_1_3_CC3235SF_LAUNCHXL_tirtos7_ticlang 添加了示例。 所用 SDK 为 simplelink_cc32xx_sdk_7_10_00_13 。 原型设计使用了 https://test.mosquitto.org/ 公有代理。 成功获得 TLS 1.3至 端口上的端口公共代理的连接 8883 : mqtt,加密,未经身份验证。 在下一步中、我尝试通过 PMBus 适配器 8884 :需要 mqtt,加密,客户端证书。 从而开始出现问题。 在调试过程中发现连接失败," 0x7780 SSL -收到来自我们的对等器件的致命警报消息 "错误代码。 启用跟踪给了我一个理由:警报消息是 116 。 意味着服务器等待证书用完。 正在尝试找出、为什么证书不发送到服务器、Rebuilder mbedtls 来获取调试符号并找到、该库没有设置自己的证书。 发现、证书应设置为 mbedtls_ssl_conf_own_cert (&pTlssock->ssl.conf、&pTlssock->srvcert、&pTlssock->pkey) 停止。 设置证书后,设备将被粉碎。 出现以下错误:
Cortex_M4_0: Can't Run Target CPU: (Error -1268 @ 0x1090001) Device is locked up in Hard Fault or in NMI. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 9.11.0.00128) Cortex_M4_0: Can't Run Target CPU: (Error -1268 @ 0x1090001) Device is locked up in Hard Fault or in NMI. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 9.11.0.00128)
其他一些调试会产生以下故障点:
这是以下函数的第八次调用:
psa_status_t mbedtls_psa_external_get_random( mbedtls_psa_external_random_context_t *context, uint8_t *output, size_t output_size, size_t *output_length) { int status; unsigned short length; length = (unsigned short)output_size; status = sl_NetUtilGet(SL_NETUTIL_TRUE_RANDOM,0,output,&(length)); if (status==0) { *output_length = output_size; } return status; }
在这里、我们可以找到失败前的实际调用堆栈:
和内核寄存器状态以及:
应如何执行正确的已认证 TLS1.3连接?