how to deal with trigger interupted watchdog
Posted: Thu Nov 02, 2023 3:37 am
I use SPI2 and SPI3, ETH is used on SPI3, the W5500 module is used, and SPI2 uses one other module. This module also needs to introduce a separate GPIO port-GPIO48 to reset the module.
When initialized ETH, GPIO interruption is required. GPIO_INSTALL_ISR_SERVICE This function will cause me to trigger the interrupted watch dog time when initializing another GPIO port.
w5500 spi init
gpio48 init
The following errors will be triggered when I run to GPIO_CONFIG, causing Core Dump
I would like to ask why this is the GPIO that other devices are using. GPIO48, which is connected to this device, will cause problems.
When initialized ETH, GPIO interruption is required. GPIO_INSTALL_ISR_SERVICE This function will cause me to trigger the interrupted watch dog time when initializing another GPIO port.
w5500 spi init
- ret = gpio_install_isr_service(0);
- if (ret != ESP_OK) {
- if (ret == ESP_ERR_INVALID_STATE) {
- ESP_LOGW(TAG, "GPIO ISR handler has been already installed");
- ret = ESP_OK; // ISR handler has been already installed so no issues
- } else {
- ESP_LOGE(TAG, "GPIO ISR handler install failed");
- goto err;
- }
- }
- // Init SPI bus
- spi_bus_config_t buscfg = {
- .miso_io_num = ETH_MISO_PIN,
- .mosi_io_num = ETH_MOSI_PIN,
- .sclk_io_num = ETH_CLK_PIN,
- .quadwp_io_num = -1,
- .quadhd_io_num = -1,
- };
- if ((ret = spi_bus_initialize(SPI3_HOST, &buscfg, SPI_DMA_CH_AUTO)) != ESP_OK) {
- ESP_LOGE(TAG, "SPI host #%d init failed", SPI3_HOST + 1);
- goto err;
- }
- gpio_config_t io_conf = {};
- io_conf.pin_bit_mask = (1ULL<<GPIO_NUM_48);
- io_conf.mode = GPIO_MODE_OUTPUT_OD;
- io_conf.pull_down_en = 0;
- io_conf.pull_up_en = 0;
- io_conf.intr_type = GPIO_INTR_DISABLE;
- gpio_config(&io_conf);
- gpio_set_level(GPIO_NUM_48, 0);
- vTaskDelay(1000 / portTICK_PERIOD_MS);
- gpio_set_level(GPIO_NUM_48, 1);
- ESP_LOGI(TAG, "reset done");
- I (10130) gpio: GPIO[48]| InputEn: 0| OutputEn: 1| OpenDrain: 1| Pullup: 0| Pulldown: 0| Intr:0
- Guru Meditation Error: Core 0 panic'ed (Interrupt wdt timeout on CPU0).
- Core 0 register dump:
- PC : 0x40377bea PS : 0x00050034 A0 : 0x4037e24e A1 : 0x3fca8510
- A2 : 0x00000000 A3 : 0x3fca6598 A4 : 0x40377c44 A5 : 0x3fca84f0
- A6 : 0x00000000 A7 : 0xb33fffff A8 : 0x8207b05e A9 : 0x403874f6
- A10 : 0x00000000 A11 : 0x4210cda8 A12 : 0x80378cfa A13 : 0x3fca84d0
- A14 : 0x00000000 A15 : 0x00000020 SAR : 0x00000011 EXCCAUSE: 0x00000005
- EXCVADDR: 0x00000000 LBEG : 0x00000000 LEND : 0x00000000 LCOUNT : 0x00000000
- Core 0 was running in ISR context:
- EPC1 : 0x4038a743 EPC2 : 0x4037e24e EPC3 : 0x00000000 EPC4 : 0x40377bea
- Backtrace: 0x40377be7:0x3fca8510 0x4037e24b:0x3fcb7b50 0x42008146:0x3fcb7b70 0x40385261:0x3fcb7b90 0x40387101:0x3fcb7bb0
- Core 1 register dump:
- PC : 0x4037e24e PS : 0x00060834 A0 : 0x82008149 A1 : 0x3fcb84c0
- A2 : 0x00000000 A3 : 0x60023000 A4 : 0x3fcb4a00 A5 : 0x3fcb49e0
- A6 : 0x4037b964 A7 : 0x00000001 A8 : 0x8207b05e A9 : 0x3fcb8480
- A10 : 0x00000000 A11 : 0x00000000 A12 : 0x3fcb49e0 A13 : 0x3fcb49b0
- A14 : 0x00000001 A15 : 0x00000001 SAR : 0x00000000 EXCCAUSE: 0x00000005
- EXCVADDR: 0x00000000 LBEG : 0x00000000 LEND : 0x00000000 LCOUNT : 0x00000000
- Backtrace: 0x4037e24b:0x3fcb84c0 0x42008146:0x3fcb84e0 0x40385261:0x3fcb8500 0x40387101:0x3fcb8520
- ELF file SHA256: 047dd7c093980bb7
- I (11158) esp_core_dump_flash: Save core dump to flash...
- D (11164) esp_core_dump_elf: ================= Calc data size ===============
- D (11171) esp_core_dump_elf: ================ Processing task registers ================
- D (11180) esp_core_dump_port: Task (TCB:3fcb7d1c) EXIT/PC/PS/A0/SP 403778b4 4037e24e 60b30 82008149 3fcb7b50
- D (11189) esp_core_dump_common: Crashed task 3fcb7d1c
- D (11195) esp_core_dump_common: Switched task 3fcb7d1c to ISR stack [3fca8450...3fca8510]
- D (11203) esp_core_dump_port: Add regs for task 0x3fcb7d1c
- D (11208) esp_core_dump_port: Task (TCB:3fcb8694) EXIT/PC/PS/A0/SP 403778b4 4037e24e 60834 82008149 3fcb84c0
- D (11218) esp_core_dump_port: Add regs for task 0x3fcb8694
- D (11224) esp_core_dump_port: Task (TCB:3fccd904) EXIT/PC/PS/A0/SP 403778b4 400559e0 60730 803873ea 3fccd6a0
- D (11234) esp_core_dump_port: Add regs for task 0x3fccd904
- D (11239) esp_core_dump_port: Task (TCB:3fce6538) EXIT/PC/PS/A0/SP 403778b4 400559e0 60930 803873ea 3fce6310
- D (11249) esp_core_dump_port: Add regs for task 0x3fce6538
- D (11255) esp_core_dump_port: Task (TCB:3fce7ddc) EXIT/PC/PS/A0/SP 403778b4 4206b7c6 60530 8200fcc7 3fce7bf0
- D (11265) esp_core_dump_port: Add regs for task 0x3fce7ddc
- D (11270) esp_core_dump_port: Task (TCB:3fcd994c) EXIT/PC/PS/A0/SP 403778b4 400559e0 60e30 803873ea 3fcd9760
- D (11280) esp_core_dump_port: Add regs for task 0x3fcd994c
- D (11286) esp_core_dump_port: Task (TCB:3fce1a44) EXIT/PC/PS/A0/SP 403778b4 4206b7c6 60c30 82014623 3fce1890
- D (11296) esp_core_dump_port: Add regs for task 0x3fce1a44
- D (11301) esp_core_dump_port: Task (TCB:3fcdd1c4) EXIT/PC/PS/A0/SP 403778b4 4205cb64 60c30 82039312 3fcbd780
- D (11311) esp_core_dump_port: Add regs for task 0x3fcdd1c4
- D (11317) esp_core_dump_port: Task (TCB:3fcb73a4) EXIT/PC/PS/A0/SP 403778b4 40388075 60e30 8200f707 3fcb7190
- D (11326) esp_core_dump_port: Add regs for task 0x3fcb73a4
- D (11332) esp_core_dump_port: Task (TCB:3fcb4b54) EXIT/PC/PS/A0/SP 403778b4 400559e0 60530 803873ea 3fcb4960
- D (11342) esp_core_dump_port: Add regs for task 0x3fcb4b54
- D (11347) esp_core_dump_port: Task (TCB:3fcb41dc) EXIT/PC/PS/A0/SP 403778b4 400559e0 60430 803873ea 3fcb3ff0
- D (11357) esp_core_dump_port: Add regs for task 0x3fcb41dc
- D (11363) esp_core_dump_port: Task (TCB:3fcb980c) EXIT/PC/PS/A0/SP 403778b4 40387ddb 60b30 80387f2b 3fcb9640
- D (11373) esp_core_dump_port: Add regs for task 0x3fcb980c
- D (11378) esp_core_dump_port: Task (TCB:3fce82b0) EXIT/PC/PS/A0/SP 403778b4 400559e0 60330 803873ea 3fcebe90
- D (11388) esp_core_dump_port: Add regs for task 0x3fce82b0
- D (11394) esp_core_dump_port: Task (TCB:3fccee38) EXIT/PC/PS/A0/SP 403778b4 400559e0 60e30 803873ea 3fccebf0
- D (11404) esp_core_dump_port: Add regs for task 0x3fccee38
- D (11409) esp_core_dump_port: Task (TCB:3fcea2a4) EXIT/PC/PS/A0/SP 403778b4 400559e0 60130 803873ea 3fcf2ea0
- D (11419) esp_core_dump_port: Add regs for task 0x3fcea2a4
- D (11425) esp_core_dump_port: Task (TCB:3fcd1624) EXIT/PC/PS/A0/SP 403778b4 400559e0 60730 803873ea 3fcd13f0
- D (11435) esp_core_dump_port: Add regs for task 0x3fcd1624
- D (11440) esp_core_dump_port: Task (TCB:3fcb5ccc) EXIT/PC/PS/A0/SP 403778b4 400559e0 60930 803873ea 3fcb5af0
- D (11450) esp_core_dump_port: Add regs for task 0x3fcb5ccc
I would like to ask why this is the GPIO that other devices are using. GPIO48, which is connected to this device, will cause problems.