• 中断触发流程三(中断控制器)


    这一篇主要说说中断控制器,及GPIO中断触发与中断号的识别,为什么GPIO引脚的触发最后调用特定的中断例程,这中间是怎么联系起来的。现在知道的是request_irq只是在特定的中断号

    链表中注册了一个中断例程,那这个中断号哪儿来的呢?其次,GPIO引脚的专用功能是特定的,当被触发后,就会通过VIC通知CPU去读取对应的中断号信息,所以要想让GPIO引脚上的触发

    让cpu去调用特定的中断子程序,必须把中断服务子程序放在特定的中断号下面。

    VIC接收来自中断源的中断信号,并判别出所有中断信号中的优先级,按优先级次序发送给CPU。CPU通过访问VIC的中断向量寄存器可以快速跳转到中断服务程序。

    简单说下中断号的产生流程:

    可以看出是中断控制器就算出的中断号,最后通过这个中断号找到中断例程,所以呢,想在一个中断触发的时候执行什么,就把中断例程写到相应的中断号下面去。

    VIC计算出了中断号,也可以计算出这个中断的偏移地址,加上IRQ的基址,就可以跳转到中断服务程序,如果这个中断不是共享型的,就可以直接执行中断服务例程了。很方便啊!

  • 相关阅读:
    CopyOnWriteArrayList分析
    java锁和同步
    线程池原理
    Hadoop1的安装
    Hadoop2的HA安装(high availability):JournalNode+ zookeeper
    Hadoop2的HA安装(high availability):nfs+zookeeper
    Hadoop2的FN安装(federated namespace)
    Redis 基础知识
    mycat
    GitFlow及项目工作流程
  • 原文地址:https://www.cnblogs.com/autum/p/interrupt.html
Copyright © 2020-2023  润新知