← index #5359Issue #5454
Related · high · value 3.114
QUERY · ISSUE

ESP32 crashes on SPI usage

openby bgamariopened 2019-11-26updated 2019-11-26
port-esp32

Attempting to use HSPI on an ESP32-WROOM module fails with a guru meditation:

ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371 
ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:4928
ho 0 tail 12 room 4
load:0x40078000,len:9332
load:0x40080400,len:6216
entry 0x400806e8
I (433) cpu_start: Pro cpu up.
I (434) cpu_start: Application information:
I (434) cpu_start: Compile time:     07:44:16
I (436) cpu_start: Compile date:     May 29 2019
I (441) cpu_start: ESP-IDF:          v3.3-beta1-268-g5c88c5996
I (448) cpu_start: Starting app cpu, entry point is 0x4008294c
I (0) cpu_start: App cpu up.
I (458) heap_init: Initializing. RAM available for dynamic allocation:
I (465) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (471) heap_init: At 3FFB9B88 len 00026478 (153 KiB): DRAM
I (477) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (484) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (490) heap_init: At 40093398 len 0000CC68 (51 KiB): IRAM
I (496) cpu_start: Pro cpu start user code
I (67) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
MicroPython v1.11 on 2019-05-29; ESP32 module with ESP32
Type "help()" for more information.
>>> from machine import SPI, Pin
>>> SPI(1, sck=Pin(14), mosi=Pin(13), miso=Pin(12))
I (390583) gpio: GPIO[14]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x400ff550: ffffffff ffffffff ffffffff
Core 1 register dump:
PC      : 0x400ff556  PS      : 0x00060330  A0      : 0x800fe580  A1      : 0x3ffc15d0  
A2      : 0x00000001  A3      : 0x3ffc1674  A4      : 0x00000001  A5      : 0x3f41f558  
A6      : 0x3ffe8494  A7      : 0x00000034  A8      : 0x800ff516  A9      : 0x3ffc15b0  
A10     : 0xffffffff  A11     : 0x00001000  A12     : 0x00049038  A13     : 0x00000021  
A14     : 0x3ffc1828  A15     : 0x0000002e  SAR     : 0x0000000b  EXCCAUSE: 0x00000000  
EXCVADDR: 0x00000000  LBEG    : 0x4000c46c  LEND    : 0x4000c477  LCOUNT  : 0x00000000  

Backtrace: 0x400ff556:0x3ffc15d0 0x400fe57d:0x3ffc1610 0x400f3587:0x3ffc1650 0x400f3667:0x3ffc16f0 0x400ed715:0x3ffc1760 0x400e517e:0x3ffc17a0 0x400dbf7d:0x3ffc17c0 0x400dbfe5:0x3ffc17e0 0x400e920b:0x3ffc1800 0x400dfdfc:0x3ffc18a0 0x400dbf7d:0x3ffc1920 0x400dbfaa:0x3ffc1940 0x400f7666:0x3ffc1960 0x400f78b0:0x3ffc1a00 0x400f00dc:0x3ffc1a40 0x4009086d:0x3ffc1a70

Rebooting...

This was using https://micropython.org/resources/firmware/esp32-idf3-20190529-v1.11.bin.

CANDIDATE · ISSUE

ESP32 4MB RAM Guru Meditation Crash On Initializing UART

openby Trekintoshopened 2019-12-25updated 2021-06-07

Good Evening and Merry Christmas!

I was doing an ESP32 Micropython project that happens to use a serial port (UART 1) and decided I needed more RAM. After ordering a TTGO T8 V1.7 (ESP32, 4MB RAM, integrated MicroSD port) and setting up the most recent MicroPython build for SPI RAM, it would always reboot with a guru meditation error when I ran my code. After some poking around I found out that either declaring or initiating a UART would cause a guru meditation error and reset the ESP32. On the same board, the non-SPI RAM build does not do this. I tested this on the 3 most recent ESP32 SPIRAM builds from the download page.

Here's an example of this error on a freshly flashed copy of Micropython with nothing in boot.py:

