zoukankan      html  css  js  c++  java
  • linux中断的一些过程

    硬件发生中断过程和软件识别中断过程是相反的  

    cpu读取中断控制器是那个模块发生了中断. 

    #if 0
    /* Interrupt number assignments within Linux */
    #define WM831X_IRQ_TEMP_THW 0
    #define WM831X_IRQ_GPIO_1   1
    #define WM831X_IRQ_GPIO_2   2
    #define WM831X_IRQ_GPIO_3   3
    #define WM831X_IRQ_GPIO_4   4
    #endif
    irq:软件中断号  2.6内核以前在irq.h中
    request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags,
         const char *name, void *dev)
    现在有设备树:
    interrupt-parent = <&gpio1>
    interrupt = <5 Rising>  // 5 hw irq  致命parent  domain   5 --->GPIO
    irq_domain-----> 转换为软件中断号
    // 解析设备树
    int (*xlate)(struct irq_domain *d, struct device_node *node,
           const u32 *intspec, unsigned int intsize,
           unsigned long *out_hwirq, unsigned int *out_type);
    保存在platform_device
      request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags,
         const char *name, void *dev)
    //  硬件中断和软件中断之间的映射 
     /* reverse map data. The linear map gets appended to the irq_domain */
     irq_hw_number_t hwirq_max;
     unsigned int revmap_direct_max_irq;
     unsigned int revmap_size;
     struct radix_tree_root revmap_tree;
     unsigned int linear_revmap[]; 
    一勤天下无难事。
  • 相关阅读:
    交叉编译环境软件搭建
    (C)struct结构体
    (C)字节对齐#pragma pack()
    常用bluetooth协议
    (C/C++)register关键字
    Android学习
    (C)*p++和*++p区别
    java文件末尾追加内容的两种方式
    java1.7集合源码阅读: Stack
    java1.7集合源码阅读: Vector
  • 原文地址:https://www.cnblogs.com/nowroot/p/14057247.html
Copyright © 2011-2022 走看看