when send large data(greater 120 bytes) to UART1, esp32 will creah

jjmin.liang
Posts: 10
Joined: Sat Feb 16, 2019 1:24 pm

when send large data(greater 120 bytes) to UART1, esp32 will creah

Postby jjmin.liang » Sat Feb 16, 2019 1:35 pm

hi guys,

I'm working on the ESP32 DevKit, and I writing a program on esp32 to send data to UART1(GPIO10, GPIO9), I using a USB-TTL tool to connect the UART1 on ESP32 DevKit to my Mac OS X, and send data to UART1 through a serial tools on the Mac. But when I sent a large data that about 100-700 bytes to UART1, the ESP32 was creash, and the output in the `make monitor` is :

Code: Select all

Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x40137e00: ffff0200 ffffffff ffffffff
Core 1 register dump:
PC      : 0x40137e04  PS      : 0x00050031  A0      : 0x400820e0  A1      : 0x3ffb0c40  
0x400820e0: _xt_lowint1 at /Users/azolyoung/esp/esp-idf/components/freertos/xtensa_vectors.S:1154

A2      : 0x3ffb3928  A3      : 0x00000001  A4      : 0x400e28b2  A5      : 0x40087e74  
0x400e28b2: uart_rx_intr_handler_default at /Users/azolyoung/esp/esp-idf/components/driver/uart.c:1165

0x40087e74: _frxt_int_enter at /Users/azolyoung/esp/esp-idf/components/freertos/portasm.S:119

A6      : 0x00000000  A7      : 0x00060223  A8      : 0x00000001  A9      : 0x00000001  
A10     : 0x00060220  A11     : 0x3ffb8500  A12     : 0x800d1ce7  A13     : 0x3ffb75a0  
A14     : 0x00000000  A15     : 0x3ffb75c0  SAR     : 0x0000001d  EXCCAUSE: 0x00000000  
EXCVADDR: 0x00000000  LBEG    : 0x00000000  LEND    : 0x00000000  LCOUNT  : 0x00000000  
Core 1 was running in ISR context:
EPC1    : 0x40137e04  EPC2    : 0x00000000  EPC3    : 0x00000000  EPC4    : 0x00000000

Backtrace: 0x40137e04:0x3ffb0c40 0x400820dd:0x3ffb0c90 0x400e4b37:0x3ffb75f0 0x400d1ff7:0x3ffb7610 0x400872aa:0x3ffb7630 0x40085a89:0x3ffb7650
0x400820dd: _xt_lowint1 at /Users/azolyoung/esp/esp-idf/components/freertos/xtensa_vectors.S:1154

0x400e4b37: esp_pm_impl_waiti at /Users/azolyoung/esp/esp-idf/components/esp32/pm_esp32.c:487

0x400d1ff7: esp_vApplicationIdleHook at /Users/azolyoung/esp/esp-idf/components/esp32/freertos_hooks.c:86

0x400872aa: prvIdleTask at /Users/azolyoung/esp/esp-idf/components/freertos/tasks.c:4590

0x40085a89: vPortTaskWrapper at /Users/azolyoung/esp/esp-idf/components/freertos/port.c:403
I was test this with the uart_echo exampel in the IDF, it same with my program, it will crash when sent large data to UART1. but this issue is not trigger every time, but it's easy to reproduce.

please help, I need some tip about this, I've working with this issue all day..no idea, thank you!

ESP_igrr
Posts: 2072
Joined: Tue Dec 01, 2015 8:37 am

Re: when send large data(greater 120 bytes) to UART1, esp32 will creah

Postby ESP_igrr » Sat Feb 16, 2019 2:17 pm

GPIO9 and 10 on ESP-WROOM32 are used for the SPI flash bus, so sending something on these pins will cause flash communication issue, which in turn results in ESP32 being unable to load correct instructions from flash (as seen in the panic handler output). You need to use other GPIOs — UART1 can be connected to any other pins using the GPIO matrix. You may also read ESP-WROOM32 datasheet for the list of pins and their functions.

jjmin.liang
Posts: 10
Joined: Sat Feb 16, 2019 1:24 pm

Re: when send large data(greater 120 bytes) to UART1, esp32 will creah

Postby jjmin.liang » Thu Feb 21, 2019 3:04 am

to ESP_igrr:

hey! You are awesome! the point is what you said, I just change it to gpio4 and gpio 5, it work like a cham, thank you so much!

Who is online

Users browsing this forum: dzungpv, Majestic-12 [Bot] and 112 guests