zoukankan      html  css  js  c++  java
  • 中断触发流程三(中断控制器)

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

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

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

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

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

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

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

  • 相关阅读:
    适配器模式
    显示实现接口
    Mysql表引擎的切换
    Mysql事务隔离级别
    按照指定的格式解析字节数组
    委托和事件的简单实用
    C#压缩和解压缩字节(GZip)
    Mysql数据库批量添加数据
    常用的分页类
    保证依赖的服务已全部启动
  • 原文地址:https://www.cnblogs.com/autum/p/interrupt.html
Copyright © 2011-2022 走看看