




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
linux中断总结 第一篇:linux中断总结1.Linux中断的注册与释放:在,,实现中断注册接口:intrequest_irq(unsignedintirq,irqreturn_t(*handler)(int,void*,structpt_regs*),unsignedlongflags,constchar*dev_name,void*dev_id);voidfree_irq(unsignedintirq,void*dev_id);函数参数说明unsignedintirq:所要注册的中断号irqreturn_t(*handler)(int,void*,structpt_regs*):中断服务程序的入口地址。unsignedlongflags:与中断管理有关的位掩码选项,有三组值:1.SA_INTERRUPT:快速中断处理程序,当使用它的是后处理器上所有的其他中断都被禁用。2.SA_SHIRQ:该中断是在设备之间可共享的3.SA_SAMPLE_RANDOM:这个位表示产生的中断能够有贡献给/dev/random和/dev/urandom使用的加密池.(此处不理解)constchar*dev_name:设备描述,表示那一个设备在使用这个中断。void*dev_id:用作共享中断线的指针.它是一个独特的标识,用在当释放中断线时以及可能还被驱动用来指向它自己的私有数据区(来标识哪个设备在中断)。这个参数在真正的驱动程序中一般是指向设备数据结构的指针.在调用中断处理程序的时候它就会传递给中断处理程序的void*dev_id。(这是我的理解)如果中断没有被共享,dev_id可以设置为NULL,但是使用这个项指向设备结构不管如何是个好主意.我们将在“实现一个处理”一节中看到dev_id的一个实际应用。中断号的查看可以使用下面的命令:“cat/proc/interrupts”。/proc/stat记录了几个关于系统活动的低级统计量,包括(但是不限于)自系统启动以来收到的中断数.stat的每一行以一个文本字串开始,是该行的关键词;intr标志是我们在找的.第一个数是所有中断的总数,而其他每一个代表一个单个IRQ线,从中断0开始.所有的计数跨系统中所有处理器而汇总的.这个快照显示,中断号4已使用1次,尽管当前没有安装处理.如果你在测试的驱动请求并释放中断在每个打开和关闭循环,你可能发现/proc/stat比/proc/interrupts更加有用.以下是一个统计中断时间间隔的中断服务程序。irqreturn_tshort_interrupt(intirq,void*dev_id,structpt_regs*regs){staticlongmytime=0;staticinti=0;structnet_device*dev=(structnet_device*)dev_id;if(i==0){mytime=jiffies;}elseif(iname,dev->irq);}i;returnIRQ_HANDLED;}这个函数实现的只是对两次发生中断的时间间隔的统计,时间单位是毫秒前言在前面分析了中断的基本原理后,就可以写一个内核中断程序来体验以下,也可以借此程序继续深入来了解内核中断的执行过程一.内核中断程序:我们还是来看一看成程序:在看程序之前,要熟悉如何进行模块编程,和了解module_pararm()的用法。如果不熟悉的话请大家看,module_param()的学习和Linux内核模块编程,在此不作解释。1.程序interrupt.c/*2*filename:interrupt.c3*atuthor:john4*/5#include6#include7#include8#include910MODULE_LICENSE(“GPL”);11staticintirq;12char*interface;13staticirqreturn_tmyirq_handler(intirq,void*dev);1415staticint__initmyirq_init(void)16{17printk(“themoduleisworking!n”);18printk(“theirqisreadyforworking!n”);19if(request_irq(irq,myirq_handler,IRQF_SHARED,interface,&irq)){20printk(KERN_ERR“%sinterrruptcan'tregister%dIRQn”,interface,irq);21return-EIO;22}23printk(“%srequest%dIRQn”,interface,irq);24return0;25}26staticirqreturn_t

是你****馨呀
实名认证
内容提供者


最近下载
一种基于双轨缆道的牵引式雷达波在线测流系统.pdf
一种基于双轨缆道的牵引式雷达波在线测流系统.pdf
一种胃肠道超声检查助显剂及其制备方法.pdf
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf