No.57300 作者:emtronix 邮件:web@emtronix.com ID:116336 登陆:11次 文章数:54篇 最后登陆IP:222.212.37.103 最后登陆:2010/11/10 2:23:27 注册:2008/9/17 22:22:59 财富:418 发帖时间:2009/3/10 10:10:01 发贴者IP:218.88.33.104 标题:emtronix:嵌入式主板EM9160精简ISA总线硬件中断的使用方法 -- 英创嵌入式主板 摘要:No.57300嵌入式主板EM9160精简ISA总线硬件中断的使用方法 -- 英创嵌入式主板 文章来源: 英创公司新近推出的嵌入式主板EM9160是一款专门面向工业智能设备的高性价比ARM9+WinCE平台,该工控主板不仅配置了常规的标准通讯接口,如以太、串口、USB,而且还配置了当前智能控制设备中常用的SPI、I2C以及脉宽调制输出PWM,以及精简ISA总线和外部中断,以方便客户做专用电路的扩展。本文主要介绍EM9160的外部中断使用上的特色,以帮助客户能快速完成自己的产品开发。 EM9160的精简ISA扩展总线,包括了2路独立的外部硬件中断输入ISA_IRQ1和ISA_IRQ2,平时输入电平应为低,当外部设备产生中断时,ISA_IRQ1或ISA_IRQ2变高,其上升沿将触发中断,在系统对中断进行响应前,中断请求信号需保持为高。当应用程序对外设进行相应的中断响应处理后,ISA_IRQ1或ISA_IRQ2应返回常规的低电平状态。 在WinCE下对于中断的处理是一个相对比较复杂的过程,当一个硬件中断发生时,首先是系统内核对中断进行诊别,再启动相应中断服务例程来处理这个中断,在具体实现中断处理的过程中,需要调用系统提供的中断相关的函数,就涉及到内核函数的调用。而用户在使用eVC等工具软件进行应用程序开发时,是不能直接调用这些内核函数的。针对这一情况,为了方便客户对于外部中断的使用,英创公司设计完成了在内核中直接加载外部中断的驱动程序,一旦中断事件发生,驱动程序的中断线程将响应硬件中断同时产生一个事件,以通知上层的用户模式线程。按照这种方式导出一个定制的用户接口(共4个函数),用户只需要在应用软件中直接调用这些定制的接口函数即可方便地实现对于中断的应用处理,下面就介绍这些相关的接口函数。 (1)HANDLE InstallExternIRQ( DWORD dwIRQNo ); 功能描述:安装启动ISA总线外部中断。 输入参数 dwIRQNo: 需要启动安装的外部中断号,输入值为1或2,分别对应ISA总线上的IRQ1和IRQ2。 返回值 = NULL: 安装ISA总线外部中断失败。 != NULL: 启动ISA总线外部中断返回的句柄。 (2)HANDLE GetExternIRQEvent( HANDLE hIRQ ); 功能描述:获取ISA总线外部中断的中断事件。 输入参数 hIRQ: 调用函数InstallExternIRQ( )所返回的外部中断句柄。 返回值 = NULL: 操作失败。 != NULL:ISA总线外部中断的中断事件。 (3)BOOL EnableExternIRQ( ......
>>返回讨论的主题
|