Page 1 of 1

esp32s2 中 FREERTOS 时钟源问题

Posted: Wed Jul 14, 2021 6:16 am
by yogi_yi
从 MENUCONFIG 看到 freertos 的 TICK 时钟源 默认来自 timer0 , 也可选择TIMER1 。 看文档介绍 ESP32S2 中有 systimer 作用是专用于操作系统的 。 那么为什么FREERTOS 不是用SYSTIMER 做TICK的时钟源呢? 或者我对这几个时钟的作用理解是否还存在误区。 能帮解答一下吗?

Re: esp32s2 中 FREERTOS 时钟源问题

Posted: Wed Jul 14, 2021 7:33 am
by ESP_Gargamel
ESP32-S2 应该是继承了 ESP32 的做法,理论上是可以使用 systimer。ESP32-C3 已经使用 systimer 做 tick source 了,你可以看下。

Re: esp32s2 中 FREERTOS 时钟源问题

Posted: Wed Jul 21, 2021 7:04 am
by yogi_yi
ESP32S FREERTOS 时钟 tick 采用的是哪个时钟组?

Re: esp32s2 中 FREERTOS 时钟源问题

Posted: Thu Jul 22, 2021 3:58 am
by ESP_Gargamel
如你之前所说,默认使用的 timer0,也可以在 menuconfig 里选择使用 timer1。

Re: esp32s2 中 FREERTOS 时钟源问题

Posted: Thu Jul 22, 2021 9:01 am
by yogi_yi
我想问的是 哪个时钟组 TIMER GROUP
看到某资料
由于 ESP-IDF 基于的 FreeRTOS 最大的时钟频率为 1 kHz,当需要生成更精确的时钟中断时(比如每 100 us 产生一个中断)可使用 ESP32 的 timer group。
很显然我如果这样将timer GROUP 例程 中的
#define TIMER_INTERVAL0_SEC (0.0001)
#define TIMER_INTERVAL1_SEC (5)
如此设置, 程序不能再进入 5S 的timer 进程中

Re: esp32s2 中 FREERTOS 时钟源问题

Posted: Fri Jul 23, 2021 7:46 am
by ESP_Gargamel
这个实际不是用的 timer group,而是 xtensa CPU 内核里的 timer,比较器。