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  mLDR R4, [R6]
. f9 p& W2 f  F3 w* T; b9 |ADD SP, R4, #68 ;17 寄存器
+ F4 O8 z  B5 K; b- LCPSR,OsEnterSum,R0-R12,LR,SP
4 ^0 P( d& U- vLDR LR, [SP, #-8] / A6 p7 p5 g$ b
MSR CPSR_c, #(NoInt | SVC32Mode) ;进入管理模式
5 _4 P3 K0 U  x2 \- XMOV 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. Y0 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