我每个功能模块的代码分开运行都没问题,现在合并到一块运行提示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
Interrupt wdt timeout on CPU0
-
- Posts: 19
- Joined: Mon Aug 24, 2020 8:38 am
Re: Interrupt wdt timeout on CPU0
将代码修改完善了下,现在运行的时候,不会一直出现了,但有的时候还是猛的一下会跳出来刷刷存在感。请问有人遇到过同样的问题吗?希望能够指导一下!谢谢!
-
- Posts: 290
- Joined: Wed Sep 05, 2018 6:23 am
Re: Interrupt wdt timeout on CPU0
panic提示timer_group0_isr是触发中断看门狗超时的来源,检查一下这个函数是否会导致长时间占用CPU
-
- Posts: 19
- Joined: Mon Aug 24, 2020 8:38 am
Re: Interrupt wdt timeout on CPU0
问题已解决,现在我在menuconfig中更改了一下配置,让蓝牙在cpu1中运行,之前默认是在cpu0中运行,已经不再提示Interrupt wdt timeout on CPU0
-
- Posts: 19
- Joined: Mon Aug 24, 2020 8:38 am
Re: Interrupt wdt timeout on CPU0
之前我想用 vTaskDelay(2 / portTICK_PERIOD_MS)实现2ms的低延时,发现会触发task wdt timeout,测试了一下,发现小于10ms的都会触发task wdt timeout,无奈之下选择了timer_group0_isr实现2ms的中断延时。如果用vTaskDelay这个函数要实现低延时,要怎么办呢?
-
- Posts: 290
- Joined: Wed Sep 05, 2018 6:23 am
Re: Interrupt wdt timeout on CPU0
默认条件下,OS tick的周期是10ms,所以通过vTaskDelay来延时2ms是做不到的。你可以看看esp_timer的API是否满足你的需求。
-
- Posts: 19
- Joined: Mon Aug 24, 2020 8:38 am
Re: Interrupt wdt timeout on CPU0
如果把 configTICK_RATE_HZ 设为 1000(HZ),时间片长度就是1ms,这样设置对idf有影响吗?需要修改什么别的参数吗?
-
- Posts: 52
- Joined: Wed Sep 23, 2020 12:19 pm
Re: Interrupt wdt timeout on CPU0
configTICK_RATE_HZ是FreeRTOS的时钟Tick的频率,也就是FreeRTOS用到的定时中断的产生频率。这个频率越高则定时的精度越高,但是由此带来的开销也越大。
该值设置为1000(HZ)并不会产生太大影响,只是时间片会变短,时间片太短会导致过多的进程切换,降低了CPU效率。
该值设置为1000(HZ)并不会产生太大影响,只是时间片会变短,时间片太短会导致过多的进程切换,降低了CPU效率。
Who is online
Users browsing this forum: No registered users and 101 guests