Merge branch 'feature/add_run_time_counter_type_option' into 'master'

feat(freertos/idf): Add configRUN_TIME_COUNTER_TYPE option

Closes IDFGH-10757

See merge request espressif/esp-idf!26704
This commit is contained in:
Darian 2023-11-01 17:07:11 +08:00
commit 7baebd4ae3
6 changed files with 30 additions and 3 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

View File

@ -53,7 +53,7 @@ static esp_err_t print_real_time_stats(TickType_t xTicksToWait)
{
TaskStatus_t *start_array = NULL, *end_array = NULL;
UBaseType_t start_array_size, end_array_size;
uint32_t start_run_time, end_run_time;
configRUN_TIME_COUNTER_TYPE start_run_time, end_run_time;
esp_err_t ret;
//Allocate array to store current task states

View File

@ -1,2 +0,0 @@
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y

View File

@ -1,2 +1,3 @@
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
CONFIG_FREERTOS_RUN_TIME_COUNTER_TYPE_U64=y