Merge branch 'refactor/freertos_config_files' into 'master'

FreeRTOS: Combine FreeRTOSConfig.h

Closes IDF-6082

See merge request espressif/esp-idf!22815
This commit is contained in:
Darian
2023-03-22 22:01:37 +08:00
15 changed files with 391 additions and 865 deletions

View File

@@ -33,10 +33,11 @@ set(srcs
set(include_dirs set(include_dirs
"${kernel_dir}/include" # FreeRTOS headers via #include "freertos/xxx.h" "${kernel_dir}/include" # FreeRTOS headers via #include "freertos/xxx.h"
"${kernel_dir}/portable/${arch}/include" # For arch-specific FreeRTOSConfig_arch.h in portable/<arch>/include "${kernel_dir}/portable/${arch}/include" # For arch-specific #include "freertos/portmacro.h"
"esp_additions/include/freertos" # For files with #include "FreeRTOSConfig.h" "esp_additions/include/freertos" # For files with #include "FreeRTOSConfig.h"
"esp_additions/include") # For files with #include "freertos/FreeRTOSConfig.h" "esp_additions/include" # For files with #include "freertos/FreeRTOSConfig.h"
# or #include "freertos/task_snapshot.h" # or #include "freertos/task_snapshot.h"
"esp_additions/arch/${arch}/include") # For #include "freertos/FreeRTOSConfig_arch.h"
set(private_include_dirs set(private_include_dirs
"${kernel_dir}/portable/${arch}/include/freertos" "${kernel_dir}/portable/${arch}/include/freertos"

View File

@@ -1,274 +0,0 @@
/*
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef FREERTOS_CONFIG_SMP_H
#define FREERTOS_CONFIG_SMP_H
#include "sdkconfig.h"
/*
This file get's pulled into assembly sources. Therefore, some includes need to be wrapped in #ifndef __ASSEMBLER__
*/
#ifndef __ASSEMBLER__
#include <assert.h> //For configASSERT()
#endif /* def __ASSEMBLER__ */
/* ------------------------------------------------ ESP-IDF Additions --------------------------------------------------
*
* ------------------------------------------------------------------------------------------------------------------ */
#ifndef configISR_STACK_SIZE
#define configISR_STACK_SIZE (CONFIG_FREERTOS_ISR_STACKSIZE)
#endif
/* ----------------------------------------------------- Helpers -------------------------------------------------------
* - Macros that the FreeRTOS configuration macros depend on
* ------------------------------------------------------------------------------------------------------------------ */
/* Higher stack checker modes cause overhead on each function call */
#if CONFIG_STACK_CHECK_ALL || CONFIG_STACK_CHECK_STRONG
#define STACK_OVERHEAD_CHECKER 256
#else
#define STACK_OVERHEAD_CHECKER 0
#endif
/* with optimizations disabled, scheduler uses additional stack */
#if CONFIG_COMPILER_OPTIMIZATION_NONE
#define STACK_OVERHEAD_OPTIMIZATION 320
#else
#define STACK_OVERHEAD_OPTIMIZATION 0
#endif
/* apptrace mdule increases minimum stack usage */
#if CONFIG_APPTRACE_ENABLE
#define STACK_OVERHEAD_APPTRACE 1280
#else
#define STACK_OVERHEAD_APPTRACE 0
#endif
/* Stack watchpoint decreases minimum usable stack size by up to 60 bytes.
See FreeRTOS FREERTOS_WATCHPOINT_END_OF_STACK option in Kconfig. */
#if CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK
#define STACK_OVERHEAD_WATCHPOINT 60
#else
#define STACK_OVERHEAD_WATCHPOINT 0
#endif
#define configSTACK_OVERHEAD_TOTAL ( \
STACK_OVERHEAD_CHECKER + \
STACK_OVERHEAD_OPTIMIZATION + \
STACK_OVERHEAD_APPTRACE + \
STACK_OVERHEAD_WATCHPOINT \
)
/* ----------------------------------------------------- Helpers -------------------------------------------------------
* - Macros that the FreeRTOS configuration macros depend on
* ------------------------------------------------------------------------------------------------------------------ */
/* ------------------------------------------------- FreeRTOS Config ---------------------------------------------------
* - All Vanilla FreeRTOS configuration goes into this section
* - Keep this section in-sync with the corresponding version of single-core upstream version of FreeRTOS
* - Don't put any SMP or ESP-IDF exclusive FreeRTOS configurations here. Those go into the next section
* - Not all FreeRTOS configuration are listed. Some configurations have default values set in FreeRTOS.h thus don't
* need to be explicitly defined.
* ------------------------------------------------------------------------------------------------------------------ */
/*-----------------------------------------------------------
* Application specific definitions.
*
* These definitions should be adjusted for your particular hardware and
* application requirements.
*
* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
*
* See http://www.freertos.org/a00110.html
*----------------------------------------------------------*/
// ------------------ Scheduler Related --------------------
#define configUSE_PREEMPTION 1
#define configUSE_TASK_PREEMPTION_DISABLE 1
#define configUSE_TICKLESS_IDLE 0
#define configCPU_CLOCK_HZ (CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ * 1000000)
#define configTICK_RATE_HZ CONFIG_FREERTOS_HZ
#define configMAX_PRIORITIES ( 25 ) //This has impact on speed of search for highest priority
#define configMINIMAL_STACK_SIZE ( CONFIG_FREERTOS_IDLE_TASK_STACKSIZE + configSTACK_OVERHEAD_TOTAL )
#define configUSE_TIME_SLICING 1
#define configUSE_16_BIT_TICKS 0
#define configIDLE_SHOULD_YIELD 0 //Todo: Check this
#define configKERNEL_INTERRUPT_PRIORITY 1 //Todo: This currently isn't used anywhere
#if __XTENSA__
#define configMAX_API_CALL_INTERRUPT_PRIORITY XCHAL_EXCM_LEVEL
#else // RISC-V
#define configMAX_API_CALL_INTERRUPT_PRIORITY 0
#endif // __XTENSA__
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 0 //SMP currently does not support optimized selection
// -------------------- FreeRTOS SMP -----------------------
#ifdef CONFIG_FREERTOS_UNICORE
#define configNUM_CORES 1
#else
#define configNUM_CORES 2
#endif
#define configUSE_CORE_AFFINITY 1
#define configRUN_MULTIPLE_PRIORITIES 1
#define configUSE_MINIMAL_IDLE_HOOK 1 // This is always enabled to call IDF style idle hooks, by can be "--Wl,--wrap" if users enable CONFIG_FREERTOS_USE_MINIMAL_IDLE_HOOK
// ------------- Synchronization Primitives ----------------
#define configUSE_MUTEXES 1
#define configUSE_RECURSIVE_MUTEXES 1
#define configUSE_COUNTING_SEMAPHORES 1
#define configUSE_QUEUE_SETS 1
#define configQUEUE_REGISTRY_SIZE CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE
#define configUSE_TASK_NOTIFICATIONS 1
#define configTASK_NOTIFICATION_ARRAY_ENTRIES CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES
// ----------------------- System --------------------------
#define configMAX_TASK_NAME_LEN CONFIG_FREERTOS_MAX_TASK_NAME_LEN
#if ( CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS )
/* If thread local storage pointer deletion callbacks are registered
* then we double the storage space reserved for the thread local
* storage pointers in the task TCB. The first half of the storage area
* is used to store the TLS pointers themselves while the second half
* is used to store the respective deletion callbacks.
*/
#define configNUM_THREAD_LOCAL_STORAGE_POINTERS ( CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS * 2 )
#else
#define configNUM_THREAD_LOCAL_STORAGE_POINTERS CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS
#endif // CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS
#define configSTACK_DEPTH_TYPE uint32_t
#define configUSE_NEWLIB_REENTRANT 1
#define configNEWLIB_REENTRANT_IS_DYNAMIC 1 // IDF Newlib supports dynamic reentrancy.
// We provide our own __getreent() function
#define configENABLE_BACKWARD_COMPATIBILITY 0
#define configASSERT(a) assert(a)
#define configINCLUDE_FREERTOS_TASK_C_ADDITIONS_H 1
// ----------------------- Memory -------------------------
#define configSUPPORT_STATIC_ALLOCATION 1
#define configSUPPORT_DYNAMIC_ALLOCATION 1
//We define the heap to span all of the non-statically-allocated shared RAM. ToDo: Make sure there
//is some space left for the app and main cpu when running outside of a thread.
#define configTOTAL_HEAP_SIZE (&_heap_end - &_heap_start)//( ( size_t ) (64 * 1024) )
#define configAPPLICATION_ALLOCATED_HEAP 1
#define configSTACK_ALLOCATION_FROM_SEPARATE_HEAP 0 //Todo: Check this
// ------------------------ Hooks --------------------------
#if CONFIG_FREERTOS_USE_IDLE_HOOK
#define configUSE_IDLE_HOOK 1
#else
#define configUSE_IDLE_HOOK 0
#endif
#define configUSE_TICK_HOOK 1
#if CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE
#define configCHECK_FOR_STACK_OVERFLOW 0
#elif CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL
#define configCHECK_FOR_STACK_OVERFLOW 1
#elif CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY
#define configCHECK_FOR_STACK_OVERFLOW 2
#endif
#define configRECORD_STACK_HIGH_ADDRESS 1 // This must be set as the port requires TCB.pxEndOfStack
// ------------------- Run-time Stats ----------------------
#ifdef CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS
#define configGENERATE_RUN_TIME_STATS 1 /* Used by vTaskGetRunTimeStats() */
#endif
#ifdef CONFIG_FREERTOS_USE_TRACE_FACILITY
#define configUSE_TRACE_FACILITY 1 /* Used by uxTaskGetSystemState(), and other trace facility functions */
#endif
#ifdef CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS
#define configUSE_STATS_FORMATTING_FUNCTIONS 1 /* Used by vTaskList() */
#endif
// -------------------- Co-routines -----------------------
#define configUSE_CO_ROUTINES 0
#define configMAX_CO_ROUTINE_PRIORITIES 2
// ------------------- Software Timer ----------------------
#define configUSE_TIMERS 1
#define configTIMER_TASK_PRIORITY CONFIG_FREERTOS_TIMER_TASK_PRIORITY
#define configTIMER_QUEUE_LENGTH CONFIG_FREERTOS_TIMER_QUEUE_LENGTH
#define configTIMER_TASK_STACK_DEPTH CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH
// -------------------- API Includes -----------------------
#define configENABLE_BACKWARD_COMPATIBILITY 0
#define INCLUDE_vTaskPrioritySet 1
#define INCLUDE_uxTaskPriorityGet 1
#define INCLUDE_vTaskDelete 1
#define INCLUDE_vTaskSuspend 1
#define INCLUDE_xTaskDelayUntil 1
#define INCLUDE_vTaskDelay 1
#define INCLUDE_xTaskGetIdleTaskHandle 1
#define INCLUDE_xTaskAbortDelay 1
#define INCLUDE_xSemaphoreGetMutexHolder 1
#define INCLUDE_xTaskGetHandle 1
#define INCLUDE_uxTaskGetStackHighWaterMark 1
#define INCLUDE_uxTaskGetStackHighWaterMark2 0
#define INCLUDE_eTaskGetState 1
#define INCLUDE_xTaskResumeFromISR 1
#define INCLUDE_xTimerPendFunctionCall 1
#define INCLUDE_xTaskGetSchedulerState 1
#define INCLUDE_xTaskGetCurrentTaskHandle 1
// -------------------- Trace Macros -----------------------
/*
For trace macros.
Note: Include trace macros here and not above as trace macros are dependent on some of the FreeRTOS configs
*/
#ifndef __ASSEMBLER__
#if CONFIG_SYSVIEW_ENABLE
#include "SEGGER_SYSVIEW_FreeRTOS.h"
#undef INLINE // to avoid redefinition
#endif //CONFIG_SYSVIEW_ENABLE
#endif /* def __ASSEMBLER__ */
/*
Default values for trace macros added by ESP-IDF and are not part of Vanilla FreeRTOS
*/
#ifndef traceISR_EXIT
#define traceISR_EXIT()
#endif
#ifndef traceISR_ENTER
#define traceISR_ENTER(_n_)
#endif
#ifndef traceQUEUE_GIVE_FROM_ISR
#define traceQUEUE_GIVE_FROM_ISR( pxQueue )
#endif
#ifndef traceQUEUE_GIVE_FROM_ISR_FAILED
#define traceQUEUE_GIVE_FROM_ISR_FAILED( pxQueue )
#endif
#ifndef traceQUEUE_SEMAPHORE_RECEIVE
#define traceQUEUE_SEMAPHORE_RECEIVE( pxQueue )
#endif
/* ------------------------------------------------ IDF Compatibility --------------------------------------------------
* - We need these in order for ESP-IDF to compile
* ------------------------------------------------------------------------------------------------------------------ */
#define portNUM_PROCESSORS configNUM_CORES
#ifdef CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID
#define configTASKLIST_INCLUDE_COREID 1
#endif
#endif /* FREERTOS_CONFIG_SMP_H */

View File

@@ -205,7 +205,7 @@ extern void vTaskExitCritical( void );
#define portALT_GET_RUN_TIME_COUNTER_VALUE(x) do {x = (uint32_t)esp_timer_get_time();} while(0) #define portALT_GET_RUN_TIME_COUNTER_VALUE(x) do {x = (uint32_t)esp_timer_get_time();} while(0)
#endif #endif
// ------------------- TCB Cleanup ---------------------- // --------------------- TCB Cleanup -----------------------
#define portCLEAN_UP_TCB( pxTCB ) vPortCleanUpTCB( pxTCB ) #define portCLEAN_UP_TCB( pxTCB ) vPortCleanUpTCB( pxTCB )
@@ -315,7 +315,7 @@ bool xPortcheckValidStackMem(const void *ptr);
/* ------------------------------------------------------ Misc --------------------------------------------------------- /* ------------------------------------------------------ Misc ---------------------------------------------------------
* - Miscellaneous porting macros * - Miscellaneous porting macros
* - These are not port of the FreeRTOS porting interface, but are used by other FreeRTOS dependent components * - These are not part of the FreeRTOS porting interface, but are used by other FreeRTOS dependent components
* ------------------------------------------------------------------------------------------------------------------ */ * ------------------------------------------------------------------------------------------------------------------ */
// --------------------- App-Trace ------------------------- // --------------------- App-Trace -------------------------

View File

@@ -1,315 +0,0 @@
/*
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef FREERTOS_CONFIG_SMP_H
#define FREERTOS_CONFIG_SMP_H
#include "sdkconfig.h"
/*
This file get's pulled into assembly sources. Therefore, some includes need to be wrapped in #ifndef __ASSEMBLER__
*/
#ifndef __ASSEMBLER__
#include <assert.h> //For configASSERT()
#endif /* def __ASSEMBLER__ */
/* Required for configuration-dependent settings. */
#include "xtensa_config.h"
/* -------------------------------------------- Xtensa Additional Config ----------------------------------------------
* - Provide Xtensa definitions usually given by -D option when building with xt-make (see readme_xtensa.txt)
* - xtensa_rtos.h and xtensa_timer.h will default some of these values
* - XT_SIMULATOR configXT_SIMULATOR
* - XT_BOARD configXT_BOARD
* - XT_CLOCK_FREQ Should not be defined as we are using XT_BOARD mode
* - XT_TICK_PER_SEC Defaults to configTICK_RATE_HZ
* - XT_TIMER_INDEX Defaults to configXT_TIMER_INDEX
* - XT_INTEXC_HOOKS Defaults to configXT_INTEXC_HOOKS
* - XT_USE_OVLY We don't define this (unused)
* - XT_USE_SWPRI We don't define this (unused)
* ------------------------------------------------------------------------------------------------------------------ */
#define configXT_SIMULATOR 0
#define configXT_BOARD 1 /* Board mode */
#if CONFIG_FREERTOS_CORETIMER_0
#define configXT_TIMER_INDEX 0
#elif CONFIG_FREERTOS_CORETIMER_1
#define configXT_TIMER_INDEX 1
#endif
#define configXT_INTEXC_HOOKS 0
#define configBENCHMARK 0
/* ------------------------------------------------ ESP-IDF Additions --------------------------------------------------
*
* ------------------------------------------------------------------------------------------------------------------ */
/* The Xtensa port uses a separate interrupt stack. Adjust the stack size
* to suit the needs of your specific application.
* Size needs to be aligned to the stack increment, since the location of
* the stack for the 2nd CPU will be calculated using configISR_STACK_SIZE.
*/
#define configSTACK_ALIGNMENT 16
#ifndef configISR_STACK_SIZE
#define configISR_STACK_SIZE ((CONFIG_FREERTOS_ISR_STACKSIZE + configSTACK_ALIGNMENT - 1) & (~(configSTACK_ALIGNMENT - 1)))
#endif
/* ----------------------------------------------------- Helpers -------------------------------------------------------
* - Macros that the FreeRTOS configuration macros depend on
* ------------------------------------------------------------------------------------------------------------------ */
/* Higher stack checker modes cause overhead on each function call */
#if CONFIG_STACK_CHECK_ALL || CONFIG_STACK_CHECK_STRONG
#define STACK_OVERHEAD_CHECKER 256
#else
#define STACK_OVERHEAD_CHECKER 0
#endif
/* with optimizations disabled, scheduler uses additional stack */
#if CONFIG_COMPILER_OPTIMIZATION_NONE
#define STACK_OVERHEAD_OPTIMIZATION 320
#else
#define STACK_OVERHEAD_OPTIMIZATION 0
#endif
/* apptrace mdule increases minimum stack usage */
#if CONFIG_APPTRACE_ENABLE
#define STACK_OVERHEAD_APPTRACE 1280
#else
#define STACK_OVERHEAD_APPTRACE 0
#endif
/* Stack watchpoint decreases minimum usable stack size by up to 60 bytes.
See FreeRTOS FREERTOS_WATCHPOINT_END_OF_STACK option in Kconfig. */
#if CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK
#define STACK_OVERHEAD_WATCHPOINT 60
#else
#define STACK_OVERHEAD_WATCHPOINT 0
#endif
#define configSTACK_OVERHEAD_TOTAL ( \
STACK_OVERHEAD_CHECKER + \
STACK_OVERHEAD_OPTIMIZATION + \
STACK_OVERHEAD_APPTRACE + \
STACK_OVERHEAD_WATCHPOINT \
)
/* ----------------------------------------------------- Helpers -------------------------------------------------------
* - Macros that the FreeRTOS configuration macros depend on
* ------------------------------------------------------------------------------------------------------------------ */
/* ------------------------------------------------- FreeRTOS Config ---------------------------------------------------
* - All Vanilla FreeRTOS configuration goes into this section
* - Keep this section in-sync with the corresponding version of single-core upstream version of FreeRTOS
* - Don't put any SMP or ESP-IDF exclusive FreeRTOS configurations here. Those go into the next section
* - Not all FreeRTOS configuration are listed. Some configurations have default values set in FreeRTOS.h thus don't
* need to be explicitly defined.
* ------------------------------------------------------------------------------------------------------------------ */
/*-----------------------------------------------------------
* Application specific definitions.
*
* These definitions should be adjusted for your particular hardware and
* application requirements.
*
* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
*
* See http://www.freertos.org/a00110.html
*----------------------------------------------------------*/
// ------------------ Scheduler Related --------------------
#define configUSE_PREEMPTION 1
#define configUSE_TASK_PREEMPTION_DISABLE 1
#define configUSE_TICKLESS_IDLE 0
#define configCPU_CLOCK_HZ (CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ * 1000000)
#define configTICK_RATE_HZ CONFIG_FREERTOS_HZ
#define configMAX_PRIORITIES ( 25 ) //This has impact on speed of search for highest priority
#define configMINIMAL_STACK_SIZE ( CONFIG_FREERTOS_IDLE_TASK_STACKSIZE + configSTACK_OVERHEAD_TOTAL )
#define configUSE_TIME_SLICING 1
#define configUSE_16_BIT_TICKS 0
#define configIDLE_SHOULD_YIELD 0 //Todo: Check this
#define configKERNEL_INTERRUPT_PRIORITY 1 //Todo: This currently isn't used anywhere
#define configMAX_API_CALL_INTERRUPT_PRIORITY XCHAL_EXCM_LEVEL
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 0 //SMP currently does not support optimized selection
// -------------------- FreeRTOS SMP -----------------------
#ifdef CONFIG_FREERTOS_UNICORE
#define configNUM_CORES 1
#else
#define configNUM_CORES 2
#endif
#define configUSE_CORE_AFFINITY 1
#define configRUN_MULTIPLE_PRIORITIES 1
#define configUSE_MINIMAL_IDLE_HOOK 1 // This is always enabled to call IDF style idle hooks, by can be "--Wl,--wrap" if users enable CONFIG_FREERTOS_USE_MINIMAL_IDLE_HOOK
// ------------- Synchronization Primitives ----------------
#define configUSE_MUTEXES 1
#define configUSE_RECURSIVE_MUTEXES 1
#define configUSE_COUNTING_SEMAPHORES 1
#define configUSE_QUEUE_SETS 1
#define configQUEUE_REGISTRY_SIZE CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE
#define configUSE_TASK_NOTIFICATIONS 1
#define configTASK_NOTIFICATION_ARRAY_ENTRIES CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES
// ----------------------- System --------------------------
#define configMAX_TASK_NAME_LEN CONFIG_FREERTOS_MAX_TASK_NAME_LEN
#if ( CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS )
/* If thread local storage pointer deletion callbacks are registered
* then we double the storage space reserved for the thread local
* storage pointers in the task TCB. The first half of the storage area
* is used to store the TLS pointers themselves while the second half
* is used to store the respective deletion callbacks.
*/
#define configNUM_THREAD_LOCAL_STORAGE_POINTERS ( CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS * 2 )
#else
#define configNUM_THREAD_LOCAL_STORAGE_POINTERS CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS
#endif // CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS
#define configSTACK_DEPTH_TYPE uint32_t
#define configUSE_NEWLIB_REENTRANT 1
#define configNEWLIB_REENTRANT_IS_DYNAMIC 1 // IDF Newlib supports dynamic reentrancy. We provide our own __getreent() function
#define configENABLE_BACKWARD_COMPATIBILITY 0
#define configASSERT(a) assert(a)
#define configINCLUDE_FREERTOS_TASK_C_ADDITIONS_H 1
// ----------------------- Memory -------------------------
#define configSUPPORT_STATIC_ALLOCATION 1
#define configSUPPORT_DYNAMIC_ALLOCATION 1
//We define the heap to span all of the non-statically-allocated shared RAM. ToDo: Make sure there
//is some space left for the app and main cpu when running outside of a thread.
#define configTOTAL_HEAP_SIZE (&_heap_end - &_heap_start)//( ( size_t ) (64 * 1024) )
#define configAPPLICATION_ALLOCATED_HEAP 1
#define configSTACK_ALLOCATION_FROM_SEPARATE_HEAP 0 //Todo: Check this
// ------------------------ Hooks --------------------------
#if CONFIG_FREERTOS_USE_IDLE_HOOK
#define configUSE_IDLE_HOOK 1
#else
#define configUSE_IDLE_HOOK 0
#endif
#if CONFIG_FREERTOS_USE_TICK_HOOK
#define configUSE_TICK_HOOK 1
#else
#define configUSE_TICK_HOOK 0
#endif
#if CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE
#define configCHECK_FOR_STACK_OVERFLOW 0
#elif CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL
#define configCHECK_FOR_STACK_OVERFLOW 1
#elif CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY
#define configCHECK_FOR_STACK_OVERFLOW 2
#endif
#define configRECORD_STACK_HIGH_ADDRESS 1 // This must be set as the port requires TCB.pxEndOfStack
// ------------------- Run-time Stats ----------------------
#ifdef CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS
#define configGENERATE_RUN_TIME_STATS 1 /* Used by vTaskGetRunTimeStats() */
#endif
#ifdef CONFIG_FREERTOS_USE_TRACE_FACILITY
#define configUSE_TRACE_FACILITY 1 /* Used by uxTaskGetSystemState(), and other trace facility functions */
#endif
#ifdef CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS
#define configUSE_STATS_FORMATTING_FUNCTIONS 1 /* Used by vTaskList() */
#endif
// -------------------- Co-routines -----------------------
#define configUSE_CO_ROUTINES 0
#define configMAX_CO_ROUTINE_PRIORITIES 2
// ------------------- Software Timer ----------------------
#define configUSE_TIMERS 1
#define configTIMER_TASK_PRIORITY CONFIG_FREERTOS_TIMER_TASK_PRIORITY
#define configTIMER_QUEUE_LENGTH CONFIG_FREERTOS_TIMER_QUEUE_LENGTH
#define configTIMER_TASK_STACK_DEPTH CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH
// -------------------- API Includes -----------------------
#define configENABLE_BACKWARD_COMPATIBILITY 0
#define INCLUDE_vTaskPrioritySet 1
#define INCLUDE_uxTaskPriorityGet 1
#define INCLUDE_vTaskDelete 1
#define INCLUDE_vTaskSuspend 1
#define INCLUDE_xTaskDelayUntil 1
#define INCLUDE_vTaskDelay 1
#define INCLUDE_xTaskGetIdleTaskHandle 1
#define INCLUDE_xTaskAbortDelay 1
#define INCLUDE_xSemaphoreGetMutexHolder 1
#define INCLUDE_xTaskGetHandle 1
#define INCLUDE_uxTaskGetStackHighWaterMark 1
#define INCLUDE_uxTaskGetStackHighWaterMark2 0
#define INCLUDE_eTaskGetState 1
#define INCLUDE_xTaskResumeFromISR 1
#define INCLUDE_xTimerPendFunctionCall 1
#define INCLUDE_xTaskGetSchedulerState 1
#define INCLUDE_xTaskGetCurrentTaskHandle 1
// -------------------- Trace Macros -----------------------
/*
For trace macros.
Note: Include trace macros here and not above as trace macros are dependent on some of the FreeRTOS configs
*/
#ifndef __ASSEMBLER__
#if CONFIG_SYSVIEW_ENABLE
#include "SEGGER_SYSVIEW_FreeRTOS.h"
#undef INLINE // to avoid redefinition
#endif //CONFIG_SYSVIEW_ENABLE
#endif /* def __ASSEMBLER__ */
/*
Default values for trace macros added by ESP-IDF and are not part of Vanilla FreeRTOS
*/
#ifndef traceISR_EXIT
#define traceISR_EXIT()
#endif
#ifndef traceISR_ENTER
#define traceISR_ENTER(_n_)
#endif
#ifndef traceQUEUE_GIVE_FROM_ISR
#define traceQUEUE_GIVE_FROM_ISR( pxQueue )
#endif
#ifndef traceQUEUE_GIVE_FROM_ISR_FAILED
#define traceQUEUE_GIVE_FROM_ISR_FAILED( pxQueue )
#endif
#ifndef traceQUEUE_SEMAPHORE_RECEIVE
#define traceQUEUE_SEMAPHORE_RECEIVE( pxQueue )
#endif
/* ------------------------------------------------ IDF Compatibility --------------------------------------------------
* - We need these in order for ESP-IDF to compile
* ------------------------------------------------------------------------------------------------------------------ */
#define portNUM_PROCESSORS configNUM_CORES
#ifdef CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID
#define configTASKLIST_INCLUDE_COREID 1
#endif
#ifndef __ASSEMBLER__
#if CONFIG_APPTRACE_SV_ENABLE
extern volatile uint32_t port_switch_flag[portNUM_PROCESSORS];
#define os_task_switch_is_pended(_cpu_) (port_switch_flag[_cpu_])
#else
#define os_task_switch_is_pended(_cpu_) (false)
#endif
#endif
#endif /* FREERTOS_CONFIG_SMP_H */

View File

@@ -379,6 +379,20 @@ bool xPortcheckValidStackMem(const void *ptr);
#define portVALID_TCB_MEM(ptr) xPortCheckValidTCBMem(ptr) #define portVALID_TCB_MEM(ptr) xPortCheckValidTCBMem(ptr)
#define portVALID_STACK_MEM(ptr) xPortcheckValidStackMem(ptr) #define portVALID_STACK_MEM(ptr) xPortcheckValidStackMem(ptr)
/* ------------------------------------------------------ Misc ---------------------------------------------------------
* - Miscellaneous porting macros
* - These are not part of the FreeRTOS porting interface, but are used by other FreeRTOS dependent components
* ------------------------------------------------------------------------------------------------------------------ */
// --------------------- App-Trace -------------------------
#if CONFIG_APPTRACE_SV_ENABLE
extern volatile BaseType_t xPortSwitchFlag;
#define os_task_switch_is_pended(_cpu_) (xPortSwitchFlag)
#else
#define os_task_switch_is_pended(_cpu_) (false)
#endif
// --------------- Compatibility Includes ------------------ // --------------- Compatibility Includes ------------------
/* /*
ESP-IDF currently does not have a "Include what you use" policy. A lot of files implicitly pull in API through ESP-IDF currently does not have a "Include what you use" policy. A lot of files implicitly pull in API through

View File

@@ -1,12 +0,0 @@
/*
* SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef FREERTOS_CONFIG_LINUX_H
#define FREERTOS_CONFIG_LINUX_H
// This file is included in the common FreeRTOSConfig.h.
#endif // FREERTOS_CONFIG_LINUX_H

View File

@@ -1,35 +0,0 @@
/*
* SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef FREERTOS_CONFIG_RISCV_H
#define FREERTOS_CONFIG_RISCV_H
//RISC-V Archiecture specific configuration. This file is included in the common FreeRTOSConfig.h.
#include "sdkconfig.h"
/* ------------------------------------------------- FreeRTOS Config ---------------------------------------------------
* - All Vanilla FreeRTOS configuration goes into this section
* ------------------------------------------------------------------------------------------------------------------ */
// ------------------ Scheduler Related --------------------
#ifdef CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
#else
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
#endif
#define configMAX_API_CALL_INTERRUPT_PRIORITY 0
/* ------------------------------------------------ ESP-IDF Additions --------------------------------------------------
*
* ------------------------------------------------------------------------------------------------------------------ */
#ifndef configISR_STACK_SIZE
#define configISR_STACK_SIZE (CONFIG_FREERTOS_ISR_STACKSIZE)
#endif
#endif // FREERTOS_CONFIG_RISCV_H

View File

@@ -385,6 +385,14 @@ FORCE_INLINE_ATTR BaseType_t xPortGetCoreID(void)
#define portALT_GET_RUN_TIME_COUNTER_VALUE(x) do {x = (uint32_t)esp_timer_get_time();} while(0) #define portALT_GET_RUN_TIME_COUNTER_VALUE(x) do {x = (uint32_t)esp_timer_get_time();} while(0)
#endif #endif
// --------------------- TCB Cleanup -----------------------
#if CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP
/* If enabled, users must provide an implementation of vPortCleanUpTCB() */
extern void vPortCleanUpTCB ( void *pxTCB );
#define portCLEAN_UP_TCB( pxTCB ) vPortCleanUpTCB( pxTCB )
#endif /* CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP */
// -------------- Optimized Task Selection ----------------- // -------------- Optimized Task Selection -----------------
#if configUSE_PORT_OPTIMISED_TASK_SELECTION == 1 #if configUSE_PORT_OPTIMISED_TASK_SELECTION == 1
@@ -424,7 +432,7 @@ FORCE_INLINE_ATTR bool xPortCanYield(void)
/* ------------------------------------------------------ Misc --------------------------------------------------------- /* ------------------------------------------------------ Misc ---------------------------------------------------------
* - Miscellaneous porting macros * - Miscellaneous porting macros
* - These are not port of the FreeRTOS porting interface, but are used by other FreeRTOS dependent components * - These are not part of the FreeRTOS porting interface, but are used by other FreeRTOS dependent components
* ------------------------------------------------------------------------------------------------------------------ */ * ------------------------------------------------------------------------------------------------------------------ */
// -------------------- Heap Related ----------------------- // -------------------- Heap Related -----------------------

View File

@@ -523,6 +523,14 @@ extern void _frxt_setup_switch( void ); //Defined in portasm.S
#define portALT_GET_RUN_TIME_COUNTER_VALUE(x) do {x = (uint32_t)esp_timer_get_time();} while(0) #define portALT_GET_RUN_TIME_COUNTER_VALUE(x) do {x = (uint32_t)esp_timer_get_time();} while(0)
#endif #endif
// --------------------- TCB Cleanup -----------------------
#if CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP
/* If enabled, users must provide an implementation of vPortCleanUpTCB() */
extern void vPortCleanUpTCB ( void *pxTCB );
#define portCLEAN_UP_TCB( pxTCB ) vPortCleanUpTCB( pxTCB )
#endif /* CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP */
// -------------- Optimized Task Selection ----------------- // -------------- Optimized Task Selection -----------------
#if configUSE_PORT_OPTIMISED_TASK_SELECTION == 1 #if configUSE_PORT_OPTIMISED_TASK_SELECTION == 1
@@ -627,7 +635,7 @@ FORCE_INLINE_ATTR BaseType_t xPortGetCoreID(void)
/* ------------------------------------------------------ Misc --------------------------------------------------------- /* ------------------------------------------------------ Misc ---------------------------------------------------------
* - Miscellaneous porting macros * - Miscellaneous porting macros
* - These are not port of the FreeRTOS porting interface, but are used by other FreeRTOS dependent components * - These are not part of the FreeRTOS porting interface, but are used by other FreeRTOS dependent components
* ------------------------------------------------------------------------------------------------------------------ */ * ------------------------------------------------------------------------------------------------------------------ */
// -------------------- Co-Processor ----------------------- // -------------------- Co-Processor -----------------------

View File

@@ -40,7 +40,7 @@ menu "FreeRTOS"
config FREERTOS_OPTIMIZED_SCHEDULER config FREERTOS_OPTIMIZED_SCHEDULER
# Todo: Not available in SMP FREERTOS (IDF-3733) # Todo: Not available in SMP FREERTOS (IDF-3733)
bool "configUSE_PORT_OPTIMISED_TASK_SELECTION" bool "configUSE_PORT_OPTIMISED_TASK_SELECTION"
depends on FREERTOS_UNICORE depends on FREERTOS_UNICORE && !FREERTOS_SMP
default y default y
help help
Enables port specific task selection method. This option can speed up the search of ready tasks Enables port specific task selection method. This option can speed up the search of ready tasks

View File

@@ -0,0 +1,52 @@
/*
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
/* Linux POSIX simulator specific configuration. This file is included in the common FreeRTOSConfig.h. */
#include "sdkconfig.h"
/* ------------------------------------------------- FreeRTOS Config ---------------------------------------------------
* - All Vanilla FreeRTOS configuration goes into this section
* - Match upstream POSIX simulator example FreeRTOSConfig.h where possible. See following link for more details.
* https://github.com/FreeRTOS/FreeRTOS/blob/main/FreeRTOS/Demo/Posix_GCC/FreeRTOSConfig.h
* ------------------------------------------------------------------------------------------------------------------ */
/* ------------------ Scheduler Related -------------------- */
#define configMAX_PRIORITIES ( 7 )
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
/* The stack allocated by FreeRTOS will be passed to a pthread.
* pthread has a minimal stack size which currently is 16KB.
* The rest is for additional structures of the POSIX/Linux port.
* This is a magic number since PTHREAD_STACK_MIN seems to not be a constant. */
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) ( 0x4000 + 40 ) / sizeof( portSTACK_TYPE ) )
/* Currently not used in Linux POSIX simulator */
#define configMAX_API_CALL_INTERRUPT_PRIORITY 0
/* ----------------------- System -------------------------- */
#define configUSE_NEWLIB_REENTRANT 0
#define configINCLUDE_FREERTOS_TASK_C_ADDITIONS_H 0
/* ----------------------- Memory ------------------------- */
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 65 * 1024 ) )
/* ------------------- Run-time Stats ---------------------- */
#define configUSE_TRACE_FACILITY 1
/* -------------------- API Includes ----------------------- */
#define INCLUDE_xTaskGetCurrentTaskHandle 0 /* not defined in POSIX simulator */
#define INCLUDE_vTaskDelayUntil 1
/* ------------------------------------------------ ESP-IDF Additions --------------------------------------------------
*
* ------------------------------------------------------------------------------------------------------------------ */

