mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-08-19 09:38:32 -04:00
Update the GCC Cortex-A9 port to introduce a version of the IRQ handler that saves the FPU registers.
This commit is contained in:
parent
ac67c39be9
commit
345819d550
5 changed files with 78 additions and 5 deletions
|
@ -147,7 +147,14 @@ void vClearTickInterrupt( void )
|
|||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vApplicationIRQHandler( uint32_t ulICCIAR )
|
||||
/* This is the callback function which is called by the FreeRTOS Cortex-A port
|
||||
layer in response to an interrupt. If the function is called
|
||||
vApplicationFPUSafeIRQHandler() then it is called after the floating point
|
||||
registers have been saved. If the function is called vApplicationIRQHandler()
|
||||
then it will be called without first having saved the FPU registers. See
|
||||
http://www.freertos.org/Using-FreeRTOS-on-Cortex-A-Embedded-Processors.html for
|
||||
more information */
|
||||
void vApplicationFPUSafeIRQHandler( uint32_t ulICCIAR )
|
||||
{
|
||||
extern const XScuGic_Config XScuGic_ConfigTable[];
|
||||
static const XScuGic_VectorTableEntry *pxVectorTable = XScuGic_ConfigTable[ XPAR_SCUGIC_SINGLE_DEVICE_ID ].HandlerTable;
|
||||
|
@ -155,7 +162,7 @@ uint32_t ulInterruptID;
|
|||
const XScuGic_VectorTableEntry *pxVectorEntry;
|
||||
|
||||
/* Re-enable interrupts. */
|
||||
__asm ( "cpsie i" );
|
||||
__asm ( "cpsie i" );
|
||||
|
||||
/* The ID of the interrupt is obtained by bitwise anding the ICCIAR value
|
||||
with 0x3FF. */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue