Просмотр исходного кода

Merge branch 'bugfix/systick_loop' into 'master'

freertos: Fix Systick stuck when systimer was not reset

Closes WIFI-6052

See merge request espressif/esp-idf!24306
Konstantin Kondrashov 2 лет назад
Родитель
Сommit
f29cff3243
1 измененных файлов с 3 добавлено и 0 удалено
  1. 3 0
      components/freertos/port_systick.c

+ 3 - 0
components/freertos/port_systick.c

@@ -78,7 +78,10 @@ void vSystimerSetup(void)
         systimer_ll_apply_counter_value(systimer_hal.dev, SYSTIMER_COUNTER_OS_TICK);
 
         for (cpuid = 0; cpuid < SOC_CPU_CORES_NUM; cpuid++) {
+            // Set stall option and alarm mode to default state. Below they will be set to a required state.
             systimer_hal_counter_can_stall_by_cpu(&systimer_hal, SYSTIMER_COUNTER_OS_TICK, cpuid, false);
+            uint32_t alarm_id = SYSTIMER_ALARM_OS_TICK_CORE0 + cpuid;
+            systimer_hal_select_alarm_mode(&systimer_hal, alarm_id, SYSTIMER_ALARM_MODE_ONESHOT);
         }
 
         for (cpuid = 0; cpuid < portNUM_PROCESSORS; ++cpuid) {