Bläddra i källkod

feat(freertos/idf): Add configRUN_TIME_COUNTER_TYPE option

This commit adds a Kconfig option for configRUN_TIME_COUNTER_TYPE

Closes https://github.com/espressif/esp-idf/issues/11973
Darian Leung 2 år sedan
förälder
incheckning
b301f175c9

+ 19 - 0
components/freertos/Kconfig

@@ -244,6 +244,25 @@ menu "FreeRTOS"
 
                 Note: The clock used for run time statistics can be configured in FREERTOS_RUN_TIME_STATS_CLK.
 
+        choice FREERTOS_RUN_TIME_COUNTER_TYPE
+            prompt "configRUN_TIME_COUNTER_TYPE"
+            depends on FREERTOS_GENERATE_RUN_TIME_STATS && !FREERTOS_SMP
+            default FREERTOS_RUN_TIME_COUNTER_TYPE_U32
+            help
+                Sets the data type used for the FreeRTOS run time stats. A larger data type can be used to reduce the
+                frequency of the counter overflowing.
+
+            config FREERTOS_RUN_TIME_COUNTER_TYPE_U32
+                bool "uint32_t"
+                help
+                    configRUN_TIME_COUNTER_TYPE is set to uint32_t
+
+            config FREERTOS_RUN_TIME_COUNTER_TYPE_U64
+                bool "uint64_t"
+                help
+                    configRUN_TIME_COUNTER_TYPE is set to uint64_t
+        endchoice # FREERTOS_RUN_TIME_COUNTER_TYPE
+
         config FREERTOS_USE_TICKLESS_IDLE
             # Todo: Currently not supported in SMP FreeRTOS yet (IDF-4986)
             # Todo: Consider whether this option should still be exposed (IDF-4986)

+ 8 - 0
components/freertos/config/include/freertos/FreeRTOSConfig.h

@@ -165,6 +165,14 @@
     #define configUSE_STATS_FORMATTING_FUNCTIONS    1       /* Used by vTaskList() */
 #endif /* CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS */
 
+#if !CONFIG_FREERTOS_SMP
+    #if CONFIG_FREERTOS_RUN_TIME_COUNTER_TYPE_U32
+        #define configRUN_TIME_COUNTER_TYPE    uint32_t
+    #elif CONFIG_FREERTOS_RUN_TIME_COUNTER_TYPE_U64
+        #define configRUN_TIME_COUNTER_TYPE    uint64_t
+    #endif /* CONFIG_FREERTOS_RUN_TIME_COUNTER_TYPE_U64 */
+#endif /* !CONFIG_FREERTOS_SMP */
+
 /* -------------------- Co-routines  ----------------------- */
 
 #define configUSE_CO_ROUTINES              0              /* CO_ROUTINES are not supported in ESP-IDF */

+ 1 - 0
components/freertos/test_apps/freertos/sdkconfig.ci.freertos_options

@@ -13,6 +13,7 @@ CONFIG_FREERTOS_USE_TRACE_FACILITY=y
 CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
 CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID=y
 CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
+CONFIG_FREERTOS_RUN_TIME_COUNTER_TYPE_U64=y
 CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH=y
 CONFIG_FREERTOS_FPU_IN_ISR=y
 CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=2