Task WDT timeout

glmnet
Posts: 3
Joined: Fri Mar 10, 2023 1:32 pm

Task WDT timeout

Postby glmnet » Fri Mar 10, 2023 2:07 pm

Hi,

I'm working on a project and after some time I get this at the console:

Code: Select all

(233902522) task_wdt:  - IDLE (CPU 0)
(233902522) task_wdt: Tasks currently running:
(233902522) task_wdt: CPU 0: omotor
(233902522) task_wdt: CPU 1: IDLE
(233902522) task_wdt: Print CPU 0 (current core) backtrace


Backtrace: 0x400E5F57:0x3FFB1040 0x400E60E0:0x3FFB1060 0x400834C9:0x3FFB1080 0x400E60E0:0x3FFC44F0 0x400DC8A5:0x3FFC4520 0x400D46E8:0x3FFC4560 0x400D336B:0x3FFC4580 0x400D534F:0x3FFC45B0 0x400D5611:0x3FFC4610 0x4008B3DD:0x3FFC4630
I've decoded the backtrace with the xtensa-esp32-elf-addr2line -pfiaC -e command and found this:

Code: Select all

0x400e5f57: task_wdt_timeout_handling at C:\Users\glmne\.platformio\packages\framework-espidf\components\esp_system/task_wdt
0x400e60e0: task_wdt_isr at C:\Users\glmne\.platformio\packages\framework-espidf\components\esp_system/task_wdt.c:586
0x400834c9: _xt_lowint1 at xtensa_vectors.o:?
0x400e60e0: task_wdt_isr at C:\Users\glmne\.platformio\packages\framework-espidf\components\esp_system/task_wdt.c:586
0x400dc8a5: i2c_master_cmd_begin at C:\Users\glmne\.platformio\packages\framework-espidf\components\driver/i2c.c:1529
0x400d46e8: I2CDevice::write(unsigned char, unsigned short) at C:\git\PEspAGV-Firmware/src/i2c.cpp:100
0x400d336b: ads1115::ADS1115::read_next() at C:\git\PEspAGV-Firmware/src/devices/ads1115.cpp:113
0x400d534f: OMotor::task() at C:\git\PEspAGV-Firmware/src/omotor/omotor.cpp:512
0x400d5611: OMotor::task_wrapper(void*) at C:\git\PEspAGV-Firmware/src/omotor/omotor.h:101
0x4008b3dd: vPortTaskWrapper at C:\Users\glmne\.platformio\packages\framework-espidf\components\freertos\FreeRTOS-Kernel\portable\xtensa/port.c:151

The point where I hand over to esp-idf is clearly at i2c_master_cmd_begin

That line looks like this:

Code: Select all

  auto ret = i2c_master_cmd_begin(I2C_PORT, cmd, 50 / portTICK_PERIOD_MS);
i2c.c:1529 is this:

Code: Select all

    //start send commands, at most 32 bytes one time, isr handler will process the remaining commands.
    i2c_master_cmd_begin_static(i2c_num, NULL);
Any idea why this might be happening?
I'm not using I2C from different tasks, this node is using wired ethernet via lan8720 (wifi disabled), it does udp communicaiton (tcp listeners setup but no connection attempted) also simple gpio is used, pcnt is used too.

Who is online

Users browsing this forum: Bing [Bot] and 74 guests