乐鑫技术交流
直播中

远风

9年用户 1078经验值
擅长:MEMS/传感技术 模拟技术 存储技术
私信 关注
[问答]

ESP8266 RTOS MQTT SSL运行错误的原因?

我使用了官方给的MQTT SSL例程,利用gencrt.h生成了证书,密钥,利用genheaader.h生成了头文件,并添加到工程中,程序编译正常,但是运行中老是出错,错误位置在如下函数:
X509* cacrt = d2i_X509(NULL, ssl_cck->cacrt, ssl_cck->cacrt_len);
WIFI_INIT
mode : sta(5c:cf:7f:f8:4a:8d)
add if0
wifi_check_ip
STAtiON_IDLE
load cart.
Fatal exception (0):
epc1=0x40279d20
epc2=0x00000000
epc3=0x402818a7
epcvaddr=0x40108d98
depc=0x00000000
rtn_add=0x40278781

Free Heap Size: 42528
Stack Point: 3fff7e10
3fff7e10: 401086c0 00000362 3fff8c33 00000000
3fff7e20: 00000001 00000000 00000000 00000000
3fff7e30: 00000000 00000000 00000000 00000000
3fff7e40: 00000000 00000000 00000000 4027da17
3fff7e50: a5a5a5a5 00000000 40107948 40108a38
3fff7e60: 00000362 a5a5a5a5 a5a5a5a5 a5a5a5a5
3fff7e70: 00000000 00000000 3fff8638 00000000
3fff7e80: 402206ee 00000362 3fff879b 00000001
根据出错的地址epc1=0x40279d20定位到错误的位置为
ret = mbedtls_asn1_get_tag( p, end, &len,
            MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | 0 ) )
请问这是什么错误原因,该如何去解决?
请给我一些帮助,谢谢!
                     

回帖(1)

而无返还

2024-7-10 17:49:29
从您提供的错误信息来看,ESP8266 RTOS MQTT SSL运行错误可能是由以下几个原因导致的:

1. **证书和密钥问题**:请确保您生成的证书和密钥是正确的,并且已经正确地添加到了工程中。检查gencert.h和genheader.h文件是否包含了正确的证书和密钥数据。

2. **内存不足**:错误信息中的"Free Heap Size: 42528"表明ESP8266的可用内存可能不足。尝试优化代码,减少内存使用,或者考虑使用更大容量的Flash存储。

3. **SSL库问题**:检查您使用的SSL库是否与ESP8266 RTOS兼容。如果可能,请尝试更新SSL库到最新版本。

4. **网络问题**:请确保您的ESP8266设备已经成功连接到Wi-Fi网络,并且可以正常访问MQTT服务器。

5. **MQTT配置问题**:检查您的MQTT配置是否正确,包括服务器地址、端口号、客户端ID等。

6. **代码问题**:错误信息中的"Fatal exception (0)"和"epc1=0x40279d20"可能表明代码中存在问题。检查您的代码,特别是与SSL相关的部分,确保没有逻辑错误或语法错误。

为了解决这个问题,您可以尝试以下步骤:

1. 仔细检查证书和密钥的生成和使用是否正确。
2. 检查ESP8266的内存使用情况,优化代码以减少内存占用。
3. 确保使用的SSL库与ESP8266 RTOS兼容,并尝试更新到最新版本。
4. 检查网络连接和MQTT配置是否正确。
5. 仔细检查代码,特别是与SSL相关的部分,以找出可能的问题。

希望这些建议能帮助您解决问题。如果问题仍然存在,请提供更多详细信息,以便我们能够更好地帮助您。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分