我们的程序在 revision 0 版 ESP32 的板上(Widora-Air V4 板)正常和稳定运作,但在 ESP32-WROOM-32、ESP32-WROVER 模组,以及 Widora-Air V6(使用 revision 1 版 ESP32 芯片)上均是频繁 panic
开发平台:Mac OS X 0.12.6
开发环境:从 github 拉取的最新(2018/03/25)的 esp-idf 和 esp-idf V3.0 RC1,xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz
每次 panic 信息基本不同,看似芯片是跑飞
列一次 dump 如下(按理不可能会出现 uart_pattern_queue_update (uart_num=11, diff_len=1073474304) 的 uart_num=11 这些情况)
================================================
espcoredump.py v0.1-dev
===============================================================
==================== ESP32 CORE DUMP START ====================
================== CURRENT THREAD REGISTERS ===================
pc 0x400ebcfc 0x400ebcfc <uart_pattern_queue_update+52>
lbeg 0x0 0
lend 0x0 0
lcount 0x0 0
sar 0x0 0
ps 0x60633 394803
threadptr <unavailable>
br <unavailable>
scompare1 <unavailable>
acclo <unavailable>
acchi <unavailable>
m0 <unavailable>
m1 <unavailable>
m2 <unavailable>
m3 <unavailable>
expstate <unavailable>
f64r_lo <unavailable>
f64r_hi <unavailable>
f64s <unavailable>
fcr <unavailable>
fsr <unavailable>
a0 0x3ffc0590 1073481104
a1 0x1 1
a2 0xb 11
a3 0x3ffbeb00 1073474304
a4 0x0 0
a5 0x0 0
a6 0x0 0
a7 0x0 0
a8 0x0 0
a9 0x0 0
a10 0x0 0
a11 0x0 0
a12 0x0 0
a13 0x0 0
a14 0x0 0
a15 0x0 0
==================== CURRENT THREAD STACK =====================
#0 uart_pattern_queue_update (uart_num=11, diff_len=1073474304) at /Volumes/esp32/esp-idf/components/driver/./uart.c:382
Backtrace stopped: Cannot access memory at address 0x0
======================== THREADS INFO =========================
Id Target Id Frame
13 process 12 0x40089be1 in xQueueGenericReceive (xQueue=0x3ffafdd0, pvBuffer=0x0, xTicksToWait=4294967295, xJustPeeking=0) at /Volumes/esp32/esp-idf/components/freertos/./queue.c:1591
12 process 11 0x40089be1 in xQueueGenericReceive (xQueue=0x3ffc2ad8, pvBuffer=0x3ffc40d0, xTicksToWait=4294967295, xJustPeeking=0) at /Volumes/esp32/esp-idf/components/freertos/./queue.c:1591
11 process 10 0x40089be1 in xQueueGenericReceive (xQueue=0x3ffc82a4, pvBuffer=0x3ffc8d10, xTicksToWait=4294967295, xJustPeeking=0) at /Volumes/esp32/esp-idf/components/freertos/./queue.c:1591
10 process 9 0x40089be1 in xQueueGenericReceive (xQueue=0x3ffaea14, pvBuffer=0x0, xTicksToWait=4294967295, xJustPeeking=0) at /Volumes/esp32/esp-idf/components/freertos/./queue.c:1591
9 process 8 0x40089be1 in xQueueGenericReceive (xQueue=0x3ffc16e8, pvBuffer=0x3ffc2780, xTicksToWait=4294967295, xJustPeeking=0) at /Volumes/esp32/esp-idf/components/freertos/./queue.c:1591
8 process 7 0x40089be1 in xQueueGenericReceive (xQueue=0x3ffaff8c, pvBuffer=0x0, xTicksToWait=4294967295, xJustPeeking=0) at /Volumes/esp32/esp-idf/components/freertos/./queue.c:1591
7 process 6 0x40089be1 in xQueueGenericReceive (xQueue=0x3ffcba10, pvBuffer=0x0, xTicksToWait=4294967295, xJustPeeking=0) at /Volumes/esp32/esp-idf/components/freertos/./queue.c:1591
6 process 5 0x4008b720 in prvProcessTimerOrBlockTask (xNextExpireTime=<optimized out>, xListWasEmpty=<optimized out>) at /Volumes/esp32/esp-idf/components/freertos/./timers.c:588
5 process 4 0x40089be1 in xQueueGenericReceive (xQueue=0x3ffc0988, pvBuffer=0x3ffc1410, xTicksToWait=10, xJustPeeking=0) at /Volumes/esp32/esp-idf/components/freertos/./queue.c:1591
4 process 3 0x400d284e in esp_vApplicationIdleHook () at /Volumes/esp32/esp-idf/components/esp32/./freertos_hooks.c:62
3 process 2 0x400d284e in esp_vApplicationIdleHook () at /Volumes/esp32/esp-idf/components/esp32/./freertos_hooks.c:62
2 process 1 0x4000bff0 in ?? ()
* 1 <main task> uart_pattern_queue_update (uart_num=11, diff_len=1073474304) at /Volumes/esp32/esp-idf/components/driver/./uart.c:382
======================= ALL MEMORY REGIONS ========================
Name Address Size Attrs
.rtc.text 0x400c0000 0x0 RW
.iram0.vectors 0x40080000 0x400 R XA
.iram0.text 0x40080400 0xf414 R XA
.dram0.data 0x3ffb0000 0x353c RW A
.flash.rodata 0x3f400020 0x1640c RW A
.flash.text 0x400d0018 0x6c4b8 R XA
.coredump.tasks 0x3ffc06b8 0x164 RW
.coredump.tasks 0x3ffc04d0 0x1e0 RW
.coredump.tasks 0x3ffcb7a4 0x164 RW
.coredump.tasks 0x3ffcb470 0x32c RW
.coredump.tasks 0x3ffbd808 0x164 RW
.coredump.tasks 0x3ffbd6a0 0x160 RW
.coredump.tasks 0x3ffbd29c 0x164 RW
.coredump.tasks 0x3ffbd130 0x164 RW
.coredump.tasks 0x3ffc14b4 0x164 RW
.coredump.tasks 0x3ffc12c0 0x1ec RW
.coredump.tasks 0x3ffbe268 0x164 RW
.coredump.tasks 0x3ffbe0e0 0x180 RW
.coredump.tasks 0x3ffccf18 0x164 RW
.coredump.tasks 0x3ffccaf0 0x420 RW
.coredump.tasks 0x3ffbb62c 0x164 RW
.coredump.tasks 0x3ffbb4a0 0x184 RW
.coredump.tasks 0x3ffc2840 0x164 RW
.coredump.tasks 0x3ffc2680 0x1b8 RW
.coredump.tasks 0x3ffafa6c 0x164 RW
.coredump.tasks 0x3ffaf8e0 0x184 RW
.coredump.tasks 0x3ffc8db0 0x164 RW
.coredump.tasks 0x3ffc8c10 0x198 RW
.coredump.tasks 0x3ffc4170 0x164 RW
.coredump.tasks 0x3ffc3fc0 0x1a8 RW
.coredump.tasks 0x3ffafe24 0x164 RW
.coredump.tasks 0x3ffbb0a0 0x180 RW
===================== ESP32 CORE DUMP END =====================
===============================================================
Done!
程序在 ESP32 revision 0 版上稳定运作,在 revision 1 上频繁 panic 重启
Re: 程序在 ESP32 revision 0 版上稳定运作,在 revision 1 上频繁 panic 重启
Total sizes:
DRAM .data size: 13628 bytes
DRAM .bss size: 30920 bytes
Used static DRAM: 44548 bytes ( 136188 available, 24.6% used)
Used static IRAM: 63508 bytes ( 67564 available, 48.5% used)
Flash code: 443574 bytes
Flash rodata: 91148 bytes
Total image size:~ 611858 bytes (.bin may be padded larger)
DRAM .data size: 13628 bytes
DRAM .bss size: 30920 bytes
Used static DRAM: 44548 bytes ( 136188 available, 24.6% used)
Used static IRAM: 63508 bytes ( 67564 available, 48.5% used)
Flash code: 443574 bytes
Flash rodata: 91148 bytes
Total image size:~ 611858 bytes (.bin may be padded larger)
Re: 程序在 ESP32 revision 0 版上稳定运作,在 revision 1 上频繁 panic 重启
原因找到,问题已解决
原因是程序里使用了 UART1(SD2/SD3脚)可能跟哪里冲突了,改成 UART2 就好了
原因是程序里使用了 UART1(SD2/SD3脚)可能跟哪里冲突了,改成 UART2 就好了
Who is online
Users browsing this forum: No registered users and 105 guests