Interrupt wdt timeout on CPU0

Maple_Leaf
Posts: 19
Joined: Mon Aug 24, 2020 8:38 am

Interrupt wdt timeout on CPU0

Postby Maple_Leaf » Tue Aug 25, 2020 6:50 am

我每个功能模块的代码分开运行都没问题,现在合并到一块运行提示Guru Meditation Error: Core 0 panic'ed (Interrupt wdt timeout on CPU0),这是什么原因呢?要怎样解决?有哪位技术大佬能指导一下吗?

Example timer with auto reload
Group[0], timer[1] alarm event
Guru Meditation Error: Core 0 panic'ed (Interrupt wdt timeout on CPU0)
Core 0 register dump:
PC : 0x400d44d4 PS : 0x00060034 A0 : 0x80082cfc A1 : 0x3ffbe1f0
0x400d44d4: shuaxin_led_display at c:\users\dell\desktop\bt_spp_acceptor\build/../main/example_spp_acceptor_demo.c:291

A2 : 0x000000ff A3 : 0x000000b9 A4 : 0x00000000 A5 : 0x00000000
A6 : 0x3ffbd104 A7 : 0x00060021 A8 : 0x800d45fe A9 : 0x3ffbe1c0
A10 : 0x00000000 A11 : 0x3ff44000 A12 : 0x00060021 A13 : 0x3ffbbc10
A14 : 0x00000003 A15 : 0x00060523 SAR : 0x0000001b EXCCAUSE: 0x00000005
EXCVADDR: 0x00000000 LBEG : 0x4000c2e0 LEND : 0x4000c2f6 LCOUNT : 0x00000000
Core 0 was running in ISR context:
EPC1 : 0x400e5bf2 EPC2 : 0x00000000 EPC3 : 0x00000000 EPC4 : 0x400d44d4
0x400e5bf2: esp_pm_impl_waiti at C:/Users/DELL/Desktop/esp-idf/components/esp32/pm_esp32.c:486

0x400d44d4: shuaxin_led_display at c:\users\dell\desktop\bt_spp_acceptor\build/../main/example_spp_acceptor_demo.c:291


ELF file SHA256: a9ce5f28589a4e0a

Backtrace: 0x400d44d1:0x3ffbe1f0 0x40082cf9:0x3ffbe210 0x400828d1:0x3ffbe250 0x400e5bef:0x3ffbbc70 0x400d20d7:0x3ffbbc90 0x400890ea:0x3ffbbcb0 0x400875e1:0x3ffbbcd0
0x400d44d1: shuaxin_led_display at c:\users\dell\desktop\bt_spp_acceptor\build/../main/example_spp_acceptor_demo.c:285

0x40082cf9: timer_group0_isr at c:\users\dell\desktop\bt_spp_acceptor\build/../main/example_spp_acceptor_demo.c:357

0x400828d1: _xt_lowint1 at C:/Users/DELL/Desktop/esp-idf/components/freertos/xtensa_vectors.S:1153

0x400e5bef: esp_pm_impl_waiti at C:/Users/DELL/Desktop/esp-idf/components/esp32/pm_esp32.c:484

0x400d20d7: esp_vApplicationIdleHook at C:/Users/DELL/Desktop/esp-idf/components/esp_common/src/freertos_hooks.c:63

0x400890ea: prvIdleTask at C:/Users/DELL/Desktop/esp-idf/components/freertos/tasks.c:3382 (discriminator 1)

0x400875e1: vPortTaskWrapper at C:/Users/DELL/Desktop/esp-idf/components/freertos/port.c:143


Core 1 register dump:
PC : 0x400e5bf2 PS : 0x00060d34 A0 : 0x800d20da A1 : 0x3ffbc3d0
0x400e5bf2: esp_pm_impl_waiti at C:/Users/DELL/Desktop/esp-idf/components/esp32/pm_esp32.c:486

A2 : 0x00000000 A3 : 0x00000000 A4 : 0x00000001 A5 : 0x80000001
A6 : 0x00000003 A7 : 0x00060023 A8 : 0x800d1ad2 A9 : 0x3ffbc3a0
A10 : 0x00000000 A11 : 0x00060223 A12 : 0x00060220 A13 : 0x00000001
A14 : 0x00060220 A15 : 0x3ffbd300 SAR : 0x00000000 EXCCAUSE: 0x00000005
EXCVADDR: 0x00000000 LBEG : 0x00000000 LEND : 0x00000000 LCOUNT : 0x00000000

