esp32s2 中 FREERTOS 时钟源问题

yogi_yi
Posts: 65
Joined: Tue May 25, 2021 11:02 am

esp32s2 中 FREERTOS 时钟源问题

Postby yogi_yi » Wed Jul 14, 2021 6:16 am

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

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

Re: esp32s2 中 FREERTOS 时钟源问题

Postby ESP_Gargamel » Wed Jul 14, 2021 7:33 am

ESP32-S2 应该是继承了 ESP32 的做法,理论上是可以使用 systimer。ESP32-C3 已经使用 systimer 做 tick source 了,你可以看下。

yogi_yi
Posts: 65
Joined: Tue May 25, 2021 11:02 am

Re: esp32s2 中 FREERTOS 时钟源问题

Postby yogi_yi » Wed Jul 21, 2021 7:04 am

ESP32S FREERTOS 时钟 tick 采用的是哪个时钟组?

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

Re: esp32s2 中 FREERTOS 时钟源问题

Postby ESP_Gargamel » Thu Jul 22, 2021 3:58 am

如你之前所说,默认使用的 timer0,也可以在 menuconfig 里选择使用 timer1。

yogi_yi
Posts: 65
Joined: Tue May 25, 2021 11:02 am

Re: esp32s2 中 FREERTOS 时钟源问题

Postby yogi_yi » Thu Jul 22, 2021 9:01 am

我想问的是 哪个时钟组 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 进程中

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

Re: esp32s2 中 FREERTOS 时钟源问题

Postby ESP_Gargamel » Fri Jul 23, 2021 7:46 am

这个实际不是用的 timer group,而是 xtensa CPU 内核里的 timer,比较器。

Who is online

Users browsing this forum: No registered users and 47 guests