Skip to content

Core 0 Panic when reassigning Serial2 GPIO pins #5519

Closed
@JDSenseright

Description

@JDSenseright

Hardware:

Board: ESP32-WROOM-32U
Core Installation version: 1.0.6 (pio version 3.3.1)
IDE name: Platform.io
Flash Frequency: 40Mhz
PSRAM enabled: Yes
Upload Speed: 115200
Computer OS: Windows 10

Description:

I'm currently trying to reassign Serial2 on an ESP32 custom development board between GPIO pins 14,22 and 2,32.

I need to be able to do this multiple times in a sketch to talk to two channels of sensors via modbus.

The below sketch however crashes with a Core 0 panic after some number of changes.

Sketch: (leave the backquotes for code formatting)

#include <Arduino.h>

HardwareSerial SerialOne(0);
HardwareSerial SerialModem(1);
HardwareSerial SerialSensors(2);

void setup() {
  SerialOne.begin(115200, SERIAL_8N1, GPIO_NUM_3, GPIO_NUM_1);
  SerialModem.begin(115200, SERIAL_8N1, GPIO_NUM_16, GPIO_NUM_17);
  SerialSensors.begin(9600, SERIAL_8N1, GPIO_NUM_14, GPIO_NUM_22);
}

void loop() { 

  delay(2000);
  SerialOne.println("Changing serial Sensors to D2");
  SerialSensors.begin(115200, SERIAL_8N2, GPIO_NUM_2, GPIO_NUM_32);
  delay(2000);
  SerialOne.println("Changing serial Sensors to D1");
  SerialSensors.begin(115200, SERIAL_8N2, GPIO_NUM_14, GPIO_NUM_22);
}

Debug Messages:

rst:0x10 (RTCWDT_RTC_RESET),boot:0x12 (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:1044
load:0x40078000,len:10124
load:0x40080400,len:5828
entry 0x400806a8
Changing serial Sensors to D2
Changing serial Sensors to D1
Changing serial Sensors to D2
Changing serial Sensors to D1
Changing serial Sensors to D2
Changing serial Sensors to D1
Changing serial Sensors to D2
Changing serial Sensors to D1
Changing serial Sensors to D2
Changing serial Sensors to D1
Changing serial Sensors to D2
Changing serial Sensors to D1
Changing serial Sensors to D2
Changing serial Sensors to D1
Changing serial Sensors to D2
Changing serial Sensors to D1
Changing serial Sensors to D2
Changing serial Sensors to D1
Changing serial Sensors to D2
Changing serial Sensors to D1
Changing serial Sensors to D2
Changing serial Sensors to D1
Changing serial Sensors to D2
Changing serial Sensors to D1
Changing serial Sensors to D2
Guru Meditation Error: Core  0 panic'ed (LoadProhibited). Exception was unhandled.
Core 0 register dump:
PC      : 0x400e25fb  PS      : 0x00060b30  A0      : 0x80086128  A1      : 0x3ffb78b0  
A2      : 0x00000000  A3      : 0x00000000  A4      : 0x00060023  A5      : 0x3ffb796c  
A6      : 0x00000000  A7      : 0x00000001  A8      : 0x800e25fb  A9      : 0x3ffb7870  
A10     : 0x00000001  A11     : 0x00000000  A12     : 0x3ffaffe8  A13     : 0x00000000
A14     : 0x3ffaff9c  A15     : 0x00060023  SAR     : 0x00000000  EXCCAUSE: 0x0000001c  
EXCVADDR: 0x0000000b  LBEG    : 0x00000000  LEND    : 0x00000000  LCOUNT  : 0x00000000  

ELF file SHA256: 0000000000000000

Backtrace: 0x400e25fb:0x3ffb78b0 0x40086125:0x3ffb78d0

Rebooting...

Decoded Backtrace:

PC: 0x400e25fb: __stack_chk_fail at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/stack_check.c line 35
EXCVADDR: 0x0000000b

Decoding stack results
0x400e25fb: __stack_chk_fail at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/stack_check.c line 35
0x40086125: vQueueDelete at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/queue.c line 1796

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions