现在的位置: 首页 > 综合 > 正文

中断 Uevent

2013年12月04日 ⁄ 综合 ⁄ 共 1334字 ⁄ 字号 评论关闭
文章目录

一、概述

      添加一个新的硬件设备,使应用层能响应该硬件的设备状态变化。

二、分析

(1)Kernel层

    告诉操作系统该硬件所占用的中断号,注册中断,定义中断处理程序。这样系统就能支持该设备的中断。

1.注册中断

该函数执行后生成设备文件和及其节点。

2.中断服务程序

   在中断服务程序中检测硬件是否出现变化,如果出现变化,则重新设置设备文件节点的值。

 

(2)Java层

1.UEvent可以跟Kernel进行通信,当添加新设备时,应该为该设备创建一个继承 UEventObserver抽象类来实现UEvent机制。

2.startObserving启动监听进程,传入的字符串用来标识要被监听的UEvent的设备文件。

3.重写onUEven函数,当指定的设备文件UEvent发生时,如果匹配则执行onUEvent处理函数。因为我们的目标是在设备状态发生变化时通知应用层,所以应该在处理函数中广播一个该设备状态的消息。

三、定义明晰

1.中断:

     由于某个事件的发生,CPU暂停当前正在执行的程序,转而执行处理该事件的一个程序。该程序执行完成后,CPU接着执行被暂停的程序。这个过程称为中断。

     例如,系统处理浏览网页的事情时(CPU暂停当前正在执行的程序),检测插拔耳机的硬件变化,此时会出发一个耳机中断的处理(转而执行处理该事件的一个程序),当耳机中断处理完成后,CPU接着处理浏览网页的事情(执行被暂停的程序)。

     CPU要处理很多不同的事情,引入中断机制是为了提高CPU的并发处理能力,使它能切换处理不同的事情。

 

2.系统添加新硬件设备

   告诉操作系统该硬件所占用的中断号,注册中断,定义中断处理程序。这样系统就能支持该设备的中断。

 

3.设备文件

   Linux将外设看作一个文件来管理, 用户使用外设就像使用普通文件一样。

 

 

[参考]

http://blogold.chinaunix.net/u3/118873/showart_2363481.html

http://www.kerneltravel.net/journal/viii/01.htm

抱歉!评论已关闭.