zoukankan      html  css  js  c++  java
  • 009_Linux驱动之_request_irq()函数

    1. request_irq()函数原型

    int request_irq(unsigned int irq, irq_handler_t handler,
    unsigned long irqflags, const char *devname, void *dev_id)
     
    2. 

    功能:注册中断服务函数

    * @irq:要申请的硬件中断号

    * @handler: IRQ发生时要调用的函数

    * @irqflags:中断类型标志

    * @devname:声明设备的ascii名称

    * @dev_id:传递回处理器函数的cookie。中断和卸载的时候用到

     
    3. 使用示例:

    4. 解析上面程序
    1. 上面程序是按键中断程序,中断号对应引脚上面的中断号,具体可以查芯片手册上面有
    2. 中断函数是buttons_irq(),当出现按键按下或者松开时候调用buttons_irq()函数,并传
    入参数irq和dev_id
    3. IRQT_BOTHEDGE是双边沿触发方式,当有按键按下或者松开时候就触发中断
    4. 名字是S2-S4,需要时ascii名称
    5. 当中断发生或者卸载时候,需要用到dev_id的地址
     
    5. 使用free_irq()函数来释放已经注册的中断
    函数原型:void free_irq(unsigned int irq, void *dev_id)
    解析:需要用到中断号irq和dev_id
    使用示例:释放上面注册了的中断

    6. 触发方式
    1. IRQT_NOEDGE
    2. IRQT_RISING//上升沿触发
    3. IRQT_FALLING //下降沿触发
    4. IRQT_BOTHEDGE//双边沿触发
    5. IRQT_LOW//低电平触发
    6. IRQT_HIGH//高电平触发
    7. IRQT_PROBE

  • 相关阅读:
    python 的 类属性 与 实例属性
    python 的 append 和 extend
    机器学习的最佳入门学习资源
    各种排序算法探讨与实现
    C++基础:C++中vector使用简介
    C++基础:C++中的explicit关键字
    差分约束(poj 1201
    codeforeces 547C
    2015 7月 做题记录
    set&map
  • 原文地址:https://www.cnblogs.com/luxiaoguogege/p/9690228.html
Copyright © 2011-2022 走看看