zoukankan      html  css  js  c++  java
  • [linux驱动][linux中断]——中断处理

    一,中断处理函数
    中断处理函数运行在中断上下文,不可抢占、调度。
    中断上下文编程需要注意以下几点:
        不能睡眠或调用 schedule 放弃CPU
        不能调用任何可能睡眠的函数,例如:获取信号量
        不能访问用户空间数据,例如:copy_from_user,因为它不是在进程上下文中执行的。
        执行时间尽可能短

    int request_irq (unsigned int irq, irq_handler_t handler, unsigned long flags, const char *name, void *dev_id)
    请求中断,返回0表示成功,负数表示错误码
        irq :中断号
        handler:中断处理函数
        flags:中断标志
        name:中断名字,显示在 /proc/interrupts中
        dev_id:用作共享中断指针,用于标识不同共享中断int

    void free_irq(unigned int irq, void *dev_id)
    释放中断
    中断处理函数一般是在驱动初始化或者设备第一次打开的时候安装,系统上中断线有限,所以在驱动初始化的时候就安装中断处理函数会显得浪费,一般是在设备第一次打开的时候安装。使用free_irq一般是在设备最后一次被关闭的时候。

  • 相关阅读:
    0 RabbitMQ概念
    java 排序
    spring整合redis(基于redisTemplate)
    http之content-type
    http协议讲解
    Java8 lambda 以及 Lambda在集合中的使用
    java中decimalFormat格式化数值
    找出占用的端口进程ID,并且杀死该进程
    CSS
    标签
  • 原文地址:https://www.cnblogs.com/zhiliao112/p/4237238.html
Copyright © 2011-2022 走看看