mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-10-30 20:51:41 +00:00 
			
		
		
		
	 c5fe3ec05d
			
		
	
	c5fe3ec05d
	
	
	
		
			
			This commit adds various ...WithCaps() functions to create FreeRTOS objects with specific memory capabilities.
		
			
				
	
	
		
			83 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # Linker fragment file for common FreeRTOS files (i.e., both "port_common.c" and "esp_additions/..."
 | |
| # Flash function placements are listed per source file, in the order that they appear in the source file.
 | |
| 
 | |
| [mapping:freertos_common]
 | |
| archive: libfreertos.a
 | |
| entries:
 | |
|     # ------------------------------------------------------------------------------------------------------------------
 | |
|     # esp_additions/private_include/freertos_tasks_c_additions.h
 | |
|     # Placement Rules (Task Snapshot):
 | |
|     #   - Default: Place all functions in internal RAM.
 | |
|     #   - CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH: Place functions in flash
 | |
|     #   - 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
 | |
|     # Placement Rules (FreeRTOS API Additions):
 | |
|     #   - Default: Place all functions in internal RAM.
 | |
|     #   - CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH: Place functions in flash if they are never called from an ISR
 | |
|     #     context (directly or indirectly).
 | |
|     # ------------------------------------------------------------------------------------------------------------------
 | |
|     # Task Snapshot
 | |
|     if FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH = y:
 | |
|         tasks:pxGetNextTaskList (default)
 | |
|         tasks:pxTaskGetNext (default)
 | |
|         tasks:uxTaskGetSnapshotAll (default)
 | |
|     # FreeRTOS API Additions
 | |
|     if FREERTOS_PLACE_FUNCTIONS_INTO_FLASH = y:
 | |
|         if FREERTOS_SMP = y:
 | |
|             tasks:xTaskCreatePinnedToCore (default)
 | |
|             tasks:xTaskCreateStaticPinnedToCore (default)
 | |
|         tasks:xTaskGetCurrentTaskHandleForCPU (default)
 | |
|         tasks:xTaskGetIdleTaskHandleForCPU (default)
 | |
|         tasks:xTaskGetAffinity (default)
 | |
|         if FREERTOS_TLSP_DELETION_CALLBACKS = y:
 | |
|             tasks:vTaskSetThreadLocalStoragePointerAndDelCallback (default)
 | |
|         tasks:prvTaskPriorityRaise (default)
 | |
|         tasks:prvTaskPriorityRestore (default)
 | |
| 
 | |
|     # ------------------------------------------------------------------------------------------------------------------
 | |
|     # idf_additions.c
 | |
|     # Placement Rules: Functions always in flash as they are never called from an ISR
 | |
|     # ------------------------------------------------------------------------------------------------------------------
 | |
|     idf_additions (default)
 | |
| 
 | |
|     # ------------------------------------------------------------------------------------------------------------------
 | |
|     # app_startup.c
 | |
|     # Placement Rules: Functions always in flash as they are never called from an ISR
 | |
|     # ------------------------------------------------------------------------------------------------------------------
 | |
|     app_startup (default)           # Place functions (but not Data and BSS) to flash
 | |
| 
 | |
|     # ------------------------------------------------------------------------------------------------------------------
 | |
|     # FreeRTOS-openocd.c
 | |
|     # Placement Rules: All functions/data in internal RAM as they are called/used by OpenOCD
 | |
|     # ------------------------------------------------------------------------------------------------------------------
 | |
|     FreeRTOS-openocd (noflash)
 | |
| 
 | |
|     # ------------------------------------------------------------------------------------------------------------------
 | |
|     # heap_idf.c
 | |
|     # Placement Rules:
 | |
|     #   - Default: Place all functions in internal RAM.
 | |
|     #   - CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH: Place functions in flash if they are never called from an ISR
 | |
|     #     context (directly or indirectly).
 | |
|     # ------------------------------------------------------------------------------------------------------------------
 | |
|     heap_idf (noflash_text)         # Default all functions to internal RAM
 | |
|     if FREERTOS_PLACE_FUNCTIONS_INTO_FLASH = y:
 | |
|         heap_idf:pvPortMalloc (default)
 | |
|         heap_idf:vPortFree (default)
 | |
|         heap_idf:xPortGetFreeHeapSize (default)
 | |
|         heap_idf:xPortGetMinimumEverFreeHeapSize (default)
 | |
|         if FREERTOS_SMP = n:
 | |
|             heap_idf:xPortCheckValidTCBMem (default)
 | |
|             heap_idf:xPortcheckValidStackMem (default)
 | |
| 
 | |
|     # ------------------------------------------------------------------------------------------------------------------
 | |
|     # port_common.c
 | |
|     # Placement Rules:
 | |
|     #   - Default: Place all functions in internal RAM.
 | |
|     #   - CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH: Place functions in flash if they are never called from an ISR
 | |
|     #     context (directly or indirectly).
 | |
|     # ------------------------------------------------------------------------------------------------------------------
 | |
|     port_common (noflash_text)      # Default all functions to internal RAM
 | |
|     if FREERTOS_PLACE_FUNCTIONS_INTO_FLASH = y:
 | |
|         port_common:vApplicationGetIdleTaskMemory (default)
 | |
|         port_common:vApplicationGetTimerTaskMemory (default)
 |