linux驱动编写之中断处理
2017-05-20 18:57
218 查看
一、中断
1、概念学过单片机的应该非常清楚中断的概念,也就是CPU在正常执行程序过程中,出现了突发事件(中断事件),于是CPU暂停当前程序的执行,转去处理突发事件。处理完毕后,CPU又返回被中断的程序位置继续执行。
2、处理流程
单片机的中断处理程序相对简单,包含中断源的配置和中断服务程序的编写。中断源配置包含中断源类型、触发方式、优先级等内容;中断服务程序包含服务历程、中断标志位清楚等内容。
linux中断程序,以特有的操作系统linux为基本平台,实现了其特有的中断程序处理方式,为开发者也提供了一套开发流程。但是,无论系统怎么封装,这套流程与单片机的中断处理流程差别不大,主要包含中断源的配置和中断服务程序的编写。涉及到的主要函数有:
request_irq() 申请中断
free_irq() 释放中断
irq_interrupt() 中断服务
二、中断编程
1、申请中断int request_irq(unsigned int irq, irq_handler_t handler, unsigned long irqflags, const char *name, void *dev_id)
irq 申请的硬件中断号
handler 中断处理函数,回调函数
irqflags 触发方式、工作方式
name 中断名称,在cat /proc/interrupts中可以看到此名称
dev_id 一般设置为这个设备的设备结构体或者NULL
2、释放中断
void free_irq(unsigned int irq, void *dev_id)
3、中断服务
typedef irqreturn_t (*irq_handler_t)(int, void *);
中断服务程序,输入参数有两个,分别是中断号irq和dev_id,返回参数类型irqreturn_t。
参考博客: Linux设备驱动中断机制
相关文章推荐
- Linux设备驱动编程之中断处理
- 编写Linux中断驱动时,由于头文件缺失引起的编译错误
- 驱动-linux 中断处理
- Linux中断处理驱动程序编写【转】
- Linux中断处理驱动程序编写
- Linux中断处理驱动程序编写
- Linux中断处理驱动设计
- 编写Linux中断驱动时,由于头文件缺失引起的编译错误
- 嵌入式学习-驱动开发-lesson3-混杂设备驱动模型与linux中断处理流程
- 编写Linux中断驱动时,由于头文件缺失引起的编译错误
- Linux中断处理驱动程序编写
- Linux中断处理驱动程序编写
- 【Linux 驱动】中断处理(二)下半部tasklet
- Linux设备驱动编程之中断处理
- Linux 设备驱动--- 中断处理
- 字符设备驱动笔记——中断方式按键驱动之linux中断处理结构(五)
- Linux设备驱动编程中断处理
- 第12课第4.1节 字符设备驱动程序之中断方式的按键驱动_Linux异常处理结构
- 【Linux 驱动】中断处理(一)上半部
- Linux中断处理驱动程序编写