中断编程-如何在excel中使用16进制数

上传者: 26749843 | 上传时间: 2023-09-19 23:04:18 | 文件大小: 10.86MB | 文件类型: PDF
11.5 中断编程 前面所讲述的驱动程序中都没有涉及中断处理,而实际上,有很多 Linux的驱动 都是通过中断的方式来进行内核和硬件的交互。中断机制提供了硬件和软件之间异步 传递信息的方式。硬件设备在发生某个事件时通过中断通知软件进行处理。中断实现 了硬件设备按需获得处理器关注的机制,与查询方式相比可以大大节省 CPU 资源的 开销。 在此将介绍在驱动程序中用于申请中断的 request_irq()调用,和用于释放中断的 free_irq()调用。request_irq()函数调用的格式如下所示: int request_irq(unsigned int irq, void (*handler)(int irq, void *dev_id, struct pt_regs *regs), unsigned long irqflags, const char * devname, oid *dev_id); 其中 irq是要申请的硬件中断号。在 Intel平台,范围是 0~15。 参数 handler 为将要向系统注册的中断处理函数。这是一个回调函数,中断发生 时,系统调用这个函数,传入的参数包括硬件中断号、设备 id以及寄存器值。设备 id 就是在调用 request_irq()时传递给系统的参数 dev_id。 参数 irqflags是中断处理的一些属性,其中比较重要的有 SA_INTERRUPT。这个 参数用于标明中断处理程序是快速处理程序(设置 SA_INTERRUPT)还是慢速处理 程序(不设置 SA_INTERRUPT)。快速处理程序被调用时屏蔽所有中断。慢速处理程 序只屏蔽正在处理的中断。还有一个 SA_SHIRQ属性,设置了以后运行多个设备共享 中断,在中断处理程序中根据 dev_id区分不同设备产生的中断。 参数 devname为设备名,会在/dev/interrupts中显示。 参数 dev_id 在中断共享时会用到。一般设置为这个设备的 device 结构本身或者 NULL。中断处理程序可以用 dev_id 找到相应的控制这个中断的设备,或者用 irq2dev_map()找到中断对应的设备。 释放中断的 free_irq()函数调用的格式如下所示。该函数的参数与 request_irq()相 同。

文件下载

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明