forked from epagris/FreeRTOS-Kernel
		
	OpenOCD Support: Re-introduce uxTopUsedPriority (#188)
* re-introduce uxTopUsedPriority. Prevent removal by optimization * Make uxTopUsedPriority volatile to avoid optimizer + code comment Co-authored-by: Cobus van Eeden <35851496+cobusve@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									a4625fbd4d
								
							
						
					
					
						commit
						b1307dbea8
					
				
							
								
								
									
										9
									
								
								tasks.c
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								tasks.c
									
									
									
									
									
								
							@ -379,6 +379,11 @@ PRIVILEGED_DATA static UBaseType_t uxTaskNumber = ( UBaseType_t ) 0U;
 | 
			
		||||
PRIVILEGED_DATA static volatile TickType_t xNextTaskUnblockTime = ( TickType_t ) 0U; /* Initialised to portMAX_DELAY before the scheduler starts. */
 | 
			
		||||
PRIVILEGED_DATA static TaskHandle_t xIdleTaskHandle = NULL;                          /*< Holds the handle of the idle task.  The idle task is created automatically when the scheduler is started. */
 | 
			
		||||
 | 
			
		||||
/* Improve support for OpenOCD. The kernel tracks Ready tasks via priority lists.
 | 
			
		||||
 * For tracking the state of remote threads, OpenOCD uses uxTopUsedPriority
 | 
			
		||||
 * to determine the number of priority lists to read back from the remote target. */
 | 
			
		||||
const volatile UBaseType_t uxTopUsedPriority = configMAX_PRIORITIES - 1U;
 | 
			
		||||
 | 
			
		||||
/* Context switches are held pending while the scheduler is suspended.  Also,
 | 
			
		||||
 * interrupts must not manipulate the xStateListItem of a TCB, or any of the
 | 
			
		||||
 * lists the xStateListItem can be referenced from, if the scheduler is suspended.
 | 
			
		||||
@ -2093,6 +2098,10 @@ void vTaskStartScheduler( void )
 | 
			
		||||
    /* Prevent compiler warnings if INCLUDE_xTaskGetIdleTaskHandle is set to 0,
 | 
			
		||||
     * meaning xIdleTaskHandle is not used anywhere else. */
 | 
			
		||||
    ( void ) xIdleTaskHandle;
 | 
			
		||||
    
 | 
			
		||||
    /* OpenOCD makes use of uxTopUsedPriority for thread debugging. Prevent uxTopUsedPriority 
 | 
			
		||||
     * from getting optimized out as it is no longer used by the kernel. */
 | 
			
		||||
    ( void ) uxTopUsedPriority;
 | 
			
		||||
}
 | 
			
		||||
/*-----------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user