Windows CE 5.0:驱动程序---中断

转载 2007年09月14日 17:37:00

Windows CE 5.0:驱动程序---中断

中断

 

发布日期: 11/9/2004 | 更新日期: 11/9/2004

大多数外围设备生成中断,以便从操作系统 (OS) 接收服务。可以使用中断的设备一些示例有 PC 卡、板上计时器、音频输入设备、键盘、触摸屏和指点设备。几乎任何类型的外围设备都可能使用中断作为启动 OS 的服务操作的主要方法。因为这些外围设备可能导致或通知中断,所以它们的设备驱动程序必须处理中断以便服务相应的设备。物理中断 (IRQ) 是硬件线路,设备可以通过它们向微处理器发送中断信号。逻辑中断 (SYSINTR) 是 OAL 指定的 IRQ 的映射。

某些外围设备不向微处理器生成中断。在这种情况下,外围设备的控制器处理中断。

中断处理包含两个部分:内核模式中断服务例程 (ISR) 和用户模式中断服务线程 (IST)。在某些 OS 中,ISR 是小而快速的汇编代码片段,但是在 Windows CE 中,内核处理寄存器的保存和还原,所以可以将 ISR 实现为小而快速的 C 代码。

ISR 必须完成服务中断所需的最少工作。为此,它按照显示的顺序执行该过程:

1.

如果数据可能丢失或者被下一个中断改写,则 ISR 将数据从设备读取到缓冲区中。

2.

ISR 清除该设备上的中断条件。

3.

ISR 向内核返回一个 SYSINTR。

4.

内核设置供 IST 等待的中断事件。

5.

调度程序调度等待的 IST 以执行任何必须发生以完整处理该中断的可能冗长的操作。

设备驱动程序在加载时必须执行下列操作:

注册它的 ISR。

驱动程序必须向内核注册它的 ISR,除非该驱动程序依赖常见的 OAL ISR 函数来处理它的中断。驱动程序必须向内核注册它的 ISR,以便内核在适当的物理中断发生时调用 ISR。

在 OAL 的 OEMInit 函数中生成从 IRQ 到 SYSINTR 的映射。

- 或者 -

加载该驱动程序的总线驱动程序必须生成从 IRQ 到 SYSINTR 的映射(对于 PCI 总线驱动程序而言就是如此)。

如果该驱动程序不安装 ISR,则该设备生成的任何中断都由默认 ISR(它由 OAL 在 OEMInit 中安装)处理。

以下列表显示了驱动程序安装 ISR 和等待中断事件的一种方式:

1.

驱动程序调用 LoadIntChainHandler 以安装 ISR。

2.

默认 ISR(由 OAL 安装)首先执行以响应中断。

3.

OAL 调用 NKCallIntChain 以执行该驱动程序安装的 ISR。

4.

驱动程序产生一个 IST,它会注册以接收中断事件通知。该 IST 在使用 hEvent 参数之前必须调用 InterruptInitialize,这会在 idInt 参数和 ISR 返回的 SYSINTR 值之间提供链接。

没有导出流接口的内置设备驱动程序必须在初始化期间找到方便的时间以注册它们的 ISR 并产生 IST。

5.

驱动程序调用 WaitForSingleObject 函数以等待 ISR 生成的中断事件。

公开流接口的驱动程序通常在它们的 XXX_Init (Device Manager) 函数中执行这些活动,该函数由 Device Manager 调用。

另请参阅

Interrupt Handling Process Overview | Interrupt Notifications | Shared Interrupts | Nested Interrupts | Interrupt Masking | Interrupt Handler Registration | Interrupt Processing Sequence | Interrupt Handler Deregistration | Real-Time Priority System | Scheduling

 

相关文章推荐

如何在 Windows CE 5.0 中开发和测试设备驱动程序

发布日期 : 2005-3-31 | 更新日期 : 2005-3-31 Mike Hall Microsoft 适用于: Microsoft Windows CE version 5.0 摘...

windows CE下的USB设备驱动程序分析 .

随着USB设备的不断增加,我们这些开发人员也就多了对USB设备进行驱动程序开发的工作。但是对于很多初学者来说,存在以下三个困难:      一是对WinCE的驱动程序结构了解得太少,没办法得心应手的...
  • js_gary
  • js_gary
  • 2012年02月09日 17:21
  • 1314

Windows CE 6.x驱动程序的新特性

原文地址::http://space.itpub.net/16910633/viewspace-504206 好久又没有更新博客了。这次发表一篇古文,当然不是古典文言文,只是已经在我的硬...

Windows CE操作系统的触摸屏驱动程序模型

欢迎加入Wince技术讨论群QQ#326444254 本文介绍了Windows CE操作系统的触摸屏驱动程序模型,详细阐述嵌入式系统中电阻式触摸屏的Windows CE驱动程序的设计和实现方法。 ...

Windows CE驱动程序分类

Windows CE嵌入式开发入门--基于Xscale架构 傅曦,陈黎等 人民邮电出版社   第九章  Windows CE BSP及驱动程序结构分析 9.1 Windows CE驱动程序结构...

如何开发Windows CE驱动程序

【IT168 专稿】本文将为读者详细介绍驱动程序的实现方法。我们首先介绍驱动程序的任务,并继续探讨缓冲区的处理、内存地址重建及调试域等。   1.驱动程序的任务   实际上,驱动程序的实现方法有多...
  • fgwntg
  • fgwntg
  • 2012年04月20日 11:24
  • 460

使用CETK测试驱动程序 (windows Embedded CE Test KIT)

使用CETK测试驱动程序             CETK 是微软提供的用于测试基于其 WINDOWS CE 平台开发的驱动程序的测试工具,对于开发稳定可靠的驱动程序很有帮助,所以现在很多大公...

Windows CE下的USB设备驱动程序开发实例(一)

作者:bjtuzdq 转自:http://blog.csdn.net/bjtuzdq/article/details/3856872 下面举个简单的例子来详细说明一下驱动程序的开发过程...
  • whw8007
  • whw8007
  • 2013年05月11日 14:37
  • 512

Windows CE下驱动程序开发基础

我想即使读者看过微软的关于驱动开发的培训教材和CE帮助文档中的驱动部分,头脑中仍然一片茫然。要想真正了解驱动程序必须结合一些驱动程序源码,在此我以串口驱动程序(COM16550)中初始化过程为线索简单...
  • zmq5411
  • zmq5411
  • 2011年04月09日 20:45
  • 318

Windows CE内核定制与驱动程序开发

  • 2015年06月19日 22:40
  • 192.53MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Windows CE 5.0:驱动程序---中断
举报原因:
原因补充:

(最多只允许输入30个字)