[ZLG-ARM] UCOS任务切换时关于寄存器入栈的疑问

[复制链接]
3292|1
 楼主| cbqcgq 发表于 2007-7-22 20:11 | 显示全部楼层 |阅读模式
UCOS中,任务切换开始时将寄存器入栈保护,这里的寄存器是不是指被挂起的任务使用的寄存器?ISR发生时,在执行中断服务代码前,入栈的寄存器是不是指被中断的任务的寄存器? 
zlgARM 发表于 2007-7-24 17:51 | 显示全部楼层

cbqcgq

您好:<br />&nbsp;&nbsp;&nbsp;&nbsp;中断也好,任务切换也好,都是指当前任务的控制权要让渡给另一任务。我们预期,另一任务执行完后,应该恢复当前任务的执行。<br />&nbsp;&nbsp;&nbsp;&nbsp;那么,我们就需要在执行另一任务之前,保存当前任务的重要信息,以便恢复当前任务的执行。被入栈保护的寄存器中就存储了这些重要信息的一部分。<br />&nbsp;&nbsp;&nbsp;&nbsp;详情请参考《ARM嵌入式系统基础教程》。<br /><br />PS:<br />&nbsp;&nbsp;&nbsp;&nbsp;当前任务环境一部分由用户保存到堆栈里,另一部分则由系统自动保存到备份寄存器里,CPSR被保存在SPSR里、PC则处理一下后保存到LR。所以任务环境的保存是由系统和用户协力完成的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

53

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部