|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
问一个堆栈指针的问题 在 OSIntCtxSw_1,获取新任务堆栈指针. # N; n( `2 ^1 x# V2 \
LDR R4, [R6]
: e( K% t+ v- V. R% V% BADD SP, R4, #68 ;17 寄存器
! @$ z& A/ j0 q6 V8 WCPSR,OsEnterSum,R0-R12,LR,SP
* U; o' q2 A/ C3 b$ W5 TLDR LR, [SP, #-8] ! {) Y) }! z) |1 L6 M0 z0 W
MSR CPSR_c, #(NoInt | SVC32Mode) ;进入管理模式
9 ^: X, e) `2 s- X- _4 nMOV SP, R4 ;设置堆栈指针 5 S, v6 d o/ l
LDMFD SP!, {R4,R5} ;CPSR,OsEnterSum ; l; d, m6 P: ?) M* |
;恢复新任务的 OsEnterSum
5 l# ~4 ^+ Z; w3 j) J, J8 @2 p" v8 g1 }...... . D6 K4 m7 k/ ?# J, u! B
我想问一下 DR LR, [SP, #-8],这一行程序中,为什么堆栈指针要减去 8 个字节的值 : K: O; \7 @! s
9 o2 F" O9 P) H! X6 }
|
|