Skip to content

Commit

Permalink
Merge branch 'feature/add_run_time_counter_type_option_v5.2' into 're…
Browse files Browse the repository at this point in the history
…lease/v5.2'

feat(freertos/idf): Add configRUN_TIME_COUNTER_TYPE option (v5.2)

See merge request espressif/esp-idf!26848
  • Loading branch information
ESP-Marius committed Nov 17, 2023
2 parents 9d694e4 + 2d07e3a commit 3d591c5
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 3 deletions.
19 changes: 19 additions & 0 deletions components/freertos/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
8 changes: 8 additions & 0 deletions components/freertos/config/include/freertos/FreeRTOSConfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 0 additions & 2 deletions examples/system/freertos/real_time_stats/sdkconfig.ci
Original file line number Diff line number Diff line change
@@ -1,2 +0,0 @@
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 3d591c5

Please sign in to comment.