|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在《ARM 微控制器基础与实战》程序清单 6.22 的 376 页的 OSIntCtxSW_1 中: LDR R4, [R6]
% p+ m& B. E( W8 K7 X& Z3 BADD SP, R4, #68
9 M/ J" d* `5 M6 [1 C+ ?% j: rLDR LR, [SP, #-8]
- ^6 M& f% J, s6 H6 t( V2 mMSR CPSR_c, #(NoInt | SVC32Mode) * j0 F" ?$ i1 A# w
MOV SP, R4 LDMFD SP!, {R4,R5} - a6 a+ T1 a4 T5 P9 e& L$ N) v0 b! N
LDR R3, =OsEnterSum / I* G! x# D. c8 H" ~2 r4 T
STR R4, [R3]
( |. G% d& z7 X! n9 nMSR SPSR_cxsf, R5
+ `$ J* F! m% x# Z9 X$ vLDMFD SP!, {R0-R12, LR, PC }^ ( Y5 X1 S) h( a! s# b& |
请问高手 DMFD SP!, {R0-R12, LR, PC }^是不是恢复新任务工作寄存器和工作模式,LR 寄存器一并得到恢复,那么 ADD 指令后面的 LDR LR, [SP, #-8] 指令是不是可以去掉 . R. T+ \4 b2 w& U7 Q3 e
3 `$ k- X( C9 `( a! J |
|