完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用的idf版本为IDF-5.1版本,使用的芯片为ESP32s3。正常跑的程序,我注释掉一个log之后,就出现了这个错误,并一直发生重启。此时不断电,等重启发生一段时间后,程序又能正常运行。我用usb-jtag进行调试时,也可以正常运行。
1.请问出现这种情况,应该如何进行排查 2.以下为错误段的跟踪打印,memcpy in ROM是否由这个引起的呢?Code: Select all Guru Meditation Error: Core 0 panic'ed (InstrFetchProhibited). Exception was unhandled.Core 0 register dump:PC : 0x00000000 PS : 0x00060c30 A0 : 0x82119718 A1 : 0x3fcebf40A2 : 0x00000000 A3 : 0x3c13fd4c A4 : 0x00000007 A5 : 0x00000000A6 : 0xb33fffff A7 : 0xb33fffff A8 : 0x8202a3f4 A9 : 0x3fcebf10A10 : 0x3fcebf50 A11 : 0x00000000 A12 : 0x00000000 A13 : 0x00060c23A14 : 0xb33fffff A15 : 0xb33fffff SAR : 0x0000001c EXCCAUSE: 0x00000014EXCVADDR: 0x00000000 LBEG : 0x40056f5c LEND : 0x40056f72 LCOUNT : 0x000000000x40056f5c: memcpy in ROM0x40056f72: memcpy in ROMBacktrace: 0xfffffffd:0x3fcebf40 0x42119715:0x3fcebfc0 0x421191ba:0x3fcebff0 0x4202b6e5:0x3fcec030 0x4202b933:0x3fcec050 0x4202c5d8:0x3fcec070 0x40384889:0x3fcec0a00x42119715: handler_execute at C:/Espressif/frameworks/esp-idf-v5.1/components/esp_event/esp_event.c:1370x421191ba: esp_event_loop_run at C:/Espressif/frameworks/esp-idf-v5.1/components/esp_event/esp_event.c:582 (discriminator 3)0x4202b6e5: esp_mqtt_dispatch_event at C:/Espressif/frameworks/esp-idf-v5.1/components/mqtt/esp-mqtt/mqtt_client.c:9850x4202b933: esp_mqtt_dispatch_event_with_msgid at C:/Espressif/frameworks/esp-idf-v5.1/components/mqtt/esp-mqtt/mqtt_client.c:9600x4202c5d8: esp_mqtt_task at C:/Espressif/frameworks/esp-idf-v5.1/components/mqtt/esp-mqtt/mqtt_client.c:15490x40384889: vPortTaskWrapper at C:/Espressif/frameworks/esp-idf-v5.1/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:162ELF file SHA256: 8b2aa4c346796e58Rebooting... |
|
相关推荐
1个回答
|
|
出现InstrFetchProhibited错误的原因可能有以下几点:
1. 程序中的某个指令或操作导致处理器尝试访问禁止的内存区域。 2. 程序中的某个操作导致处理器尝试执行非法的指令。 3. 硬件问题,例如内存损坏或不稳定。 针对您的问题,我们可以按照以下步骤进行排查: 1. 检查您注释掉的log语句附近的代码,看看是否有可能影响到程序的正常运行。例如,是否有可能在注释掉log语句后,某个变量的值发生了变化,导致程序出现问题。 2. 检查您的程序中是否有内存越界、数组越界或其他可能导致访问禁止内存区域的操作。 3. 检查您的程序中是否有可能执行非法指令的地方,例如错误的指令编码或者错误的指令参数。 4. 检查您的程序中是否有可能触发硬件问题的地方,例如长时间运行导致的内存损坏或不稳定。 5. 尝试在出现问题的代码附近添加更多的log语句,以便更好地了解程序在出现问题时的状态。 6. 如果可能的话,尝试在出现问题的代码附近添加断点,以便在调试时更容易找到问题所在。 关于您提到的memcpy in ROM,这个错误通常与内存复制操作无关。但是,如果memcpy操作涉及到禁止的内存区域,那么可能会出现这个错误。您可以检查memcpy操作的源地址和目标地址,确保它们都在允许的内存区域内。 最后,如果您在USB-JTAG调试时程序能够正常运行,那么可能与硬件问题无关。这可能意味着问题出在程序的某个特定条件下,或者与某些特定操作有关。通过以上步骤进行排查,您应该能够找到问题的原因并解决它。 |
|
|
|
只有小组成员才能发言,加入小组>>
474浏览 6评论
397浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
377浏览 5评论
383浏览 4评论
354浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-28 16:12 , Processed in 0.728068 second(s), Total 49, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号