View File

@@ -0,0 +1,58 @@
/*
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
/* RISC-V Architecture specific configuration. This file is included in the common FreeRTOSConfig.h. */
#include "sdkconfig.h"
/* ------------------------------------------------- FreeRTOS Config ---------------------------------------------------
* - All Vanilla FreeRTOS configuration goes into this section
* ------------------------------------------------------------------------------------------------------------------ */
/* ------------------ Scheduler Related -------------------- */
#define configMAX_PRIORITIES ( 25 )
#ifdef CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
#else
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
#endif /* CONFIG_FREERTOS_OPTIMIZED_SCHEDULER */
#define configMINIMAL_STACK_SIZE ( CONFIG_FREERTOS_IDLE_TASK_STACKSIZE + configSTACK_OVERHEAD_TOTAL )
#define configMAX_API_CALL_INTERRUPT_PRIORITY 0
/* ----------------------- System -------------------------- */
#define configUSE_NEWLIB_REENTRANT 1
#define configINCLUDE_FREERTOS_TASK_C_ADDITIONS_H 1
/* ----------------------- Memory ------------------------- */
/* This isn't used as FreeRTOS will only allocate from internal memory (see
* heap_idf.c). We simply define this macro to span all non-statically-allocated
* shared RAM. */
#define configTOTAL_HEAP_SIZE ( &_heap_end - &_heap_start )
/* ------------------- Run-time Stats ---------------------- */
#if CONFIG_FREERTOS_USE_TRACE_FACILITY
/* Used by uxTaskGetSystemState(), and other trace facility functions */
#define configUSE_TRACE_FACILITY 1
#endif /* CONFIG_FREERTOS_USE_TRACE_FACILITY */
/* -------------------- API Includes ----------------------- */
#define INCLUDE_xTaskDelayUntil 1
#define INCLUDE_xTaskGetCurrentTaskHandle 1
/* ------------------------------------------------ ESP-IDF Additions --------------------------------------------------
*
* ------------------------------------------------------------------------------------------------------------------ */
#ifndef configISR_STACK_SIZE
#define configISR_STACK_SIZE ( CONFIG_FREERTOS_ISR_STACKSIZE )
#endif

