完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
UCOS在任务切换时,R0~R3时由系统自动保存的,而R4-R11是手动保存的,很困惑:系统自动保存的R0~R3放在哪里? 是放在每个任务堆栈中吗? 在ucos iii源码哪个地方能看出来?
在PendSV_Handler中有两行代码: SUBS R0, R0, #0x20 STM R0, {R4-R11} 这里只是把堆栈指针给偏移了8个字而已,没看出来系统会把R0~R3等自动保存在这里啊 |
|
相关推荐
3个回答
|
|
|
是的,R0~R3自动入栈,都是压入当前任务的任务堆栈中,每个任务使用的堆栈指针都是PSP,中断中使用的是MSP,同过更改PSP的值来完成任务切换
|
|
|
|
|
|
CM3内核中在中断发生的时候系统自动将其中的8个寄存器入栈,偏移八个字是将R4~R11入栈,R0~R3放在对应的任务堆栈中。
|
|
|
|
|
|
“R0~R3放在对应的任务堆栈中” ,这个R0~R3是在CPU进入PendSV异常前自动入栈的吗?入栈的地址也是由PSP指向的,每个任务使用的堆栈指针都是PSP吗? 感谢解答!
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1093 浏览 1 评论
1909 浏览 0 评论
1886 浏览 1 评论
3308 浏览 5 评论
3632 浏览 9 评论
1094浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1412浏览 1评论
1910浏览 0评论
1226浏览 0评论
1364浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-18 04:38 , Processed in 1.104918 second(s), Total 78, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
6555