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

soc: introduce hal function for cpu delay

Renz Bagaporo 6 лет назад
Родитель
Сommit
39ef904fba
2 измененных файлов с 20 добавлено и 0 удалено
  1. 7 0
      components/soc/include/hal/cpu_hal.h
  2. 13 0
      components/soc/src/hal/cpu_hal.c

+ 7 - 0
components/soc/include/hal/cpu_hal.h

@@ -107,6 +107,13 @@ void cpu_hal_set_watchpoint(int id, const void* addr, size_t size, watchpoint_tr
  */
 void cpu_hal_clear_watchpoint(int id);
 
+/*
+ * Insert a delay.
+ * 
+ * @param delay_us length of delay in microseconds
+ */
+void cpu_hal_delay_us(uint32_t delay_us);
+
 #endif // SOC_CPU_WATCHPOINTS_NUM > 0
 
 /**

+ 13 - 0
components/soc/src/hal/cpu_hal.c

@@ -22,6 +22,14 @@
 
 #include "soc/cpu_caps.h"
 
+#include "sdkconfig.h"
+
+#if CONFIG_IDF_TARGET_ESP32
+#include "esp32/rom/ets_sys.h"
+#elif CONFIG_IDF_TARGET_ESP32S2
+#include "esp32s2/rom/ets_sys.h"
+#endif
+
 #if SOC_CPU_BREAKPOINTS_NUM > 0
 void cpu_hal_set_breakpoint(int id, const void* addr)
 {
@@ -60,3 +68,8 @@ void cpu_hal_set_vecbase(const void* base)
 {
     cpu_ll_set_vecbase(base);
 }
+
+void cpu_hal_delay_us(uint32_t delay_us)
+{
+    ets_delay_us(delay_us);
+}