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
This commit is contained in:
Darian Leung
2023-10-26 22:41:36 +08:00
parent 7bbe4eae46
commit d0aa950fa6
3 changed files with 28 additions and 0 deletions

View File

@ -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)

View File

@ -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 */

View File

@ -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