EDA365电子论坛网
标题:
LDR LR, [SP, #-8],这一行程序中,为什么堆栈指针要减去 8 个字节的值
[打印本页]
作者:
Maskman
时间:
2023-2-6 10:22
标题:
LDR LR, [SP, #-8],这一行程序中,为什么堆栈指针要减去 8 个字节的值
问一个堆栈指针的问题 在 OSIntCtxSw_1,获取新任务堆栈指针.
; ]# [7 y- Y' q/ S2 x2 j m
LDR R4, [R6]
. f9 p& W2 f F3 w* T; b9 |
ADD SP, R4, #68 ;17 寄存器
+ F4 O8 z B5 K; b- L
CPSR,OsEnterSum,R0-R12,LR,SP
4 ^0 P( d& U- v
LDR LR, [SP, #-8]
/ A6 p7 p5 g$ b
MSR CPSR_c, #(NoInt | SVC32Mode) ;进入管理模式
5 _4 P3 K0 U x2 \- X
MOV SP, R4 ;设置堆栈指针
5 K, d2 q2 e" ` F; ]# h( d
LDMFD SP!, {R4,R5} ;CPSR,OsEnterSum
* n& r0 j; L1 B% D
;恢复新任务的 OsEnterSum
1 P- b% b" J1 m$ K4 b
......
/ R+ u! b4 F4 k5 C$ g, b3 b1 P# f
我想问一下
DR LR, [SP, #-8],这一行程序中,为什么堆栈指针要减去 8 个字节的值
" P3 s- Z6 }% G4 A% r* T. Y
0 a" }) U/ R+ H$ Q; O
作者:
lili_qq
时间:
2023-2-6 11:08
问题是随 2104 中的 ucos 不支持中断嵌套.在不嵌套时 4000 次/秒也是正常的.
作者:
STGing
时间:
2023-2-6 13:45
意味着堆栈增长8个字节向下,从而允许在那里存储更多8字节的数据。
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2