|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
问一个堆栈指针的问题 在 OSIntCtxSw_1,获取新任务堆栈指针. 0 V& X( W1 v- [
LDR R4, [R6]
" X) N T1 f# J' Y8 ]8 f& n6 RADD SP, R4, #68 ;17 寄存器
) ]4 q. K; R9 v9 R4 F; pCPSR,OsEnterSum,R0-R12,LR,SP
) C* n/ A: v4 L R3 ~LDR LR, [SP, #-8]
: k x! `4 V; h* |: m! NMSR CPSR_c, #(NoInt | SVC32Mode) ;进入管理模式 ! p( W3 n% C# L; M* ], i* B
MOV SP, R4 ;设置堆栈指针
8 Z3 X2 U$ {( Z, r" D/ c" R6 `LDMFD SP!, {R4,R5} ;CPSR,OsEnterSum
3 e, T4 \& W4 {( o;恢复新任务的 OsEnterSum
5 A& t* {' ]& y5 D6 V7 J...... . {. s5 Q( t! @; h: I! T' P
我想问一下 DR LR, [SP, #-8],这一行程序中,为什么堆栈指针要减去 8 个字节的值 ' u' h* t* R9 j3 p: v
& o6 [8 C- e& _! O* s8 P |
|