嵌入式技术论坛
直播中

王芳

7年用户 1421经验值
私信 关注
[问答]

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

问一个堆栈指针的问题 在 OSIntCtxSw_1,获取新任务堆栈指针.
LDR R4, [R6]
ADD SP, R4, #68 ;17 寄存器
CPSR,OsEnterSum,R0-R12,LR,SP
LDR LR, [SP, #-8]
MSR CPSR_c, #(NoInt | SVC32Mode) ;进入管理模式
MOV SP, R4 ;设置堆栈指针
LDMFD SP!, {R4,R5} ;CPSR,OsEnterSum
;恢复新任务的 OsEnterSum
......
我想问一下

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

回帖(2)

王伟

2023-2-27 10:41:10
问题是随 2104 中的 ucos 不支持中断嵌套.在不嵌套时 4000 次/秒也是正常的.
举报

訾存贵

2023-2-27 10:41:20
意味着堆栈增长8个字节向下,从而允许在那里存储更多8字节的数据。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分