|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
问一个堆栈指针的问题 在 OSIntCtxSw_1,获取新任务堆栈指针. * G. z0 V5 q+ G8 ]" E$ \) x- z9 [2 r
LDR R4, [R6]
5 l) d. w; N: E' \3 E. MADD SP, R4, #68 ;17 寄存器# z* @3 I9 `% p; d8 E! F
CPSR,OsEnterSum,R0-R12,LR,SP
$ O. C9 P6 ?& \' E4 h- QLDR LR, [SP, #-8]
) L7 |4 x( p/ Z% A0 n8 N. UMSR CPSR_c, #(NoInt | SVC32Mode) ;进入管理模式 ( K" _8 x% w! k5 ^0 \
MOV SP, R4 ;设置堆栈指针 * C" D2 g; K% a; M( H$ g E& V, c8 `2 O
LDMFD SP!, {R4,R5} ;CPSR,OsEnterSum
) Z3 r/ ]! @7 ?7 u- X4 h. |;恢复新任务的 OsEnterSum
: g e+ B, S- d7 d N5 s/ i7 J+ ]...... j6 U: T4 R2 q# e: N
我想问一下 DR LR, [SP, #-8],这一行程序中,为什么堆栈指针要减去 8 个字节的值 9 x" ]8 _5 w. _/ m
) J* n, q; \5 }: O
|
|