mirror of
				https://github.com/FreeRTOS/FreeRTOS-Kernel.git
				synced 2025-11-04 02:32:42 -05:00 
			
		
		
		
	Replace asm wrappers to interrupt handlers with functions that use the interrupt attribute.
This commit is contained in:
		
							parent
							
								
									c92128869d
								
							
						
					
					
						commit
						66c1a9b76d
					
				
					 2 changed files with 3 additions and 11 deletions
				
			
		| 
						 | 
					@ -98,7 +98,7 @@ void vSoftwareInterruptISR( void ) __attribute__((naked));
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * The tick interrupt handler.
 | 
					 * The tick interrupt handler.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
void vTickISR( void ) __attribute__((naked));
 | 
					void vTickISR( void ) __attribute__((interrupt));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -336,9 +336,8 @@ void vSoftwareInterruptISR( void )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void vTickISR( void )
 | 
					void vTickISR( void )
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	/* This is a naked function.  This macro saves registers then re-enables
 | 
						/* Re-enabled interrupts. */
 | 
				
			||||||
	interrupts. */
 | 
						__asm volatile( "SETPSW	I" );
 | 
				
			||||||
	portENTER_INTERRUPT();
 | 
					 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	/* Increment the tick, and perform any processing the new tick value
 | 
						/* Increment the tick, and perform any processing the new tick value
 | 
				
			||||||
	necessitates.  Ensure IPL is at the max syscall value first. */
 | 
						necessitates.  Ensure IPL is at the max syscall value first. */
 | 
				
			||||||
| 
						 | 
					@ -352,9 +351,6 @@ void vTickISR( void )
 | 
				
			||||||
	#if( configUSE_PREEMPTION == 1 )
 | 
						#if( configUSE_PREEMPTION == 1 )
 | 
				
			||||||
		taskYIELD();
 | 
							taskYIELD();
 | 
				
			||||||
	#endif
 | 
						#endif
 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	/* Retore registers, then return. */
 | 
					 | 
				
			||||||
	portEXIT_INTERRUPT();
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -122,10 +122,6 @@ void vPortSetIPL( unsigned long ulNewIPL ) __attribute__((naked));
 | 
				
			||||||
#define portSET_INTERRUPT_MASK_FROM_ISR() ulPortGetIPL(); portDISABLE_INTERRUPTS()
 | 
					#define portSET_INTERRUPT_MASK_FROM_ISR() ulPortGetIPL(); portDISABLE_INTERRUPTS()
 | 
				
			||||||
#define portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ) vPortSetIPL( uxSavedInterruptStatus )
 | 
					#define portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ) vPortSetIPL( uxSavedInterruptStatus )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define portENTER_INTERRUPT() __asm volatile( "PUSHM	R1-R15 \t\n SETPSW	I" )
 | 
					 | 
				
			||||||
#define portEXIT_INTERRUPT() __asm volatile( "POPM R1-R15 \t\n  RTE" )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Task function macros as described on the FreeRTOS.org WEB site. */
 | 
					/* Task function macros as described on the FreeRTOS.org WEB site. */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue