Linux外部中断的驱动初始化
来源:互联网 发布:随机红包算法 编辑:程序博客网 时间:2024/06/06 03:38
外部中断的驱动初始化时应该完成以下几个步骤:
1.把对应的引脚设置成中断功能
2.设置中断类型(IRQ或者FIQ)
3.设置触发方式
4.使能此中断
设置触发方式的函数接口
int set_irq_type(unsigned int irq, unsigned int type);
中断pending寄存器,主要是用来标识哪个中断产生了.
在编写驱动时有关中断的操作是经常要用到的,内核驱动中已经编写了一些中断配置函数可以方便的供使用,其与gpio操作配置函数配合使用效果更好。
void disable_irq(unsigned int); //关闭相应中断号中断
void enable_irq(unsigned int);//开启相应中断号中断
int set_irq_type(unsigned int irq, unsigned int type);//设置中断为何种触发模式
void disable_irq_wake(unsigned int irq); //禁止中断唤醒功能
void enable_irq_wake(unsigned int irq);//使能中断唤醒功能
local_irq_disable() , local_irq_enable() , local_irq_save() 和 local_irq_restore() 为中断处理函数,主要是在要进入临界区时禁止中断和在出临界区时使能中断。local_irq_disable() 和 local_irq_enable() 配对使用;而 local_irq_save() 则和 local_irq_restore() 配对使用。
local_irq_disable() 和 local_irq_save() 都可以禁止中断,但不同的是后者可以保存中断状态。
local_irq_restore() 在使能中断的同时还恢复了由 local_irq_save() 所保存的中断状态。
- Linux外部中断的驱动初始化
- linux驱动之外部中断
- Linux外部中断架构初始化流程-----Tiny6410
- Linux驱动开发二:外部中断分析
- Linux驱动编程day6-外部中断处理
- STM32外部中断初始化
- s3c2440基于linux的按键和外部中断驱动实践及驱动机制分析含代码
- 基于mini2440外部中断的按键驱动
- 外部中断按键驱动
- linux powerpc e500内核外部中断,PIC,PPC,设备驱动
- linux 驱动的 中断小结
- linux设备驱动的中断
- 字符设备驱动--外部中断
- ARM Linux 外部中断
- linux 外部中断例子
- linux外部中断过程
- (转)Linux的中断的初始化
- Linux中断子系统-中断初始化
- Linux 下用户空间与内核空间数据交换的方式(二)
- 用clojure解决euler problem 3
- 解决a different object with the same identifier value was already associated with the session错误
- arcengine栅格数据使用总结
- Linux 中的零拷贝技术
- Linux外部中断的驱动初始化
- 基于Z301P摄像头 H.264OK6410的远程视频web监控 项目笔记3(与外网通信)
- 树的孩子兄弟表示法
- ie下解决 强制换行的css
- 黑马程序员 Java基础 03
- Linux 中的零拷贝技术(二)
- eclipse下JNI的初步实现
- Linux如何退出VI编辑器
- android Google Map地图应用与实现