找回密码
 注册
关于网站域名变更的通知
查看: 327|回复: 2
打印 上一主题 下一主题

OS_CPU_S.s 文件中有如下一段代码,其中有两句代码的作用不是很明白,请解说一下.

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2023-1-5 10:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
在 OS_CPU_S.s 文件中有如下一段代码,其中有两句代码的作用不是很明白,请解说一下. OSIntCtxSw_1 ! _) d: D- G/ J7 J9 f( ?: N
LDR R4, [R6] ;获取新任务堆栈指针 ( j& K% u; @7 B5 d# X8 d: R
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
& c" H' s" T6 H;这两行代码有何作用呢 * t: @  N. n" D, Q0 U
ADD SP, R4, #68 ;17 寄存器 CPSR,OsEnterSum,R0-R12,LR,SP 6 w( m. y! m% R4 z: V& T
LDR LR, [SP, #-8] 6 b( j5 s* h& [! Q  v$ m
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + P0 c) J# ^; B- r2 w! E8 p
MSR CPSR_c, #(NoInt | SVC32Mode) ;进入管理模式
" r) V) {! M- R; R6 X& f! vMOV SP, R4 ;设置堆栈指针 " Q; W( s" `6 r# x0 G- i& A5 F" Z
LDMFD SP!,{R4, R5} ;CPSR,OsEnterSum
1 c, S$ D( ~: ^& b& u; ~;恢复新任务的 OsEnterSum
& T" A4 E! n+ t0 h! s) T' l; hLDR R3, =OsEnterSum . I' |/ G6 k) _1 V5 i; q, E3 j
STR R4, [R3] % G. q$ N# r2 m1 y" \" a
MSR SPSR_cxsf, R5 ;恢复 CPSR
6 ]* ^) N: h' W0 u9 MLDMFD SP!, {R0-R12, LR, PC }^ ;运行新任务 ( z0 y& ?* E6 k5 i3 U* \5 b

) X$ i2 a" o5 U6 D1 _/ t

该用户从未签到

2#
发表于 2023-1-5 10:59 | 只看该作者
这两条指令是在系统模式下恢复用户模式下的 LR;" P& E4 W4 t" @5 }
可以看一看《ARM 微控制器基础与实战》6.4.9 节,就明白了。

该用户从未签到

3#
发表于 2023-1-5 13:29 | 只看该作者
移植UCOS最主要的就是Os_cpu_a.s和Os_cpu_c.c
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-23 15:15 , Processed in 0.156250 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表