|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 pulbieup 于 2019-8-28 14:27 编辑
1 ]" C8 l! g. H# w9 h% K! }" n ^7 H6 }& c+ ^3 u% y
2、3分别对应关中断和开中断* _) T: f+ u5 f, e( J+ U
) _) C; e$ ?7 j
关中断:MRS R0, SPSR //在软件中断的时候直接对程序状态保存寄存器SPSR操作也就是对CPSR的操作( M2 C+ N: i1 s; l; ]5 q
ORR R0, R0, #NoInt //在汇编语言中对寄存器的对应位置位用ORR,清零用BIC4 R6 u, C9 z7 t+ `3 J# h( s
MSR SPSR_c, R0 //SPSR_c表示的是只改变SPSR的控制段的8位代码,其他三段_f,_s,_x中标志位在_f段,其他为保留位. P$ l" s4 M0 d# P1 D& U
9 F% k2 a# p( P5 ~+ t
开中断:MRS R0, SPSR //在开中断中基本与上面相同,只是ORR改成BIC清零
0 l4 l- I; A: T# z ~0 c BIC R0, R0, #NoInt
, _3 A" L2 ?3 _6 D- p7 W# K3 k MSR SPSR_c, R
. e& x4 C# k9 ~; d# Q! G b p8 M/ O* \/ N- r+ U
由于需要实现中断嵌套,所以只有当关中断的计数器减为0的时候才能够开中断,而且每次关中断的时候该计数器都应该加1。另外,插入汇编语言时用_asm指令。! L. v, |6 S0 ~
: v9 i$ m7 k9 r Q. O
, V/ g/ U9 D7 Y! m
) {) d% w$ u. k5 V; ` I3 Y
2 J, Y( U+ s% S/ r2 f |
|