Просмотр исходного кода

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.
Ivan Grokhotkov 5 лет назад
Родитель
Сommit
cfdfeed973
1 измененных файлов с 25 добавлено и 21 удалено
  1. 25 21
      components/freertos/linker.lf

+ 25 - 21
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)