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()相 同。
2023-09-19 23:04:18 10.86MB 嵌入式 Linux
1
北京邮电大学数学建模讲义 包含各种经典算法以及MATHEMATICA的介绍
2023-09-13 15:59:02 3.1MB 北邮 数模 讲义
1
体彩大乐透2007001至2019032所有中奖号、出球顺序、一二三等中奖数金额和追加数、金额均爬下来了。csv格式,方便导入mysql或用SPSS、excel分析。 下面放上第一行。其中真红1-5表示出球顺序。 ID 红1 红2 红3 红4 红5 绿1 绿2 一等奖奖金 一等奖中奖数 二等奖奖金 二等奖中奖数 三等奖奖金 三等奖中奖数 开奖日期时间 真红1 真红2 真红3 真红4 真红5 真绿1 真绿2 球号 一等奖追加奖金 一等奖追加 二等奖追加奖金 二等奖追加 三等奖追加奖金 三等奖追加 7001 22 24 29 31 35 4 11 5,000,000 2 136,558 8 24,466 9 2007-05-30 190000 0 0 0 0 0 0 0 0 3,000,000 1 81,934 1 14,679 1
2023-09-13 14:36:08 320KB 大乐透 体彩 出球顺序 csv
1
数科OFD板式软件3.0 国产arm平台安装包,适用于麒麟、uos等国产linux系统在鲲鹏、飞腾等arm平台上。
2023-09-11 14:48:02 105.47MB arm 软件/插件 linux 数科
1
这是同济版第七版高等数学下册教材,自己预习或者考研复习均可参考
2023-09-07 14:00:53 153.71MB 高数
1
金蝶套打,实现自定义取数逻辑,包括套打元数据新建、套打模板新建、二次开发类配置、代码实现等
2023-09-04 11:26:14 273KB 金蝶套打
1
内容概要: 用于求解2022数模国赛B题——无人机纯方位无源定位的matlab代码,以及进行说明的部分图片。 代码:所有的 源程序代码 GetRound.m 与 GetPoint.m 为问题 1.1 中模型进行圆的求解与定位程序,其中 GetRound.m 是用于求解两圆圆心坐标的程序,GetPoint.m 是求两圆交点从而定位的程 序。 imitate.m 是问题 1.2 中所用到的源程序,该程序执行的结果图置于图.zip 中。 move.m 及 GetBetween.m 和 GetBetween2.m 和 GetBetween3.m 为解决问题 1.3 所用 的源程序。其中 GetBetween.m GetBetween2.m GetBetween3.m 是用于无人机方向定位 的 m 文件函数,move.m 是无人机到达理想位置及理想位置拟合圆检验的程序 图:上述问题中程序跑出的中间图及结果图。 图片 1 为问题 1.2 中进行求解的展示图 图片 2 为问题 1.3 中选定圆周上发射信号的 02 05 08 无人机。
2023-08-30 14:38:30 144KB matlab 软件/插件 数学建模 数模国赛
1
欧姆龙NJ NX使用POD映射拓展轴功能块与应用案例 功能块内部可查看,可编辑,此功能程序在实际项目中稳定使用 可以在原有轴数(8.16.32.64)基础上实现更多轴的控制,如10轴35轴67轴等。 根据实际项目对ECAT总线刷新周期需求而定,程序比较经典
2023-08-17 10:10:01 120KB 欧姆龙
1
用于计算雷诺数,网格边界第一层高度
2023-08-16 01:11:44 35.03MB 流体力学 FLuent
1
主要介绍了使用python 计算百分位数实现数据分箱代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
2023-08-11 09:23:07 57KB python 百分位数 数据分箱
1