中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > 综合其它
VxWorks操作系统指南(1.6) 中断服务程序
作者:未知 时间:2005-07-27 23:10 出处:CSDN 责编:chinaitpower
              摘要:VxWorks操作系统指南(1.6) 中断服务程序

1.1.中断服务程序

实时系统中硬件中断处理是至关重要的,因为它是以中断方式通知系统外部事件的发生。为了快速响应中断,中断服务程序ISR运行在特定的空间,不同于其它任何任务,因此中断处理没有任务的上下文切换。

中断函数:

intConnect()      C函数和中断向量联结

intCount()        得到当前中断套叠深度

intLevelSet()     设置程序中断级别

intLock()         使中断禁止

intUnlock()          开中断

intVecSet()          设置异常向量

intVecGet()          得到异常向量

    所有的中断服务程序使用同一中断堆栈,它在系统启动时就已根据具体的配置参数进行了分配和初始化,必须保证它的大小,以使它能满足最坏的多中断情况。中断也有缺陷:ISR不运行在常规的任务上下文,它没有任务控制块。对于ISR的基本约束就是它们不能激活那些可能使调用程序阻塞的函数,例如,它不能获取信号量,因如果该信号量不可利用,内核会试图让调用者切换到悬置态。然而,ISR能给出信号量。

    一个ISR通常与一个或多个任务进行通信,有直接的也有间接的作为输入输出事务的一部分。这种通信的本质是驱动任务执行,从而处理中断和各种情况。这与任务到任务的通信和同步基本相同,但是有两点不同:

? 一个ISR通常作为通信或同步的发起者,它通常返回一个信号量、向队列发送一个信息包或事件给一个任务。ISR很少作为信息的接收者,它不可以等待接收信息包或事件。

?  ISR内的系统调用总是立即返回ISR本身。例如,即使ISR通过发送信息包唤醒了一个很高优先级的任务,它也首先必须返回ISR。这是因为ISR必须先完成。
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有