View File

@@ -1,18 +1,17 @@
/* /*
* SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
*/ */
#ifndef FREERTOS_CONFIG_XTENSA_H #pragma once
#define FREERTOS_CONFIG_XTENSA_H
//Xtensa Archiecture specific configuration. This file is included in the common FreeRTOSConfig.h. /* Xtensa Architecture specific configuration. This file is included in the common FreeRTOSConfig.h. */
#include "sdkconfig.h" #include "sdkconfig.h"
/* Required for configuration-dependent settings. */ /* Required for configuration-dependent settings. */
#include "xtensa_config.h" #include "freertos/xtensa_config.h"
/* -------------------------------------------- Xtensa Additional Config ---------------------------------------------- /* -------------------------------------------- Xtensa Additional Config ----------------------------------------------
* - Provide Xtensa definitions usually given by -D option when building with xt-make (see readme_xtensa.txt) * - Provide Xtensa definitions usually given by -D option when building with xt-make (see readme_xtensa.txt)
@@ -27,29 +26,55 @@
* - XT_USE_SWPRI We don't define this (unused) * - XT_USE_SWPRI We don't define this (unused)
* ------------------------------------------------------------------------------------------------------------------ */ * ------------------------------------------------------------------------------------------------------------------ */
#define configXT_SIMULATOR 0 #define configXT_SIMULATOR 0
#define configXT_BOARD 1 /* Board mode */ #define configXT_BOARD 1 /* Board mode */
#if CONFIG_FREERTOS_CORETIMER_0 #if CONFIG_FREERTOS_CORETIMER_0
#define configXT_TIMER_INDEX 0 #define configXT_TIMER_INDEX 0
#elif CONFIG_FREERTOS_CORETIMER_1 #elif CONFIG_FREERTOS_CORETIMER_1
#define configXT_TIMER_INDEX 1 #define configXT_TIMER_INDEX 1
#endif #endif
#define configXT_INTEXC_HOOKS 0 #define configXT_INTEXC_HOOKS 0
#define configBENCHMARK 0 #define configBENCHMARK 0
/* ------------------------------------------------- FreeRTOS Config --------------------------------------------------- /* ------------------------------------------------- FreeRTOS Config ---------------------------------------------------
* - All Vanilla FreeRTOS configuration goes into this section * - All Vanilla FreeRTOS configuration goes into this section
* ------------------------------------------------------------------------------------------------------------------ */ * ------------------------------------------------------------------------------------------------------------------ */
// ------------------ Scheduler Related -------------------- /* ------------------ Scheduler Related -------------------- */
#define configMAX_PRIORITIES ( 25 )
#ifdef CONFIG_FREERTOS_OPTIMIZED_SCHEDULER #ifdef CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1 #define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
#else #else
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 0 #define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
#endif #endif /* CONFIG_FREERTOS_OPTIMIZED_SCHEDULER */
#define configMAX_API_CALL_INTERRUPT_PRIORITY XCHAL_EXCM_LEVEL #define configMINIMAL_STACK_SIZE ( CONFIG_FREERTOS_IDLE_TASK_STACKSIZE + configSTACK_OVERHEAD_TOTAL )
#define configMAX_API_CALL_INTERRUPT_PRIORITY XCHAL_EXCM_LEVEL
/* ----------------------- System -------------------------- */
#define configUSE_NEWLIB_REENTRANT 1
#define configINCLUDE_FREERTOS_TASK_C_ADDITIONS_H 1
/* ----------------------- Memory ------------------------- */
/* This isn't used as FreeRTOS will only allocate from internal memory (see
* heap_idf.c). We simply define this macro to span all non-statically-allocated
* shared RAM. */
#define configTOTAL_HEAP_SIZE ( &_heap_end - &_heap_start )
/* ------------------- Run-time Stats ---------------------- */
#if CONFIG_FREERTOS_USE_TRACE_FACILITY
/* Used by uxTaskGetSystemState(), and other trace facility functions */
#define configUSE_TRACE_FACILITY 1
#endif /* CONFIG_FREERTOS_USE_TRACE_FACILITY */
/* -------------------- API Includes ----------------------- */
#define INCLUDE_xTaskDelayUntil 1
#define INCLUDE_xTaskGetCurrentTaskHandle 1
/* ------------------------------------------------ ESP-IDF Additions -------------------------------------------------- /* ------------------------------------------------ ESP-IDF Additions --------------------------------------------------
* *
@@ -60,9 +85,7 @@
* Size needs to be aligned to the stack increment, since the location of * Size needs to be aligned to the stack increment, since the location of
* the stack for the 2nd CPU will be calculated using configISR_STACK_SIZE. * the stack for the 2nd CPU will be calculated using configISR_STACK_SIZE.
*/ */
#define configSTACK_ALIGNMENT 16 #define configSTACK_ALIGNMENT 16
#ifndef configISR_STACK_SIZE #ifndef configISR_STACK_SIZE
#define configISR_STACK_SIZE ((CONFIG_FREERTOS_ISR_STACKSIZE + configSTACK_ALIGNMENT - 1) & (~(configSTACK_ALIGNMENT - 1))) #define configISR_STACK_SIZE ( ( CONFIG_FREERTOS_ISR_STACKSIZE + configSTACK_ALIGNMENT - 1 ) & ( ~( configSTACK_ALIGNMENT - 1 ) ) )
#endif #endif
#endif // FREERTOS_CONFIG_XTENSA_H

