From cfdfeed97347ee8345fbe4789a45647ea305fbd7 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Mon, 25 Jan 2021 01:00:43 +0100 Subject: [PATCH] freertos: linker.lf rules fixes 1. Add conditions based on Kconfig options for functions which are compiled based on those options. 2. Static allocation is always enabled, move corresponding functions into the common list. --- components/freertos/linker.lf | 46 +++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/components/freertos/linker.lf b/components/freertos/linker.lf index f0f167d226..60d3505337 100644 --- a/components/freertos/linker.lf +++ b/components/freertos/linker.lf @@ -22,15 +22,13 @@ entries: tasks: prvIdleTask (default) tasks: prvAddNewTaskToReadyList (default) tasks: xTaskCreatePinnedToCore (default) + tasks: xTaskCreateStaticPinnedToCore (default) tasks: vTaskResume (default) tasks: vTaskStartScheduler (default) tasks: vTaskSuspendAll (default) tasks: uxTaskGetNumberOfTasks (default) - tasks: uxTaskGetSystemState (default) tasks: xTaskGetIdleTaskHandle (default) tasks: xTaskRemoveFromUnorderedEventList (default) - tasks: uxTaskGetTaskNumber (default) - tasks: vTaskSetTaskNumber (default) tasks: uxTaskPriorityGet (default) tasks: vTaskPrioritySet (default) tasks: vTaskSetThreadLocalStoragePointerAndDelCallback (default) @@ -49,11 +47,18 @@ entries: tasks: pxTaskGetStackStart (default) tasks: uxTaskGetStackHighWaterMark (default) tasks: vTaskEndScheduler (default) - tasks: vTaskList (default) tasks: vTaskMissedYield (default) tasks: vTaskSetThreadLocalStoragePointer (default) tasks: xTaskGetAffinity (default) tasks: xTaskGetIdleTaskHandleForCPU (default) + if FREERTOS_USE_TRACE_FACILITY = y: + tasks: uxTaskGetSystemState (default) + tasks: uxTaskGetTaskNumber (default) + tasks: vTaskSetTaskNumber (default) + if FREERTOS_USE_STATS_FORMATTING_FUNCTIONS = y: + tasks: vTaskList (default) + if FREERTOS_GENERATE_RUN_TIME_STATS = y: + tasks: vTaskGetRunTimeStats (default) timers: prvInsertTimerInActiveList (default) timers: prvCheckForValidListAndQueue (default) timers: prvInitialiseNewTimer (default) @@ -65,6 +70,7 @@ entries: timers: prvProcessReceivedCommands (default) timers: xTimerCreateTimerTask (default) timers: xTimerCreate (default) + timers: xTimerCreateStatic (default) timers: xTimerGenericCommand (default) timers: xTimerGetPeriod (default) timers: xTimerGetExpiryTime (default) @@ -72,8 +78,12 @@ entries: timers: pvTimerGetTimerID (default) timers: vTimerSetTimerID (default) timers: prvGetNextExpireTime (default) + if FREERTOS_USE_TRACE_FACILITY = y: + timers: uxTimerGetTimerNumber (default) + timers: vTimerSetTimerNumber (default) event_groups: prvTestWaitCondition (default) event_groups: xEventGroupCreate (default) + event_groups: xEventGroupCreateStatic (default) event_groups: xEventGroupWaitBits (default) event_groups: xEventGroupClearBits (default) event_groups: xEventGroupSetBits (default) @@ -92,30 +102,24 @@ entries: queue: xQueueGiveMutexRecursive (default) queue: xQueueTakeMutexRecursive (default) queue: uxQueueMessagesWaiting (default) - queue: uxQueueGetQueueNumber (default) - queue: vQueueSetQueueNumber (default) - queue: ucQueueGetQueueType (default) - queue: vQueueAddToRegistry (default) - queue: pcQueueGetName (default) - queue: vQueueUnregisterQueue (default) queue: vQueueDelete (default) queue: vQueueWaitForMessageRestricted (default) queue: xQueueCreateSet (default) queue: xQueueAddToSet (default) queue: xQueueRemoveFromSet (default) queue: xQueueSelectFromSet (default) + queue: xQueueGenericCreateStatic (default) + queue: xQueueCreateMutexStatic (default) + queue: xQueueCreateCountingSemaphoreStatic (default) + if FREERTOS_QUEUE_REGISTRY_SIZE > 0: + queue: pcQueueGetName (default) + queue: vQueueAddToRegistry (default) + queue: vQueueUnregisterQueue (default) + if FREERTOS_USE_TRACE_FACILITY = y: + queue: uxQueueGetQueueNumber (default) + queue: vQueueSetQueueNumber (default) + queue: ucQueueGetQueueType (default) port_common:main_task (default) port:esp_startup_start_app (default) if ESP_SYSTEM_SINGLE_CORE_MODE = n: port:esp_startup_start_app_other_cores (default) - -if FREERTOS_SUPPORT_STATIC_ALLOCATION = y && FREERTOS_PLACE_FUNCTIONS_INTO_FLASH = y: - [mapping:freertos_static] - archive: libfreertos.a - entries: - queue:xQueueGenericCreateStatic (default) - queue: xQueueCreateCountingSemaphoreStatic (default) - tasks: xTaskCreateStaticPinnedToCore (default) - timers: xTimerCreateStatic (default) - event_groups: xEventGroupCreateStatic (default) - queue: xQueueCreateMutexStatic (default)