|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
问一个堆栈指针的问题 在 OSIntCtxSw_1,获取新任务堆栈指针.
6 K- x' Z! u- F( l9 x' Y& C! W" f; jLDR R4, [R6]
$ a6 Y! t# F; GADD SP, R4, #68 ;17 寄存器
3 P$ j: J2 {, `- Y7 LCPSR,OsEnterSum,R0-R12,LR,SP
, s b8 p% u6 Y3 M+ QLDR LR, [SP, #-8]
, I; Q' ?- u" z" U$ U+ ~! wMSR CPSR_c, #(NoInt | SVC32Mode) ;进入管理模式 ( O$ {5 {& g/ m9 p
MOV SP, R4 ;设置堆栈指针 . {& l, ^% K0 W/ K0 c
LDMFD SP!, {R4,R5} ;CPSR,OsEnterSum
* h5 Y" {+ _. a$ v+ f! o;恢复新任务的 OsEnterSum 4 `% {" S, T5 l5 ~* v
......
$ F0 i6 }6 B- x6 j我想问一下 DR LR, [SP, #-8],这一行程序中,为什么堆栈指针要减去 8 个字节的值
! F6 }/ [: \7 _# j. b, P+ a) o" j8 ]8 S! \
|
|