@ -172,7 +172,7 @@ handle_asynchronous:
li t 4 , - 1
lw t 2 , 0 ( t 1 ) / * L o a d t h e l o w w o r d o f u l l N e x t T i m e i n t o t 2 . * /
lw t 3 , 4 ( t 1 ) / * L o a d t h e h i g h w o r d o f u l l N e x t T i m e i n t o t 3 . * /
sw t 4 , 0 ( t 0 ) / * L o w w o r d n o s m a l l e r t h a n o l d v a l u e . * /
sw t 4 , 0 ( t 0 ) / * L o w w o r d n o s m a l l e r t h a n o l d v a l u e t o s t a r t w i t h - w i l l b e o v e r w r i t t e n b e l o w . * /
sw t 3 , 4 ( t 0 ) / * S t o r e h i g h w o r d o f u l l N e x t T i m e i n t o c o m p a r e r e g i s t e r . N o s m a l l e r t h a n n e w v a l u e . * /
sw t 2 , 0 ( t 0 ) / * S t o r e l o w w o r d o f u l l N e x t T i m e i n t o c o m p a r e r e g i s t e r . * /
lw t 0 , u x T i m e r I n c r e m e n t s F o r O n e T i c k / * L o a d t h e v a l u e o f u l l T i m e r I n c r e m e n t F o r O n e T i c k i n t o t 0 ( c o u l d t h i s b e o p t i m i z e d b y s t o r i n g i n a n a r r a y n e x t t o p u l l N e x t T i m e ? ) . * /
@ -223,11 +223,13 @@ test_if_environment_call:
j p r o c e s s e d _ s o u r c e
is_exception :
ebreak
csrr t 0 , m c a u s e / * F o r v i e w i n g i n t h e d e b u g g e r o n l y . * /
csrr t 1 , m e p c / * F o r v i e w i n g i n t h e d e b u g g e r o n l y * /
csrr t 2 , m s t a t u s
j i s _ e x c e p t i o n
as_yet_unhandled :
ebreak
csrr t 0 , m c a u s e / * F o r v i e w i n g i n t h e d e b u g g e r o n l y . * /
j a s _ y e t _ u n h a n d l e d
processed_source :
@ -298,6 +300,7 @@ xPortStartFirstTask:
portasmRESTORE_ A D D I T I O N A L _ R E G I S T E R S / * D e f i n e d i n f r e e r t o s _ r i s c _ v _ c h i p _ s p e c i f i c _ e x t e n s i o n s . h t o r e s t o r e a n y r e g i s t e r s u n i q u e t o t h e R I S C - V i m p l e m e n t a t i o n . * /
load_ x t 0 , 2 9 * p o r t W O R D _ S I Z E ( s p ) / * m s t a t u s * /
addi t 0 , t 0 , 0 x08 / * S e t M I E b i t s o t h e f i r s t t a s k s t a r t s w i t h i n t e r r u p t s e n a b l e d - r e q u i r e d a s r e t u r n s w i t h r e t n o t e r e t . * /
csrrw x0 , m s t a t u s , t 0 / * I n t e r r u p t s e n a b l e d f r o m h e r e ! * /
load_ x x5 , 2 * p o r t W O R D _ S I Z E ( s p ) / * t 0 * /
@ -399,7 +402,7 @@ xPortStartFirstTask:
pxPortInitialiseStack :
csrr t 0 , m s t a t u s / * O b t a i n c u r r e n t m s t a t u s v a l u e . * /
addi t 1 , x0 , 0 x18 8 / * G e n e r a t e t h e v a l u e 0 x18 8 0 , w h i c h a r e t h e M PI E a n d MP P b i t s t o s e t i n m s t a t u s . * /
addi t 1 , x0 , 0 x18 8 / * G e n e r a t e t h e v a l u e 0 x18 8 8 , w h i c h a r e t h e M IE , M PI E a n d pr i v i l e g e b i t s t o s e t i n m s t a t u s . * /
slli t 1 , t 1 , 4
or t 0 , t 0 , t 1 / * S e t M P I E a n d M P P b i t s i n m s t a t u s v a l u e . * /