|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在《ARM 微控制器基础与实战》程序清单 6.22 的 376 页的 OSIntCtxSW_1 中: LDR R4, [R6]
5 u- U+ i& J9 E. VADD SP, R4, #68 [: s/ u/ { _" J
LDR LR, [SP, #-8] - e$ Q& G% U- E* V
MSR CPSR_c, #(NoInt | SVC32Mode)
! ~* ^8 W, O. }6 i' j$ F/ |MOV SP, R4 LDMFD SP!, {R4,R5} + @. D. i( L9 N; U* x% t
LDR R3, =OsEnterSum w8 E2 D# T7 n/ f
STR R4, [R3] : @$ u- l" o+ h F P+ y
MSR SPSR_cxsf, R5 / b- b4 h4 b, m( m- `
LDMFD SP!, {R0-R12, LR, PC }^ }2 A/ s% Z4 R) @& s9 w/ D: \
请问高手 DMFD SP!, {R0-R12, LR, PC }^是不是恢复新任务工作寄存器和工作模式,LR 寄存器一并得到恢复,那么 ADD 指令后面的 LDR LR, [SP, #-8] 指令是不是可以去掉
9 H8 l* p: X, f0 `5 O& ?/ M9 y# K1 @; o! k1 v: n( e T
|
|