@ -39,6 +39,7 @@
.extern pxCurrentTCB
.extern pxCurrentTCB
.extern vTaskSwitchContext
.extern vTaskSwitchContext
.extern vApplicationIRQHandler
.extern vApplicationIRQHandler
.extern vApplicationFPUSafeIRQHandler
.extern ulPortInterruptNesting
.extern ulPortInterruptNesting
.extern ulPortTaskHasFPUContext
.extern ulPortTaskHasFPUContext
.extern ulICCEOIR
.extern ulICCEOIR
@ -237,6 +238,50 @@ vApplicationSVCHandler:
/*-----------------------------------------------------------*/
/*-----------------------------------------------------------*/
/ * If t h e a p p l i c a t i o n p r o v i d e s a n i m p l e m e n t a t i o n o f v A p p l i c a t i o n I R Q H a n d l e r ( ) ,
* then i t w i l l g e t c a l l e d d i r e c t l y w i t h o u t s a v i n g t h e F P U r e g i s t e r s o n
* interrupt e n t r y , a n d t h i s w e a k i m p l e m e n t a t i o n o f v A p p l i c a t i o n I R Q H a n d l e r ( )
* will n o t g e t c a l l e d .
*
* If t h e a p p l i c a t i o n p r o v i d e s i t s o w n i m p l e m e n t a t i o n o f
* vApplicationFPUSafeIRQHandler( ) t h e n t h i s i m p l e m e n t a t i o n o f
* vApplicationIRQHandler( ) w i l l b e c a l l e d , s a v e t h e F P U r e g i s t e r s , a n d t h e n
* call v A p p l i c a t i o n F P U S a f e I R Q H a n d l e r ( ) .
*
* Therefore, i f t h e a p p l i c a t i o n w r i t e r w a n t s F P U r e g i s t e r s t o b e s a v e d o n
* interrupt e n t r y , t h e i r I R Q h a n d l e r m u s t b e c a l l e d
* vApplicationFPUSafeIRQHandler( ) , a n d i f t h e a p p l i c a t i o n w r i t e r d o e s n o t w a n t
* FPU r e g i s t e r s t o b e s a v e d o n i n t e r r u p t e n t r y t h e i r I R Q h a n d l e r m u s t b e
* called v A p p l i c a t i o n I R Q H a n d l e r ( ) .
* /
.align 4
.weak vApplicationIRQHandler
.type vApplicationIRQHandler, % f u n c t i o n
vApplicationIRQHandler :
PUSH { L R }
VMRS R 1 , F P S C R
VPUSH { D 0 - D 7 }
PUSH { R 1 }
BLX v A p p l i c a t i o n F P U S a f e I R Q H a n d l e r
POP { R 0 }
VPOP { D 0 - D 7 }
VMSR F P S C R , R 0
POP { P C }
/*-----------------------------------------------------------*/
.align 4
.weak vApplicationFPUSafeIRQHandler
.type vApplicationFPUSafeIRQHandler, % f u n c t i o n
vApplicationFPUSafeIRQHandler :
B v A p p l i c a t i o n F P U S a f e I R Q H a n d l e r
/*-----------------------------------------------------------*/
/ *
/ *
* UBaseType_ t u l P o r t C o u n t L e a d i n g Z e r o s ( U B a s e T y p e _ t u l B i t m a p ) ;
* UBaseType_ t u l P o r t C o u n t L e a d i n g Z e r o s ( U B a s e T y p e _ t u l B i t m a p ) ;
*
*