Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Task WDT on FreeRTOS UniCore reset by task on CPU1 (IDFGH-14839) #15562

Open
2 of 3 tasks
FnxQT opened this issue Mar 12, 2025 · 0 comments
Open
2 of 3 tasks

Task WDT on FreeRTOS UniCore reset by task on CPU1 (IDFGH-14839) #15562

FnxQT opened this issue Mar 12, 2025 · 0 comments
Labels
Status: Opened Issue is new Type: Bug bugs in IDF

Comments

@FnxQT
Copy link

FnxQT commented Mar 12, 2025

Answers checklist.

  • I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
  • I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
  • I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.

v4.4.8

Espressif SoC revision.

ESP32-D0WD-V3

Operating System used.

macOS

How did you build your project?

Command line with idf.py

If you are using Windows, please specify command line type.

None

Development Kit.

Custom Board

Power Supply used.

External 3.3V

What is the expected behavior?

I configured my ESP-IDF with FreeRTOS in unicore mode:

#
# FreeRTOS
#
CONFIG_FREERTOS_UNICORE=y
CONFIG_FREERTOS_CORETIMER_0=y
# CONFIG_FREERTOS_CORETIMER_1 is not set
CONFIG_FREERTOS_HZ=1000
CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION=y
# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set
# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set
CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
CONFIG_FREERTOS_RUN_TIME_STATS_USING_ESP_TIMER=y
# CONFIG_FREERTOS_RUN_TIME_STATS_USING_CPU_CLK is not set
CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID=y

and with a task watchdog timer:

CONFIG_ESP_TASK_WDT_PANIC=y
CONFIG_ESP_TASK_WDT_TIMEOUT_S=30
CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y

So all my tasks are running on core 0. I could verify that. I have four tasks monitored by the task WDT:

I (190908) task_wdt: Tasks monitored by the Task WDT:
I (190908) task_wdt: CPU: CPU 0 - IDLE
I (190908) task_wdt: CPU: CPU 0 - out
I (190908) task_wdt: CPU: CPU 0 - bcmd
I (190908) task_wdt: CPU: CPU 0 - main

All on core 0. In that case, something happening on CPU1 should not bother my system at all.

What is the actual behavior?

The system is reset because an unknown task on CPU1 has reset the watchdog time.

Steps to reproduce.

That's the bad part, I cannot replicate it easily elsewhere. I don't want it treated as a bug immediately but to understand if this behaviour is known or even "correct" ? The task on CPU 1 do not even have a name.

Debug Logs.

That's what I see from the Task WDT reset:

(804763) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:

(804763) task_wdt:  -  (CPU 1)

(804763) task_wdt: Tasks currently running:

(804763) task_wdt: CPU 0: IDLE

(804763) task_wdt: Aborting.

abort() was called at PC 0x401581a9 on core 0

More Information.

Unfortunately I could not update all my project to IDF v5 to try and replicate the issue. However I wouldn't want a fix but rather an explanation if possible.

@FnxQT FnxQT added the Type: Bug bugs in IDF label Mar 12, 2025
@github-actions github-actions bot changed the title Task WDT on FreeRTOS UniCore reset by task on CPU1 Task WDT on FreeRTOS UniCore reset by task on CPU1 (IDFGH-14839) Mar 12, 2025
@espressif-bot espressif-bot added the Status: Opened Issue is new label Mar 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Opened Issue is new Type: Bug bugs in IDF
Projects
None yet
Development

No branches or pull requests

2 participants