|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在《ARM 微控制器基础与实战》程序清单 6.22 的 376 页的 OSIntCtxSW_1 中: LDR R4, [R6]
0 c' c/ w% Y7 V5 \- B9 ^8 I* RADD SP, R4, #68 / T v0 p4 s( I( g# g+ K
LDR LR, [SP, #-8]
& b9 G5 O' ^, ?( k6 I! }0 ~9 EMSR CPSR_c, #(NoInt | SVC32Mode) # F4 w) k! T2 ^+ D- Y% j% R
MOV SP, R4 LDMFD SP!, {R4,R5}
: Y" Y& s: s% J) N% y! PLDR R3, =OsEnterSum 9 c* Y! S) A' ]; D% Z
STR R4, [R3] 9 h5 B9 v; J) H8 w
MSR SPSR_cxsf, R5 % d6 N$ Q) P) P; K8 K
LDMFD SP!, {R0-R12, LR, PC }^
( u9 g. b* U0 r) D6 d& c% _请问高手 DMFD SP!, {R0-R12, LR, PC }^是不是恢复新任务工作寄存器和工作模式,LR 寄存器一并得到恢复,那么 ADD 指令后面的 LDR LR, [SP, #-8] 指令是不是可以去掉 # e7 m6 G: E8 _6 P7 Z4 p( Q
! S. _, e1 l) S4 w; W$ h |
|