View File

@@ -4,285 +4,282 @@
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
*/ */
#ifndef FREERTOS_CONFIG_H #pragma once
#define FREERTOS_CONFIG_H
#include "sdkconfig.h" #include "sdkconfig.h"
/* /* This file gets pulled into assembly sources. Therefore, some includes need to
This file gets pulled into assembly sources. Therefore, some includes need to be wrapped in #ifndef __ASSEMBLER__ * be wrapped in #ifndef __ASSEMBLER__ */
*/
#ifndef __ASSEMBLER__ #ifndef __ASSEMBLER__
#include <assert.h> //For configASSERT() /* For configASSERT() */
#include <assert.h>
#endif /* def __ASSEMBLER__ */ #endif /* def __ASSEMBLER__ */
#ifdef CONFIG_FREERTOS_SMP
// Pull in the SMP configuration
#include "freertos/FreeRTOSConfig_smp.h"
#else // CONFIG_FREERTOS_SMP
// The arch-specific FreeRTOSConfig_arch.h in port/<arch>/include.
#include "freertos/FreeRTOSConfig_arch.h"
#if !(defined(FREERTOS_CONFIG_XTENSA_H) \
|| defined(FREERTOS_CONFIG_RISCV_H) \
|| defined(FREERTOS_CONFIG_LINUX_H))
#error "Needs architecture-speific FreeRTOSConfig.h!"
#endif
/* ----------------------------------------------------- Helpers ------------------------------------------------------- /* ----------------------------------------------------- Helpers -------------------------------------------------------
* - Macros that the FreeRTOS configuration macros depend on * - Macros that the FreeRTOS configuration macros depend on
* ------------------------------------------------------------------------------------------------------------------ */ * ------------------------------------------------------------------------------------------------------------------ */
/* Higher stack checker modes cause overhead on each function call */ /* Higher stack checker modes cause overhead on each function call */
#if CONFIG_STACK_CHECK_ALL || CONFIG_STACK_CHECK_STRONG #if CONFIG_STACK_CHECK_ALL || CONFIG_STACK_CHECK_STRONG
#define STACK_OVERHEAD_CHECKER 256 #define STACK_OVERHEAD_CHECKER 256
#else #else
#define STACK_OVERHEAD_CHECKER 0 #define STACK_OVERHEAD_CHECKER 0
#endif #endif
/* with optimizations disabled, scheduler uses additional stack */ /* with optimizations disabled, scheduler uses additional stack */
#if CONFIG_COMPILER_OPTIMIZATION_NONE #if CONFIG_COMPILER_OPTIMIZATION_NONE
#define STACK_OVERHEAD_OPTIMIZATION 320 #define STACK_OVERHEAD_OPTIMIZATION 320
#else #else
#define STACK_OVERHEAD_OPTIMIZATION 0 #define STACK_OVERHEAD_OPTIMIZATION 0
#endif #endif
/* apptrace mdule increases minimum stack usage */ /* apptrace mdule increases minimum stack usage */
#if CONFIG_APPTRACE_ENABLE #if CONFIG_APPTRACE_ENABLE
#define STACK_OVERHEAD_APPTRACE 1280 #define STACK_OVERHEAD_APPTRACE 1280
#else #else
#define STACK_OVERHEAD_APPTRACE 0 #define STACK_OVERHEAD_APPTRACE 0
#endif #endif
/* Stack watchpoint decreases minimum usable stack size by up to 60 bytes. /* Stack watchpoint decreases minimum usable stack size by up to 60 bytes.
See FreeRTOS FREERTOS_WATCHPOINT_END_OF_STACK option in Kconfig. */ * See FreeRTOS FREERTOS_WATCHPOINT_END_OF_STACK option in Kconfig. */
#if CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK #if CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK
#define STACK_OVERHEAD_WATCHPOINT 60 #define STACK_OVERHEAD_WATCHPOINT 60
#else #else
#define STACK_OVERHEAD_WATCHPOINT 0 #define STACK_OVERHEAD_WATCHPOINT 0
#endif #endif
#define configSTACK_OVERHEAD_TOTAL ( \ #define configSTACK_OVERHEAD_TOTAL \
STACK_OVERHEAD_CHECKER + \ ( \
STACK_OVERHEAD_OPTIMIZATION + \ STACK_OVERHEAD_CHECKER + \
STACK_OVERHEAD_APPTRACE + \ STACK_OVERHEAD_OPTIMIZATION + \
STACK_OVERHEAD_WATCHPOINT \ STACK_OVERHEAD_APPTRACE + \
) STACK_OVERHEAD_WATCHPOINT \
)
/* The arch-specific FreeRTOSConfig_arch.h in esp_additions/arch_include/<arch>.
* Placed here due to configSTACK_OVERHEAD_TOTAL. Todo: IDF-5712. */
#include "freertos/FreeRTOSConfig_arch.h"
/* ------------------------------------------------- FreeRTOS Config --------------------------------------------------- /* ------------------------------------------------- FreeRTOS Config ---------------------------------------------------
* - All Vanilla FreeRTOS configuration goes into this section * - All Vanilla FreeRTOS configuration goes into this section
* - Keep this section in-sync with the corresponding version of single-core upstream version of FreeRTOS * - Keep this section in-sync with the corresponding version of single-core upstream version of FreeRTOS
* - Don't put any SMP or ESP-IDF exclusive FreeRTOS configurations here. Those go into the next section * - Don't put any Amazon SMP FreeRTOS or IDF FreeRTOS configurations here. Those go into the next section
* - Not all FreeRTOS configuration are listed. Some configurations have default values set in FreeRTOS.h thus don't * - Not all FreeRTOS configuration are listed. Some configurations have default values set in FreeRTOS.h thus don't
* need to be explicitly defined. * need to be explicitly defined.
* ------------------------------------------------------------------------------------------------------------------ */ * ------------------------------------------------------------------------------------------------------------------ */
/*----------------------------------------------------------- /*-----------------------------------------------------------
* Application specific definitions. * Application specific definitions.
* *
* These definitions should be adjusted for your particular hardware and * These definitions should be adjusted for your particular hardware and
* application requirements. * application requirements.
* *
* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
* *
* See http://www.freertos.org/a00110.html * See http://www.freertos.org/a00110.html
*----------------------------------------------------------*/ *----------------------------------------------------------*/
// ------------------ Scheduler Related -------------------- /* ------------------ Scheduler Related -------------------- */
#define configUSE_PREEMPTION 1 #define configUSE_PREEMPTION 1
#define configUSE_TICKLESS_IDLE CONFIG_FREERTOS_USE_TICKLESS_IDLE #define configUSE_TICKLESS_IDLE CONFIG_FREERTOS_USE_TICKLESS_IDLE
#if configUSE_TICKLESS_IDLE #if configUSE_TICKLESS_IDLE
#define configEXPECTED_IDLE_TIME_BEFORE_SLEEP CONFIG_FREERTOS_IDLE_TIME_BEFORE_SLEEP #define configEXPECTED_IDLE_TIME_BEFORE_SLEEP CONFIG_FREERTOS_IDLE_TIME_BEFORE_SLEEP
#endif //configUSE_TICKLESS_IDLE #endif /* configUSE_TICKLESS_IDLE */
#define configCPU_CLOCK_HZ (CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ * 1000000) #define configCPU_CLOCK_HZ ( CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ * 1000000 )
#define configTICK_RATE_HZ CONFIG_FREERTOS_HZ #define configTICK_RATE_HZ CONFIG_FREERTOS_HZ
#ifdef CONFIG_IDF_TARGET_LINUX #define configUSE_TIME_SLICING 1
#define configMAX_PRIORITIES ( 7 ) // Default in upstream simulator #define configUSE_16_BIT_TICKS 0
/* The stack allocated by FreeRTOS will be passed to a pthread. #define configIDLE_SHOULD_YIELD 0
pthread has a minimal stack size which currently is 16KB. #define configKERNEL_INTERRUPT_PRIORITY 1 /*Todo: This currently isn't used anywhere */
The rest is for additional structures of the POSIX/Linux port.
This is a magic number since PTHREAD_STACK_MIN seems to not be a constant. */
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) (0x4000 + 40) / sizeof(portSTACK_TYPE) )
#else
#define configMAX_PRIORITIES ( 25 ) //This has impact on speed of search for highest priority
#define configMINIMAL_STACK_SIZE ( CONFIG_FREERTOS_IDLE_TASK_STACKSIZE + configSTACK_OVERHEAD_TOTAL )
#endif
#define configUSE_TIME_SLICING 1
#define configUSE_16_BIT_TICKS 0
#define configIDLE_SHOULD_YIELD 0
#define configKERNEL_INTERRUPT_PRIORITY 1 //Todo: This currently isn't used anywhere
// ------------- Synchronization Primitives ---------------- /* ------------- Synchronization Primitives ---------------- */
#define configUSE_MUTEXES 1 #define configUSE_MUTEXES 1
#define configUSE_RECURSIVE_MUTEXES 1 #define configUSE_RECURSIVE_MUTEXES 1
#define configUSE_COUNTING_SEMAPHORES 1 #define configUSE_COUNTING_SEMAPHORES 1
#define configUSE_QUEUE_SETS 1 #define configUSE_QUEUE_SETS 1
#define configQUEUE_REGISTRY_SIZE CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE #define configQUEUE_REGISTRY_SIZE CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE
#define configUSE_TASK_NOTIFICATIONS 1 #define configUSE_TASK_NOTIFICATIONS 1
#define configTASK_NOTIFICATION_ARRAY_ENTRIES CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES #define configTASK_NOTIFICATION_ARRAY_ENTRIES CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES
// ----------------------- System -------------------------- /* ----------------------- System -------------------------- */
#define configMAX_TASK_NAME_LEN CONFIG_FREERTOS_MAX_TASK_NAME_LEN #define configMAX_TASK_NAME_LEN CONFIG_FREERTOS_MAX_TASK_NAME_LEN
#define configNUM_THREAD_LOCAL_STORAGE_POINTERS CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS #if CONFIG_FREERTOS_SMP
#define configSTACK_DEPTH_TYPE uint32_t /* Number of TLSP is doubled to store TLSP deletion callbacks */
#ifndef CONFIG_IDF_TARGET_LINUX #define configNUM_THREAD_LOCAL_STORAGE_POINTERS ( CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS * 2 )
#define configUSE_NEWLIB_REENTRANT 1 #else /* CONFIG_FREERTOS_SMP */
#define configINCLUDE_FREERTOS_TASK_C_ADDITIONS_H 1 #define configNUM_THREAD_LOCAL_STORAGE_POINTERS CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS
#else #endif /* CONFIG_FREERTOS_SMP */
#define configINCLUDE_FREERTOS_TASK_C_ADDITIONS_H 0 // Default in upstream simulator #define configSTACK_DEPTH_TYPE uint32_t
#endif
#if CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY #if CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY
#define configENABLE_BACKWARD_COMPATIBILITY 1 #define configENABLE_BACKWARD_COMPATIBILITY 1
#else #else /* CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY */
#define configENABLE_BACKWARD_COMPATIBILITY 0 #define configENABLE_BACKWARD_COMPATIBILITY 0
#endif #endif /* CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY */
#define configASSERT(a) assert(a) #define configASSERT( a ) assert( a )
// ----------------------- Memory ------------------------- /* ----------------------- Memory ------------------------- */
#define configSUPPORT_STATIC_ALLOCATION 1 #define configSUPPORT_STATIC_ALLOCATION 1
#define configSUPPORT_DYNAMIC_ALLOCATION 1 #define configSUPPORT_DYNAMIC_ALLOCATION 1
#ifdef CONFIG_IDF_TARGET_LINUX #define configAPPLICATION_ALLOCATED_HEAP 1
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 65 * 1024 ) ) // Default in upstream simulator #define configSTACK_ALLOCATION_FROM_SEPARATE_HEAP 0
#else
//We define the heap to span all of the non-statically-allocated shared RAM. ToDo: Make sure there
//is some space left for the app and main cpu when running outside of a thread.
#define configTOTAL_HEAP_SIZE (&_heap_end - &_heap_start)//( ( size_t ) (64 * 1024) )
#endif
#define configAPPLICATION_ALLOCATED_HEAP 1
#define configSTACK_ALLOCATION_FROM_SEPARATE_HEAP 0
// ------------------------ Hooks -------------------------- /* ------------------------ Hooks -------------------------- */
#define configUSE_IDLE_HOOK CONFIG_FREERTOS_USE_IDLE_HOOK #if CONFIG_FREERTOS_USE_IDLE_HOOK
#define configUSE_TICK_HOOK CONFIG_FREERTOS_USE_TICK_HOOK #define configUSE_IDLE_HOOK 1
#else /* CONFIG_FREERTOS_USE_IDLE_HOOK */
#define configUSE_IDLE_HOOK 0
#endif /* CONFIG_FREERTOS_USE_IDLE_HOOK */
#if CONFIG_FREERTOS_USE_TICK_HOOK
#define configUSE_TICK_HOOK 1
#else /* CONFIG_FREERTOS_USE_TICK_HOOK */
#define configUSE_TICK_HOOK 0
#endif /* CONFIG_FREERTOS_USE_TICK_HOOK */
#if CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE #if CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE
#define configCHECK_FOR_STACK_OVERFLOW 0 #define configCHECK_FOR_STACK_OVERFLOW 0
#elif CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL #elif CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL
#define configCHECK_FOR_STACK_OVERFLOW 1 #define configCHECK_FOR_STACK_OVERFLOW 1
#elif CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY #elif CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY
#define configCHECK_FOR_STACK_OVERFLOW 2 #define configCHECK_FOR_STACK_OVERFLOW 2
#endif #endif /* CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE */
#define configRECORD_STACK_HIGH_ADDRESS 1 // This must be set as the port requires TCB.pxEndOfStack #define configRECORD_STACK_HIGH_ADDRESS 1 /* This must be set as the port requires TCB.pxEndOfStack */
// ------------------- Run-time Stats ---------------------- /* ------------------- Run-time Stats ---------------------- */
#ifdef CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS #ifdef CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS
#define configGENERATE_RUN_TIME_STATS 1 /* Used by vTaskGetRunTimeStats() */ #define configGENERATE_RUN_TIME_STATS 1 /* Used by vTaskGetRunTimeStats() */
#endif #endif /* CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS */
#ifdef CONFIG_IDF_TARGET_LINUX
#define configUSE_TRACE_FACILITY 1
#else
#ifdef CONFIG_FREERTOS_USE_TRACE_FACILITY
#define configUSE_TRACE_FACILITY 1 /* Used by uxTaskGetSystemState(), and other trace facility functions */
#endif
#endif
#ifdef CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS #ifdef CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS
#define configUSE_STATS_FORMATTING_FUNCTIONS 1 /* Used by vTaskList() */ #define configUSE_STATS_FORMATTING_FUNCTIONS 1 /* Used by vTaskList() */
#endif #endif /* CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS */
// -------------------- Co-routines ----------------------- /* -------------------- Co-routines ----------------------- */
#define configUSE_CO_ROUTINES 0 // CO_ROUTINES are not supported in ESP-IDF #define configUSE_CO_ROUTINES 0 /* CO_ROUTINES are not supported in ESP-IDF */
#define configMAX_CO_ROUTINE_PRIORITIES 2 #define configMAX_CO_ROUTINE_PRIORITIES 2
// ------------------- Software Timer ---------------------- /* ------------------- Software Timer ---------------------- */
#define configUSE_TIMERS 1 #define configUSE_TIMERS 1
#define configTIMER_TASK_PRIORITY CONFIG_FREERTOS_TIMER_TASK_PRIORITY #define configTIMER_TASK_PRIORITY CONFIG_FREERTOS_TIMER_TASK_PRIORITY
#define configTIMER_QUEUE_LENGTH CONFIG_FREERTOS_TIMER_QUEUE_LENGTH #define configTIMER_QUEUE_LENGTH CONFIG_FREERTOS_TIMER_QUEUE_LENGTH
#define configTIMER_TASK_STACK_DEPTH CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH #define configTIMER_TASK_STACK_DEPTH CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH
// -------------------- API Includes ----------------------- /* -------------------- API Includes ----------------------- */
#if CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY #if CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY
#define configENABLE_BACKWARD_COMPATIBILITY 1 #define configENABLE_BACKWARD_COMPATIBILITY 1
#else #else /* CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY */
#define configENABLE_BACKWARD_COMPATIBILITY 0 #define configENABLE_BACKWARD_COMPATIBILITY 0
#endif #endif /* CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY */
#define INCLUDE_vTaskPrioritySet 1 #define INCLUDE_vTaskPrioritySet 1
#define INCLUDE_uxTaskPriorityGet 1 #define INCLUDE_uxTaskPriorityGet 1
#define INCLUDE_vTaskDelete 1 #define INCLUDE_vTaskDelete 1
#define INCLUDE_vTaskSuspend 1 #define INCLUDE_vTaskSuspend 1
#define INCLUDE_vTaskDelay 1 #define INCLUDE_vTaskDelay 1
#define INCLUDE_xTaskGetIdleTaskHandle 1 #define INCLUDE_xTaskGetIdleTaskHandle 1
#define INCLUDE_xTaskAbortDelay 1 #define INCLUDE_xTaskAbortDelay 1
#define INCLUDE_xSemaphoreGetMutexHolder 1 #define INCLUDE_xSemaphoreGetMutexHolder 1
#define INCLUDE_xTaskGetHandle 1 #define INCLUDE_xTaskGetHandle 1
#define INCLUDE_uxTaskGetStackHighWaterMark 1 #define INCLUDE_uxTaskGetStackHighWaterMark 1
#define INCLUDE_uxTaskGetStackHighWaterMark2 1 #define INCLUDE_uxTaskGetStackHighWaterMark2 1
#define INCLUDE_eTaskGetState 1 #define INCLUDE_eTaskGetState 1
#define INCLUDE_xTaskResumeFromISR 1 #define INCLUDE_xTaskResumeFromISR 1
#define INCLUDE_xTimerPendFunctionCall 1 #define INCLUDE_xTimerPendFunctionCall 1
#define INCLUDE_xTaskGetSchedulerState 1 #define INCLUDE_xTaskGetSchedulerState 1
#ifdef CONFIG_IDF_TARGET_LINUX /* Unlisted */
#define INCLUDE_xTaskGetCurrentTaskHandle 0 // not defined in POSIX simulator #define INCLUDE_pxTaskGetStackStart 1
#define INCLUDE_vTaskDelayUntil 1
#else
#define INCLUDE_xTaskDelayUntil 1
#define INCLUDE_xTaskGetCurrentTaskHandle 1
#endif
//Unlisted
#define INCLUDE_pxTaskGetStackStart 1
// -------------------- Trace Macros ----------------------- /* -------------------- Trace Macros ----------------------- */
/* /*
For trace macros. * For trace macros.
Note: Include trace macros here and not above as trace macros are dependent on some of the FreeRTOS configs * Note: Include trace macros here and not above as trace macros are dependent on some of the FreeRTOS configs
*/ */
#ifndef __ASSEMBLER__ #ifndef __ASSEMBLER__
#if CONFIG_SYSVIEW_ENABLE #if CONFIG_SYSVIEW_ENABLE
#include "SEGGER_SYSVIEW_FreeRTOS.h" #include "SEGGER_SYSVIEW_FreeRTOS.h"
#undef INLINE // to avoid redefinition #undef INLINE /* to avoid redefinition */
#endif //CONFIG_SYSVIEW_ENABLE #endif /* CONFIG_SYSVIEW_ENABLE */
#if CONFIG_FREERTOS_SMP
/* Default values for trace macros added to ESP-IDF implementation of SYSVIEW
* that is not part of Amazon SMP FreeRTOS. */
#ifndef traceISR_EXIT
#define traceISR_EXIT()
#endif
#ifndef traceISR_ENTER
#define traceISR_ENTER( _n_ )
#endif
#ifndef traceQUEUE_GIVE_FROM_ISR
#define traceQUEUE_GIVE_FROM_ISR( pxQueue )
#endif
#ifndef traceQUEUE_GIVE_FROM_ISR_FAILED
#define traceQUEUE_GIVE_FROM_ISR_FAILED( pxQueue )
#endif
#ifndef traceQUEUE_SEMAPHORE_RECEIVE
#define traceQUEUE_SEMAPHORE_RECEIVE( pxQueue )
#endif
#endif /* CONFIG_FREERTOS_SMP */
#endif /* def __ASSEMBLER__ */ #endif /* def __ASSEMBLER__ */
/* ------------------------------------------------ ESP-IDF Additions -------------------------------------------------- /* ----------------------------------------------- Amazon SMP FreeRTOS -------------------------------------------------
* - All FreeRTOS related configurations no part of Vanilla FreeRTOS goes into this section * - All Amazon SMP FreeRTOS specific configurations
* - FreeRTOS configurations related to SMP and ESP-IDF additions go into this section
* ------------------------------------------------------------------------------------------------------------------ */ * ------------------------------------------------------------------------------------------------------------------ */
// ------------------------- SMP --------------------------- #if CONFIG_FREERTOS_SMP
#ifdef CONFIG_FREERTOS_UNICORE
#define configNUM_CORES 1
#else
#define configNUM_CORES 2
#endif /* CONFIG_FREERTOS_UNICORE */
#define configUSE_CORE_AFFINITY 1
#define configRUN_MULTIPLE_PRIORITIES 1
#define configUSE_TASK_PREEMPTION_DISABLE 1
#ifndef CONFIG_FREERTOS_UNICORE /* This is always enabled to call IDF style idle hooks, by can be "--Wl,--wrap"
#define portNUM_PROCESSORS 2 * if users enable CONFIG_FREERTOS_USE_MINIMAL_IDLE_HOOK. */
#else #define configUSE_MINIMAL_IDLE_HOOK 1
#define portNUM_PROCESSORS 1
#endif
#define configNUM_CORES portNUM_PROCESSORS
#ifdef CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID
#define configTASKLIST_INCLUDE_COREID 1
#endif
// ---------------------- Features ------------------------- /* IDF Newlib supports dynamic reentrancy. We provide our own __getreent()
* function. */
#define configNEWLIB_REENTRANT_IS_DYNAMIC 1
#endif /* CONFIG_FREERTOS_SMP */
#ifdef CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS /* -------------------------------------------------- IDF FreeRTOS -----------------------------------------------------
#define configTHREAD_LOCAL_STORAGE_DELETE_CALLBACKS 1 * - All IDF FreeRTOS specific configurations
#endif * ------------------------------------------------------------------------------------------------------------------ */
#if CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER #if !CONFIG_FREERTOS_SMP
#define configCHECK_MUTEX_GIVEN_BY_OWNER 1 #ifdef CONFIG_FREERTOS_UNICORE
#else #define configNUM_CORES 1
#define configCHECK_MUTEX_GIVEN_BY_OWNER 0 #else
#endif #define configNUM_CORES 2
#endif /* CONFIG_FREERTOS_UNICORE */
#ifdef CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID
#define configTASKLIST_INCLUDE_COREID 1
#endif /* CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID */
#ifdef CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS
#define configTHREAD_LOCAL_STORAGE_DELETE_CALLBACKS 1
#endif /* CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS */
#if CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER
#define configCHECK_MUTEX_GIVEN_BY_OWNER 1
#endif /* CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER */
#endif /* !CONFIG_FREERTOS_SMP */
#ifndef __ASSEMBLER__ /* ------------------------------------------------ ESP-IDF Additions --------------------------------------------------
#if CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP * - Any other macros required by the rest of ESP-IDF
extern void vPortCleanUpTCB ( void *pxTCB ); * ------------------------------------------------------------------------------------------------------------------ */
#define portCLEAN_UP_TCB( pxTCB ) vPortCleanUpTCB( pxTCB )
#endif
#endif
#endif // CONFIG_FREERTOS_SMP #define portNUM_PROCESSORS configNUM_CORES
#endif /* FREERTOS_CONFIG_H */

View File

@@ -10,7 +10,8 @@ set(include_dirs
"${kernel_dir}/include" "${kernel_dir}/include"
"${original_freertos_dir}/esp_additions/include" "${original_freertos_dir}/esp_additions/include"
"${original_freertos_dir}/esp_additions/include/freertos" "${original_freertos_dir}/esp_additions/include/freertos"
"${kernel_dir}/portable/linux/include" # For FreeRTOSConfig_arch.h "${original_freertos_dir}/esp_additions/arch/linux/include" # For "freertos/FreeRTOSConfig_arch.h"
"${kernel_dir}/portable/linux/include" # For "freertos/portmacro.h"
"${kernel_dir}/include/freertos" # this is due to the way includes are generated in CMock (without freertos prefix) "${kernel_dir}/include/freertos" # this is due to the way includes are generated in CMock (without freertos prefix)
) )