|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
问一个堆栈指针的问题 在 OSIntCtxSw_1,获取新任务堆栈指针. " } i; Z0 p/ I8 F
LDR R4, [R6]
: x. l( H/ _* L% KADD SP, R4, #68 ;17 寄存器0 o* n& A/ h: [ P
CPSR,OsEnterSum,R0-R12,LR,SP ; |- }6 B: l- ?0 ]
LDR LR, [SP, #-8]
$ d& V3 @; s5 Q/ ]' s. K JMSR CPSR_c, #(NoInt | SVC32Mode) ;进入管理模式 + U, s J% y7 w E3 t2 F( I
MOV SP, R4 ;设置堆栈指针
4 `2 \# K& v! e H) P8 H* U( w" oLDMFD SP!, {R4,R5} ;CPSR,OsEnterSum
K/ J' f* K! L+ R;恢复新任务的 OsEnterSum
o6 a$ e8 C0 _; m7 @! @! i2 D...... 7 S( n) | |+ ]' w+ W- T; t q
我想问一下 DR LR, [SP, #-8],这一行程序中,为什么堆栈指针要减去 8 个字节的值
( I$ {, r. f4 e+ l# W$ ~# D! I, o1 o- e% J& g" k
|
|