3875|2

22

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

请教一下ucos在运行一个任务来中断,任务跟中断是怎么切换的? [复制链接]

 本人是菜鸟,请教一下ucos在运行一个任务来中断,任务跟中断是怎么切换的?任务是如何保存现场的?具体代码时哪块。谢谢!

最新回复

中断服务程序将任务的环境(寄存器值)和返回地址压入堆栈 在中断返回的时候,查找优先级最高的就绪任务,从该任务的堆栈中弹出到寄存器值,及任务继续运行的地址,然后切换到该任务运行(转到该地址) 任务切换函数是OS_Sched,其中调用OS_SchedNew来取得就绪的最高优先级的任务到OSPrioHighReady 调用OSCtxSw(宏名OS_TASK_SW)来进行压栈和退栈操作 OS_Sched在OS_CORE.C OSCtxSw在OS_CPU.C或OS_CPU.A看你是采用嵌入汇编还是直接用汇编  详情 回复 发表于 2012-3-21 00:27
点赞 关注
 

回复
举报

1

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

中断来了任务挂起

中断来了任务挂起,进入中断服务,当服务完成后切换到优先级最高的任务

[ 本帖最后由 cccccccc12333 于 2012-3-21 00:04 编辑 ]
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
中断服务程序将任务的环境(寄存器值)和返回地址压入堆栈
在中断返回的时候,查找优先级最高的就绪任务,从该任务的堆栈中弹出到寄存器值,及任务继续运行的地址,然后切换到该任务运行(转到该地址)
任务切换函数是OS_Sched,其中调用OS_SchedNew来取得就绪的最高优先级的任务到OSPrioHighReady
调用OSCtxSw(宏名OS_TASK_SW)来进行压栈和退栈操作
OS_Sched在OS_CORE.C
OSCtxSw在OS_CPU.C或OS_CPU.A看你是采用嵌入汇编还是直接用汇编
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表