mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-05-02 03:12:05 -04:00
Replace asm wrappers to interrupt handlers with functions that use the interrupt attribute.
This commit is contained in:
parent
c92128869d
commit
66c1a9b76d
|
@ -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…
Reference in a new issue