MicroPython v1.12 on 2019-12-20; ESP32 module (spiram) with ESP32
Type "help()" for more information.
>>> from machine import UART
>>> uart = UART(1,baudrate=19200)
^[[0;32mI (27310) uart: ALREADY NULL^[[0m
>>> 
>>> 
>>> uart.init()
Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.
Core 1 register dump:
PC      : 0x400dfc04  PS      : 0x00060930  A0      : 0x800d2d91  A1      : 0x3ffc2300  
A2      : 0x3f8177c0  A3      : 0x000000b1  A4      : 0x3ffc2320  A5      : 0xffddcccc  
A6      : 0x00000001  A7      : 0x000000ff  A8      : 0x00000019  A9      : 0x3ffc22e0  
A10     : 0xffddcccc  A11     : 0x00000001  A12     : 0x00000001  A13     : 0x3ffb32c0  
A14     : 0x00000003  A15     : 0x3ffc24c0  SAR     : 0x00000000  EXCCAUSE: 0x0000001c  
EXCVADDR: 0xffddcce8  LBEG    : 0x400d2fa8  LEND    : 0x400d3000  LCOUNT  : 0x00000000  

ELF file SHA256: 0000000000000000000000000000000000000000000000000000000000000000

Backtrace: 0x400dfc04:0x3ffc2300 0x400d2d8e:0x3ffc2320 0x400f5c30:0x3ffc2360 0x400d3003:0x3ffc2380 0x400d28dd:0x3ffc23a0 0x400d67a1:0x3ffc23c0 0x40104b32:0x3ffc2440 0x40104db4:0x3ffc24e0 0x400f5b1c:0x3ffc2520 0x40092d59:0x3ffc2550

Rebooting...
ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:4844
load:0x40078000,len:10532
load:0x40080400,len:6736
entry 0x400806f0
^[[0;32mI (534) psram: This chip is ESP32-D0WD^[[0m
^[[0;32mI (534) spiram: Found 64MBit SPI RAM device^[[0m
^[[0;32mI (534) spiram: SPI RAM mode: flash 40m sram 40m^[[0m
^[[0;32mI (537) spiram: PSRAM initialized, cache is in low/high (2-core) mode.^[[0m
^[[0;32mI (544) cpu_start: Pro cpu up.^[[0m
^[[0;32mI (548) cpu_start: Application information:^[[0m
^[[0;32mI (553) cpu_start: Compile time:     Dec 20 2019 07:52:43^[[0m
^[[0;32mI (559) cpu_start: ELF file SHA256:  0000000000000000...^[[0m
^[[0;32mI (565) cpu_start: ESP-IDF:          v3.3^[[0m
^[[0;32mI (570) cpu_start: Starting app cpu, entry point is 0x40083d90^[[0m
^[[0;32mI (562) cpu_start: App cpu up.^[[0m
^[[0;32mI (1446) spiram: SPI SRAM memory test OK^[[0m
^[[0;32mI (1446) heap_init: Initializing. RAM available for dynamic allocation:^[[0m
^[[0;32mI (1446) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM^[[0m
^[[0;32mI (1453) heap_init: At 3FFBA658 len 000259A8 (150 KiB): DRAM^[[0m
^[[0;32mI (1459) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM^[[0m
^[[0;32mI (1465) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM^[[0m
^[[0;32mI (1472) heap_init: At 400973F0 len 00008C10 (35 KiB): IRAM^[[0m
^[[0;32mI (1478) cpu_start: Pro cpu start user code^[[0m
^[[0;32mI (155) cpu_start: Chip Revision: 1^[[0m
^[[0;33mW (155) cpu_start: Chip revision is higher than the one configured in menuconfig. Suggest to upgrade it.^[[0m
^[[0;32mI (158) cpu_start: Starting scheduler on PRO CPU.^[[0m
^[[0;32mI (0) cpu_start: Starting scheduler on APP CPU.^[[0m
MicroPython v1.12 on 2019-12-20; ESP32 module (spiram) with ESP32
Type "help()" for more information.
>>> 
>>> 
>>> 

Apologies for odd formatting, that was copied straight from upycraft and it handles characters a bit weirdly.

Keyboard

j / / n
next pair
k / / p
previous pair
1 / / h
show query pane
2 / / l
show candidate pane
c
copy suggested comment
r
toggle reasoning
g i
go to index
?
show this help
esc
close overlays

press ? or esc to close

copied