ELF file SHA256: a9ce5f28589a4e0a

Backtrace: 0x400e5bef:0x3ffbc3d0 0x400d20d7:0x3ffbc3f0 0x400890ea:0x3ffbc410 0x400875e1:0x3ffbc430
0x400e5bef: esp_pm_impl_waiti at C:/Users/DELL/Desktop/esp-idf/components/esp32/pm_esp32.c:484

0x400d20d7: esp_vApplicationIdleHook at C:/Users/DELL/Desktop/esp-idf/components/esp_common/src/freertos_hooks.c:63

0x400890ea: prvIdleTask at C:/Users/DELL/Desktop/esp-idf/components/freertos/tasks.c:3382 (discriminator 1)

0x400875e1: vPortTaskWrapper at C:/Users/DELL/Desktop/esp-idf/components/freertos/port.c:143

Maple_Leaf
Posts: 19
Joined: Mon Aug 24, 2020 8:38 am

Re: Interrupt wdt timeout on CPU0

Postby Maple_Leaf » Fri Aug 28, 2020 10:49 am

将代码修改完善了下,现在运行的时候,不会一直出现了,但有的时候还是猛的一下会跳出来刷刷存在感。请问有人遇到过同样的问题吗?希望能够指导一下!谢谢!

ESP_morris
Posts: 290
Joined: Wed Sep 05, 2018 6:23 am

Re: Interrupt wdt timeout on CPU0

Postby ESP_morris » Mon Aug 31, 2020 4:00 am

panic提示timer_group0_isr是触发中断看门狗超时的来源,检查一下这个函数是否会导致长时间占用CPU

Maple_Leaf
Posts: 19
Joined: Mon Aug 24, 2020 8:38 am

Re: Interrupt wdt timeout on CPU0

Postby Maple_Leaf » Mon Aug 31, 2020 10:06 am

问题已解决,现在我在menuconfig中更改了一下配置,让蓝牙在cpu1中运行,之前默认是在cpu0中运行,已经不再提示Interrupt wdt timeout on CPU0

Maple_Leaf
Posts: 19
Joined: Mon Aug 24, 2020 8:38 am

Re: Interrupt wdt timeout on CPU0

Postby Maple_Leaf » Mon Aug 31, 2020 10:17 am

之前我想用 vTaskDelay(2 / portTICK_PERIOD_MS)实现2ms的低延时,发现会触发task wdt timeout,测试了一下,发现小于10ms的都会触发task wdt timeout,无奈之下选择了timer_group0_isr实现2ms的中断延时。如果用vTaskDelay这个函数要实现低延时,要怎么办呢?

ESP_morris
Posts: 290
Joined: Wed Sep 05, 2018 6:23 am

Re: Interrupt wdt timeout on CPU0

Postby ESP_morris » Tue Sep 01, 2020 3:00 am

默认条件下,OS tick的周期是10ms,所以通过vTaskDelay来延时2ms是做不到的。你可以看看esp_timer的API是否满足你的需求。

Maple_Leaf
Posts: 19
Joined: Mon Aug 24, 2020 8:38 am

Re: Interrupt wdt timeout on CPU0

Postby Maple_Leaf » Wed Sep 16, 2020 2:35 am

如果把 configTICK_RATE_HZ 设为 1000(HZ),时间片长度就是1ms,这样设置对idf有影响吗?需要修改什么别的参数吗?

ESP_TianSW
Posts: 52
Joined: Wed Sep 23, 2020 12:19 pm

Re: Interrupt wdt timeout on CPU0

Postby ESP_TianSW » Thu Sep 24, 2020 7:42 am

configTICK_RATE_HZ是FreeRTOS的时钟Tick的频率,也就是FreeRTOS用到的定时中断的产生频率。这个频率越高则定时的精度越高,但是由此带来的开销也越大。
该值设置为1000(HZ)并不会产生太大影响,只是时间片会变短,时间片太短会导致过多的进程切换,降低了CPU效率。

Who is online

Users browsing this forum: No registered users and 84 guests