完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我有一个使用 ESP8266 的远程监控设备(SDK 版本:RTOS 2.0)。目前,其中一些在运行 2-7 分钟并向服务器发送 3-4 条消息后出现重置问题。
我尝试使用 system_get_rst_info() 获取一些重置信息并将它们发送到服务器。 重置原因是 2(致命异常),epc1 都是一样的。 谁能告诉我有关 epc1、epc2、epc3、excvaddr、depc rtn_addr 含义的更多详细信息?以及如何找到重置原因? 在信息中,ep1 是相同的,但 ep3 是不同的。为什么? 原因EPC1的。 EPC2的。 EPC3的。 excvaddr。 depc. rtn_addr 2. 0.4010762A. 0.402A6237. 402B2FE8. 0. 402BBA7 2. 0.4010762A. 0.402A68FB型 402B2FE8型 0. 402BBA7E 2 .0.4010762A. 0.4028C89C. 40285F3C.0. 402BBA7E 2 .0.4010762A. 0.402A1866. 40285F3C.0. 402BBA7E 2 .0.4010762A. 0.402A69FB. 40285F3C.0. 402BBA7E 2 .0.4010762A. 0.40101AEC. 402B2FE8.0. 402BBA7E 2 .0.4010762A. 0.402A69D8. 40285F3C.0. 402BBA7E 2 .0.4010762A. 0.编号:402A69CC. 40285F3C.0. 402BBA7E 2 .0.4010762A. 0.40100615. 402B2FE8.0. 402BBA7E 2 .0.4010762A. 0.402A109C. 402B2FE8.0. 402BBA7E 我检查了 *.s 文件,在 epc1 地址是 401075ec <__modsi3>: 401075EC:027D 移动.N A7、A2 401075EE:602120 绝对 A2、A2 401075F1:603130 ABS A3、A3 401075f4: 3023b6 bltui a3, 2, 40107628 <__modsi3+0x3c> 401075F7:40F250 NSAU A5、A2 401075FA:40F340 NSAU A4、A3 401075fd: 17b547 bgeu a5, a4, 40107618 <__modsi3+0x2c> 40107600:C04450 Sub A4、A4、A5 40107603: 401400 SSL A4 40107606: A13300 SLL A3, A3 40107609: 023237 bltu a2, a3, 4010760f <__modsi3+0x23> 4010760C:C02230 子 A2、A2、A3 4010760F: 413130 SRLI A3, A3, 1 40107612:FFC442 ADDI A4、A4、-1 40107615: ff0456 bnez a4, 40107609 <__modsi3+0x1d> 40107618: 023237 bltu a2, a3, 4010761e <__modsi3+0x32> 4010761B:C02230 子 A2、A2、A3 4010761e: 0027d6 bgez a7, 40107624 <__modsi3+0x38> 40107621:602020 负 A2、A2 40107624: f00d ret.n 40107626:CC0000 不含 40107629:000053 excw 4010762C:494400 不含 4010762f: 0c3056 bnez a0, 401076f6 <_etext+0x7e> 40107632:F00D02 L8UI A0、A13、240 40107635: 000000 |
|
相关推荐
1个回答
|
|
ESP8266不断重置的原因可能有多种,从您提供的信息来看,重置原因是2(致命异常)。接下来,我们将分析您提供的重置信息,以帮助您找到可能的原因。
1. 首先,我们来了解一下您提供的重置信息中的各个字段: - EPC1、EPC2、EPC3:这些是异常程序计数器(Exception Program Counter),它们分别表示发生异常时的程序计数器值。这些值可以帮助我们找到导致异常的代码位置。 - EXCVADDR:异常向量地址,表示发生异常时的内存地址。 - DEPC:异常深度计数器(Exception Depth Counter),表示异常发生时的调用栈深度。 - RETN_ADDR:返回地址,表示发生异常时的调用栈中的返回地址。 2. 根据您提供的信息,EPC1是相同的,但EPC3是不同的。这可能意味着不同的设备或不同的代码位置导致了异常。EPC1相同可能表示所有设备在相同的代码位置遇到了问题,而EPC3不同则可能是由于其他原因导致的异常。 3. 为了找到重置原因,您可以采取以下步骤: a. 分析EPC1、EPC2、EPC3的值,找到它们对应的代码位置。这将帮助您确定可能导致异常的代码段。 b. 检查EXCVADDR,了解发生异常时的内存地址。这可能有助于您发现内存访问错误或数据损坏。 c. 检查DEPC和RETN_ADDR,了解异常发生时的调用栈。这将帮助您找到可能导致异常的函数调用。 4. 根据分析结果,您可能需要检查以下几个方面: a. 代码逻辑错误:检查可能导致异常的代码段,确保逻辑正确且没有错误。 b. 内存管理:确保您的设备没有内存泄漏或非法内存访问。 c. 外部干扰:检查设备是否受到外部电磁干扰,这可能导致设备运行不稳定。 d. 电源问题:检查设备电源是否稳定,不稳定的电源可能导致设备重置。 5. 如果问题仍然存在,您可以尝试以下方法: a. 更新ESP8266的固件版本,以解决可能的已知问题。 b. 优化代码,减少内存占用和调用栈深度,以降低异常发生的概率。 c. 在设备上添加异常处理机制,以便在发生异常时能够记录更多信息,帮助您更好地定位问题。 希望以上信息能帮助您找到ESP8266不断重置的原因,并解决问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
982 浏览 1 评论
553浏览 6评论
463浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
447浏览 5评论
448浏览 4评论
420浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 05:44 , Processed in 0.729753 second(s), Total 45, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号