完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
最近在学习UCOS,看到书上说在完成中断子程序并在退出中断之前要运行 OSIntExit() 函数,如果有已经就绪的高优先级任务,那么该函数将进行任务切换。并在退出后执行高优先级的任务。
我的问题是: 中断本身是硬件产生,中断产生时现场的保护,中断结束后现场的恢复,都是硬件来处理的。UCOS是通过什么方法使CPU在退出中断后,去执行高优先级任务,而不是恢复到中断前的任务? 原则上说是这硬件进行的恢复,恢复也应该是中断前正在运行的任务。这些是如何通过代码改变的呢?难道是修改中断时硬件压栈的数据? |
|
相关推荐
3个回答
|
|
自己看看源代码不就知道了
|
|
|
|
中断服务程序的中断退出函数里不是调用了OS_TASK_SW()函数进行任务切换吗,这里进行环境保护和上下文切换(即你说的通过栈操作改变寄存器值)。
|
|
|
|
中断服务程序的中断退出函数里不是调用了OS_TASK_SW()函数进行任务切换吗,这里进行环境保护和上下文切换(即你说的通过栈操作改变寄存器值)。
|
|
|
|
只有小组成员才能发言,加入小组>>
341个成员聚集在这个小组
加入小组UCOSII中断中添加OSSemPost(Sem);程序无法运行
5014 浏览 1 评论
在BC5.0上编译uC/OS-II出现"eeror writing object file",怎样处理???
3225 浏览 1 评论
599浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-28 02:23 , Processed in 0.496532 second(s), Total 53, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号