mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-11-03 22:08:28 +00:00 
			
		
		
		
	This commit removes the dependency on portUSING_MPU_WRAPPERS on the Xtensa port of IDF FreeRTOS. This dependency was added due to a hack implemented in the upstream port that required the usage of the "xMPUSettings" member of the TCB. The "xMPUSettings" would be used as a pointer to the task's coprocessor save area on the stack, even though FreeRTOS MPU support was not available. The hack has now been removed, and the CPSA pointer is now calculated using a combination of constant offsets values and the pxEndOfStack member of the TCB. Note: This impelemtation was copied from the Xtensa port of Amazon SMP FreeRTOS.
		
			
				
	
	
		
			139 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			139 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# Linker fragment file for IDF FreeRTOS (i.e., CONFIG_FREERTOS_SMP=n)
 | 
						|
[mapping:freertos]
 | 
						|
archive: libfreertos.a
 | 
						|
entries:
 | 
						|
    * (noflash_text)
 | 
						|
    if FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH = y:
 | 
						|
        # vTaskGetSnapshot is omitted on purpose: as it is used to by the Task Watchdog (TWDT) interrupt
 | 
						|
        # handler, we want to always keep it in IRAM
 | 
						|
        tasks: pxTaskGetNext (default)
 | 
						|
        tasks: uxTaskGetSnapshotAll (default)
 | 
						|
        tasks: pxGetNextTaskList (default)
 | 
						|
    if FREERTOS_PLACE_FUNCTIONS_INTO_FLASH = y:
 | 
						|
        port: pxPortInitialiseStack (default)
 | 
						|
        port: xPortStartScheduler (default)
 | 
						|
        if IDF_TARGET_ESP32 = y || IDF_TARGET_ESP32S3 = y :
 | 
						|
            port: vPortCleanUpCoprocArea (default)
 | 
						|
        tasks: prvTaskCheckFreeStackSpace (default)
 | 
						|
        tasks: prvInitialiseNewTask (default)
 | 
						|
        tasks: prvInitialiseTaskLists (default)
 | 
						|
        tasks: prvDeleteTCB (default)
 | 
						|
        tasks: prvCheckTasksWaitingTermination (default)
 | 
						|
        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: xTaskGetIdleTaskHandle (default)
 | 
						|
        tasks: vTaskRemoveFromUnorderedEventList (default)
 | 
						|
        tasks: uxTaskPriorityGet (default)
 | 
						|
        tasks: vTaskPrioritySet (default)
 | 
						|
        tasks: prvTaskPriorityRaise (default)
 | 
						|
        tasks: prvTaskPriorityRestore (default)
 | 
						|
        tasks: vTaskSetThreadLocalStoragePointerAndDelCallback (default)
 | 
						|
        tasks: pvTaskGetThreadLocalStoragePointer (default)
 | 
						|
        tasks: xTaskGetCurrentTaskHandleForCPU (default)
 | 
						|
        tasks: vTaskDelete (default)
 | 
						|
        tasks: vTaskDelayUntil (default)
 | 
						|
        tasks: xTaskDelayUntil (default)
 | 
						|
        tasks: vTaskDelay (default)
 | 
						|
        tasks: vTaskSuspend (default)
 | 
						|
        tasks: xTaskResumeAll (default)
 | 
						|
        tasks: uxTaskResetEventItemValue (default)
 | 
						|
        tasks: ulTaskNotifyTake (default)
 | 
						|
        tasks: ulTaskGenericNotifyTake (default)
 | 
						|
        tasks: xTaskNotifyWait (default)
 | 
						|
        tasks: xTaskGenericNotifyWait (default)
 | 
						|
        tasks: xTaskGenericNotify (default)
 | 
						|
        tasks: eTaskGetState (default)
 | 
						|
        tasks: pxTaskGetStackStart (default)
 | 
						|
        tasks: uxTaskGetStackHighWaterMark (default)
 | 
						|
        tasks: vTaskEndScheduler (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)
 | 
						|
        timers: prvTimerTask (default)
 | 
						|
        timers: prvSwitchTimerLists (default)
 | 
						|
        timers: prvSampleTimeNow (default)
 | 
						|
        timers: prvProcessExpiredTimer (default)
 | 
						|
        timers: prvProcessTimerOrBlockTask (default)
 | 
						|
        timers: prvProcessReceivedCommands (default)
 | 
						|
        timers: xTimerCreateTimerTask (default)
 | 
						|
        timers: xTimerCreate (default)
 | 
						|
        timers: xTimerCreateStatic (default)
 | 
						|
        timers: xTimerGenericCommand (default)
 | 
						|
        timers: xTimerGetPeriod (default)
 | 
						|
        timers: xTimerGetExpiryTime (default)
 | 
						|
        timers: xTimerIsTimerActive (default)
 | 
						|
        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)
 | 
						|
        event_groups: xEventGroupSync (default)
 | 
						|
        event_groups: vEventGroupDelete (default)
 | 
						|
        if FREERTOS_UNICORE = y:
 | 
						|
            queue: prvUnlockQueue (default)
 | 
						|
            queue: prvIsQueueEmpty (default)
 | 
						|
            queue: prvIsQueueFull (default)
 | 
						|
        queue: prvInitialiseNewQueue (default)
 | 
						|
        queue: prvInitialiseMutex (default)
 | 
						|
        queue: uxQueueSpacesAvailable (default)
 | 
						|
        queue: xQueueGenericReset (default)
 | 
						|
        queue: xQueueGenericCreate (default)
 | 
						|
        queue: xQueueGetMutexHolder (default)
 | 
						|
        queue: xQueueCreateCountingSemaphore (default)
 | 
						|
        queue: xQueueGenericSend (default)
 | 
						|
        queue: xQueueCreateMutex (default)
 | 
						|
        queue: xQueueGiveMutexRecursive (default)
 | 
						|
        queue: xQueueTakeMutexRecursive (default)
 | 
						|
        queue: uxQueueMessagesWaiting (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)
 | 
						|
    # app_startup.c
 | 
						|
    app_startup: esp_startup_start_app (default)
 | 
						|
    if CONFIG_FREERTOS_UNICORE = n:
 | 
						|
        app_startup: esp_startup_start_app_other_cores (default)
 | 
						|
        app_startup: other_cpu_startup_idle_hook_cb (default)
 | 
						|
    app_startup: main_task (default)
 | 
						|
    # port_common.c Functions
 | 
						|
    port_common:vApplicationGetIdleTaskMemory (default)
 | 
						|
    port_common:vApplicationGetTimerTaskMemory (default)
 |