LDD3学习笔记(13):中断处理

简介:  #include int request_irq(unsigned int irq, irqreturn_t (*handler)( ), unsigned long flags, const char *dev_name, void *dev...
  #include <linux/interrupt.h>

int request_irq(unsigned int irq, irqreturn_t (*handler)( ), unsigned long flags, const char *dev_name, void 

*dev_id);

void free_irq(unsigned int irq, void *dev_id);

调用这个注册和注销一个中断处理.

#include <linux/irq.h.h>

int can_request_irq(unsigned int irq, unsigned long flags);

这个函数在 i386 和 x86_64 体系上有返回一个非零值如果一个分配给定中断线的企图成功.

#include <asm/signal.h>

SA_INTERRUPT

SA_SHIRQ

SA_SAMPLE_RANDOM 

给 request_irq 的标志. SA_INTERRUPT 请求安装一个快速处理者相反是一个慢速的). 

SA_SHIRQ 安装一个共享的处理者并且第 个 flag 声称中断时戳可用来产生系统熵.

/proc/interrupts

/proc/stat 

报告硬件中断和安装的处理者的文件系统节点.

unsigned long probe_irq_on(void);

int probe_irq_off(unsigned long);

驱动使用的函数当它不得不探测来决定哪个中断线被设备在使用. probe_irq_on 的结果必

须传回给 probe_irq_off 在中断产生之后. probe_irq_off 的返回值是被探测的中断号.

IRQ_NONE

IRQ_HANDLED

IRQ_RETVAL(int x)

从一个中断处理返回的可能值指示是否一个来自设备的真正的中断出现了.

void disable_irq(int irq);

void disable_irq_nosync(int irq);

void enable_irq(int irq);

驱动可以使能和禁止中断报告如果硬件试图在中断禁止时产生一个中断这个中断永远丢

失了一个使用一个共享处理者的驱动必须不使用这个函数.

void local_irq_save(unsigned long flags);

void local_irq_restore(unsigned long flags);

使用 local_irq_save 来禁止本地处理器的中断并且记住它们之前的状态. flags 可以被传递给 

local_irq_restore 来恢复之前的中断状态.

void local_irq_disable(void);

void local_irq_enable(void);

在当前处理器熵无条件禁止和使能中断的函数.

目录
相关文章
|
芯片
STM32速成笔记(四)—中断
本文介绍了中断的概念,中断的相关名词,STM32外部中断配置方法以及使用中断的注意事项。给出了外部中断点亮LED程序设计思路和关键代码。
230 0
STM32速成笔记(四)—中断
|
存储 编译器 C语言
3-STM32启动文件详解
3-STM32启动文件详解
|
Linux
Linux驱动开发——(Linux内核GPIO操作库函数)gpio(1)
Linux驱动开发——(Linux内核GPIO操作库函数)gpio(1)
414 0
Linux驱动开发——(Linux内核GPIO操作库函数)gpio(1)
|
Linux API 数据处理
Linux驱动开发——(使用中断处理)gpio(6)
Linux驱动开发——(使用中断处理)gpio(6)
466 0
Linux驱动开发——(使用中断处理)gpio(6)
|
API
stm32RTOS创建任务
stm32RTOS创建任务
160 0
|
物联网 API 开发工具
Stm32 固件库介绍及获取方法 | 学习笔记
快速学习 Stm32 固件库介绍及获取方法
Stm32 固件库介绍及获取方法 | 学习笔记
|
Linux
Linux setjmp longjmp
/********************************************************************* * Linux setjmp longjmp * 说明: * 最近在看cmockery源代码的时候发现setjmp和longjmp函数,于是查了 * 相关的内容,发现真是个好东西,可以完成函数之间的直接跳转。
946 0
STM32 下的库函数和寄存器操作比较
<p>以 led闪烁中的flashLed函数例子:</p> <p></p> <pre id="best-content-772498845" accuse="aContent" class="best-text mb-10" style="margin-top: 0px; margin-bottom: 10px; padding: 0px; font-family: arial, 'couri
2622 0
|
Linux
LDD3学习笔记(6):字符驱动4
  1、快速参考 本章介绍了下面符号和头文件. struct file_operations 和 struct file 中的成员的列表这里不重复了. #include  dev_t  dev_t 是用来在内核里代表设备号的类型.
1123 0

热门文章

最新文章