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

LDR LR, [SP, #-8],这一行程序中,为什么堆栈指针要减去 8 个字节的值

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
问一个堆栈指针的问题 在 OSIntCtxSw_1,获取新任务堆栈指针. * G. z0 V5 q+ G8 ]" E$ \) x- z9 [2 r
LDR R4, [R6]
5 l) d. w; N: E' \3 E. MADD SP, R4, #68 ;17 寄存器# z* @3 I9 `% p; d8 E! F
CPSR,OsEnterSum,R0-R12,LR,SP
$ O. C9 P6 ?& \' E4 h- QLDR LR, [SP, #-8]
) L7 |4 x( p/ Z% A0 n8 N. UMSR CPSR_c, #(NoInt | SVC32Mode) ;进入管理模式 ( K" _8 x% w! k5 ^0 \
MOV SP, R4 ;设置堆栈指针 * C" D2 g; K% a; M( H$ g  E& V, c8 `2 O
LDMFD SP!, {R4,R5} ;CPSR,OsEnterSum
) Z3 r/ ]! @7 ?7 u- X4 h. |;恢复新任务的 OsEnterSum
: g  e+ B, S- d7 d  N5 s/ i7 J+ ]......   j6 U: T4 R2 q# e: N
我想问一下DR LR, [SP, #-8],这一行程序中,为什么堆栈指针要减去 8 个字节的值 9 x" ]8 _5 w. _/ m
) J* n, q; \5 }: O

该用户从未签到

2#
发表于 2023-2-6 11:08 | 只看该作者
问题是随 2104 中的 ucos 不支持中断嵌套.在不嵌套时 4000 次/秒也是正常的.

该用户从未签到

3#
发表于 2023-2-6 13:45 | 只看该作者
意味着堆栈增长8个字节向下,从而允许在那里存储更多8字节的数据。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-23 19:08 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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