diff --git a/components/driver/test/test_timer.c b/components/driver/test/test_timer.c index 9ca5f1185e..867f7bd2eb 100644 --- a/components/driver/test/test_timer.c +++ b/components/driver/test/test_timer.c @@ -7,10 +7,9 @@ #include "nvs_flash.h" #include "driver/timer.h" #include "soc/rtc.h" +#include "soc/soc_caps.h" #include "esp_rom_sys.h" -#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S3) - #define TIMER_DIVIDER 16 #define TIMER_SCALE (TIMER_BASE_CLK / TIMER_DIVIDER) /*!< used to calculate counter value */ #define TIMER_DELTA 0.001 @@ -38,13 +37,15 @@ static timer_info_t timer_info[4] = { TIMER_INFO_INIT(TIMER_GROUP_1, TIMER_1), }; -#define GET_TIMER_INFO(TG, TID) (&timer_info[(TG)*2+(TID)]) +static intr_handle_t timer_isr_handles[SOC_TIMER_GROUP_TOTAL_TIMERS]; + +#define GET_TIMER_INFO(TG, TID) (&timer_info[(TG)*SOC_TIMER_GROUP_TIMERS_PER_GROUP+(TID)]) // timer group interruption handle callback static bool test_timer_group_isr_cb(void *arg) { bool is_awoken = false; - timer_info_t* info = (timer_info_t*) arg; + timer_info_t *info = (timer_info_t *) arg; const timer_group_t timer_group = info->timer_group; const timer_idx_t timer_idx = info->timer_idx; uint64_t timer_val; @@ -74,7 +75,9 @@ static bool test_timer_group_isr_cb(void *arg) BaseType_t awoken = pdFALSE; BaseType_t ret = xQueueSendFromISR(timer_queue, &evt, &awoken); TEST_ASSERT_EQUAL(pdTRUE, ret); - if (awoken) is_awoken = true; + if (awoken) { + is_awoken = true; + } } return is_awoken; } @@ -90,8 +93,8 @@ static void test_timer_group_isr(void *arg) // initialize all timer static void all_timer_init(timer_config_t *config, bool expect_init) { - for (uint32_t tg_idx=0; tg_idxhal), &div); *time = (double)timer_val * div / rtc_clk_apb_freq_get(); -#ifdef SOC_TIMER_GROUP_SUPPORT_XTAL +#if SOC_TIMER_GROUP_SUPPORT_XTAL if (timer_hal_get_use_xtal(&(p_timer_obj[group_num][timer_num]->hal))) { *time = (double)timer_val * div / ((int)rtc_clk_xtal_freq_get() * 1000000); } @@ -302,7 +302,7 @@ esp_err_t timer_init(timer_group_t group_num, timer_idx_t timer_num, const timer ESP_LOGW(TIMER_TAG, "only support Level Interrupt, switch to Level Interrupt instead"); } timer_hal_set_counter_enable(&(p_timer_obj[group_num][timer_num]->hal), config->counter_en); -#ifdef SOC_TIMER_GROUP_SUPPORT_XTAL +#if SOC_TIMER_GROUP_SUPPORT_XTAL timer_hal_set_use_xtal(&(p_timer_obj[group_num][timer_num]->hal), config->clk_src); #endif TIMER_EXIT_CRITICAL(&timer_spinlock[group_num]);