ESP32 continuous reset for many times before it stable down to run
Posted: Wed Jul 19, 2017 8:14 am
Hi,
I wrote a program (a big/complicated application) that will be continuous running in a forever loop and sometimes response to some udp requests.
I keep having some error message as below before reset:
assertion "is_free(b)" failed: file "/home/user/esp/esp-idf/components/heap/./multi_heap.c", line 305, function: multi_heap_malloc
abort() was called at PC 0x40105c6f on core 0
It will run for an unknown number of reset, before it really run as expected.
Below are files and line number that I get from the backtrace:
user@chrysaor-info-ubuntu-14041-desktop-amd64:~/esp/esp-idf/examples/limidea$ xtensa-esp32-elf-addr2line -e ./build/limidea.elf 0x400870a4
/home/user/esp/esp-idf/components/esp32/./panic.c:546
user@chrysaor-info-ubuntu-14041-desktop-amd64:~/esp/esp-idf/examples/limidea$ xtensa-esp32-elf-addr2line -e ./build/limidea.elf 0x40071a3
??:0
user@chrysaor-info-ubuntu-14041-desktop-amd64:~/esp/esp-idf/examples/limidea$ xtensa-esp32-elf-addr2line -e ./build/limidea.elf 0x400871a3
/home/user/esp/esp-idf/components/esp32/./panic.c:546
user@chrysaor-info-ubuntu-14041-desktop-amd64:~/esp/esp-idf/examples/limidea$ xtensa-esp32-elf-addr2line -e ./build/limidea.elf 0x40105c6f
/Users/ivan/e/newlib_xtensa-2.2.0-bin/newlib_xtensa-2.2.0/xtensa-esp32-elf/newlib/libc/stdlib/../../../.././newlib/libc/stdlib/assert.c:63 (discriminator 8)
user@chrysaor-info-ubuntu-14041-desktop-amd64:~/esp/esp-idf/examples/limidea$ xtensa-esp32-elf-addr2line -e ./build/limidea.elf 0x40086a0a
/home/user/esp/esp-idf/components/heap/./multi_heap.c:547 (discriminator 1)
user@chrysaor-info-ubuntu-14041-desktop-amd64:~/esp/esp-idf/examples/limidea$ xtensa-esp32-elf-addr2line -e ./build/limidea.elf 0x40082436
/home/user/esp/esp-idf/components/heap/./heap_caps.c:115
user@chrysaor-info-ubuntu-14041-desktop-amd64:~/esp/esp-idf/examples/limidea$ xtensa-esp32-elf-addr2line -e ./build/limidea.elf 0x40082989
/home/user/esp/esp-idf/components/newlib/./syscalls.c:28
user@chrysaor-info-ubuntu-14041-desktop-amd64:~/esp/esp-idf/examples/limidea$ xtensa-esp32-elf-addr2line -e ./build/limidea.elf 0x400d2e50
??:?
user@chrysaor-info-ubuntu-14041-desktop-amd64:~/esp/esp-idf/examples/limidea$ xtensa-esp32-elf-addr2line -e ./build/limidea.elf 0x4011f5ce
??:?
user@chrysaor-info-ubuntu-14041-desktop-amd64:~/esp/esp-idf/examples/limidea$ xtensa-esp32-elf-addr2line -e ./build/limidea.elf 0x4011f649
??:?
user@chrysaor-info-ubuntu-14041-desktop-amd64:~/esp/esp-idf/examples/limidea$
Any idea from which part I should start troubleshooting?
I wrote a program (a big/complicated application) that will be continuous running in a forever loop and sometimes response to some udp requests.
I keep having some error message as below before reset:
assertion "is_free(b)" failed: file "/home/user/esp/esp-idf/components/heap/./multi_heap.c", line 305, function: multi_heap_malloc
abort() was called at PC 0x40105c6f on core 0
It will run for an unknown number of reset, before it really run as expected.
Below are files and line number that I get from the backtrace:
user@chrysaor-info-ubuntu-14041-desktop-amd64:~/esp/esp-idf/examples/limidea$ xtensa-esp32-elf-addr2line -e ./build/limidea.elf 0x400870a4
/home/user/esp/esp-idf/components/esp32/./panic.c:546
user@chrysaor-info-ubuntu-14041-desktop-amd64:~/esp/esp-idf/examples/limidea$ xtensa-esp32-elf-addr2line -e ./build/limidea.elf 0x40071a3
??:0
user@chrysaor-info-ubuntu-14041-desktop-amd64:~/esp/esp-idf/examples/limidea$ xtensa-esp32-elf-addr2line -e ./build/limidea.elf 0x400871a3
/home/user/esp/esp-idf/components/esp32/./panic.c:546
user@chrysaor-info-ubuntu-14041-desktop-amd64:~/esp/esp-idf/examples/limidea$ xtensa-esp32-elf-addr2line -e ./build/limidea.elf 0x40105c6f
/Users/ivan/e/newlib_xtensa-2.2.0-bin/newlib_xtensa-2.2.0/xtensa-esp32-elf/newlib/libc/stdlib/../../../.././newlib/libc/stdlib/assert.c:63 (discriminator 8)
user@chrysaor-info-ubuntu-14041-desktop-amd64:~/esp/esp-idf/examples/limidea$ xtensa-esp32-elf-addr2line -e ./build/limidea.elf 0x40086a0a
/home/user/esp/esp-idf/components/heap/./multi_heap.c:547 (discriminator 1)
user@chrysaor-info-ubuntu-14041-desktop-amd64:~/esp/esp-idf/examples/limidea$ xtensa-esp32-elf-addr2line -e ./build/limidea.elf 0x40082436
/home/user/esp/esp-idf/components/heap/./heap_caps.c:115
user@chrysaor-info-ubuntu-14041-desktop-amd64:~/esp/esp-idf/examples/limidea$ xtensa-esp32-elf-addr2line -e ./build/limidea.elf 0x40082989
/home/user/esp/esp-idf/components/newlib/./syscalls.c:28
user@chrysaor-info-ubuntu-14041-desktop-amd64:~/esp/esp-idf/examples/limidea$ xtensa-esp32-elf-addr2line -e ./build/limidea.elf 0x400d2e50
??:?
user@chrysaor-info-ubuntu-14041-desktop-amd64:~/esp/esp-idf/examples/limidea$ xtensa-esp32-elf-addr2line -e ./build/limidea.elf 0x4011f5ce
??:?
user@chrysaor-info-ubuntu-14041-desktop-amd64:~/esp/esp-idf/examples/limidea$ xtensa-esp32-elf-addr2line -e ./build/limidea.elf 0x4011f649
??:?
user@chrysaor-info-ubuntu-14041-desktop-amd64:~/esp/esp-idf/examples/limidea$
Any idea from which part I should start troubleshooting?