增加中断处理 API.
Signed-off-by: rick.chan <chenyang@autoai.com>
This commit is contained in:
parent
1dd04e5e12
commit
9b6db57445
|
@ -160,3 +160,43 @@ size:Size of map.
|
|||
**返回值:**
|
||||
|
||||
成功则返回映射内存首地址,失败返回 NULL。
|
||||
|
||||
## devm_request_irq 函数
|
||||
|
||||
**头文件:**
|
||||
|
||||
```cpp
|
||||
#include <linux/interrupt.h>
|
||||
```
|
||||
|
||||
**函数原型:**
|
||||
|
||||
```c
|
||||
devm_request_irq(struct device *dev, unsigned int irq, irq_handler_t handler, unsigned long irqflags, const char *devname, void *dev_id);
|
||||
```
|
||||
|
||||
**说明:**
|
||||
|
||||
Devm 版本申请中断并注册中断处理程序。
|
||||
|
||||
**参数:**
|
||||
|
||||
dev:设备结构体;
|
||||
|
||||
irq:要申请的硬件中断号;
|
||||
|
||||
handler:向系统注册的中断处理函数,是一个回调函数,中断发生时,系统调用这个函数;
|
||||
|
||||
irqflags:中断处理的属性,若设置了 IRQF_DISABLED,则表示中断处理程序是快速处理程序,快速处理程序被调用时屏蔽所有中断,慢速处理程序不屏蔽;若设置了 IRQF_SHARED,则表示多个设备共享中断,若设置了 IRQF_SAMPLE_RANDOM,表示对系统熵有贡献,对系统获取随机数有好处(这几个flag是可以通过或的方式同时使用的);
|
||||
|
||||
devname:设置中断名称,通常是设备驱动程序的名称,在cat /proc/interrupts中可以看到此名称;
|
||||
|
||||
dev_id:该参数将会传递给 handler 所对应的回调函数。
|
||||
|
||||
**返回值:**
|
||||
|
||||
0:表示成功;
|
||||
|
||||
-INVAL:表示中断号无效或处理函数指针为NULL;
|
||||
|
||||
-EBUSY:表示中断已经被占用且不能共享。
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
# Linux Kernel 中断处理
|
||||
|
||||
## request_irq
|
||||
|
||||
**头文件:**
|
||||
|
||||
```cpp
|
||||
#include <linux/interrupt.h>
|
||||
```
|
||||
|
||||
**函数原型:**
|
||||
|
||||
```c
|
||||
int request_irq(unsigned int irq, irq_handler_t handler, unsigned long irqflags, const char *devname, void *dev_id);
|
||||
```
|
||||
|
||||
**说明:**
|
||||
|
||||
申请中断并注册中断处理程序。
|
||||
|
||||
**参数:**
|
||||
|
||||
irq:要申请的硬件中断号;
|
||||
|
||||
handler:向系统注册的中断处理函数,是一个回调函数,中断发生时,系统调用这个函数;
|
||||
|
||||
irqflags:中断处理的属性,若设置了 IRQF_DISABLED,则表示中断处理程序是快速处理程序,快速处理程序被调用时屏蔽所有中断,慢速处理程序不屏蔽;若设置了 IRQF_SHARED,则表示多个设备共享中断,若设置了 IRQF_SAMPLE_RANDOM,表示对系统熵有贡献,对系统获取随机数有好处(这几个flag是可以通过或的方式同时使用的);
|
||||
|
||||
devname:设置中断名称,通常是设备驱动程序的名称,在cat /proc/interrupts中可以看到此名称;
|
||||
|
||||
dev_id:该参数将会传递给 handler 所对应的回调函数。
|
||||
|
||||
**返回值:**
|
||||
|
||||
0:表示成功;
|
||||
|
||||
-INVAL:表示中断号无效或处理函数指针为NULL;
|
||||
|
||||
-EBUSY:表示中断已经被占用且不能共享。
|
Loading…
Reference in New Issue