当前位置: 首页 > wzjs >正文

北京手机网站开发知识搜索引擎

北京手机网站开发,知识搜索引擎,佛山网站快照优化公司,3d建模自学教程今天呢,我们来用一种新的视角去看中断子系统,然后仿照人家的方法去写一个虚拟的中断子系统,我们先来讲讲链式和层级: 链式中断控制器(chained): 上图中,左边的"chained intc"就是链式中断控制器…

今天呢,我们来用一种新的视角去看中断子系统,然后仿照人家的方法去写一个虚拟的中断子系统,我们先来讲讲链式和层级:

链式中断控制器(chained):

上图中,左边的"chained intc"就是链式中断控制器。

它底下的4个中断触发时,都会导致GIC的33号中断被触发。

处理中断时,需要分辨:是谁触发了GIC 33号中断?这需要读取"chained intc"中的寄存器。

层级中断控制器(hierarchy):

上图中,右边边的"hierarchy intc"就是层级中断控制器。

它底下的4个中断,跟GIC中的4个中断一一对应。

处理GIC 100~103号中断时,不需要读取"hierarchy intc"的寄存器来分辨是谁触发了中断。

链式中断控制器的处理流程:
 

下图中:

  • handleA、irq_dataA由GIC驱动提供

  • handleB、irq_dataB由GPIO驱动提供

  • handleC也是GPIO驱动提供

  • 假设GPIO模块下有4个引脚,都可以产生中断,都连接到GIC的33号中断

  • GPIO就是一个链式中断控制器,它底下有4个中断

  • 对于GPIO模块中0~3这四个hwirq,分配四个irq_desc

    • 可以一下子分配4个:legacy,老方法

    • 也可以用到时再分配:linear,新方法

  • 假设这4个irq_desc的序号为100~103,在GPIO domain中记录(0,100) (1,101)(2,102) (3,103)

  • 对于KEY,注册中断时就是:request_irq(102, ...)

  • 按下KEY时:

    • 程序从GIC中读取寄存器知道发生了33号中断,通过GIC irq_domain可以知道virq为17

    • 处理virq 17号中断:调用irq_desc[17].handle_irq,即handleB

      • mask/ack中断: 调用irq_desc[17].irq_data->irq_chip的函数,即irq_dataA

      • 细分中断源、处理

        • 读取GPIO寄存器,确定是GPIO里2号引脚发生中断

        • 通过GPIO irq_domain可以知道virq为102

        • 处理virq 102号中断:调用irq_desc[102].handle_irq,即handleC

          • mask/ack中断: 调用irq_desc[102].irq_data->irq_chip的函数

          • 调用irq_desc[102].action链表中用户注册的函数

          • unmask中断: 调用irq_desc[102].irq_data->irq_chip的函数

      • unmask中断: 调用irq_desc[17].irq_data->irq_chip的函数

层级中断控制器的处理流程:

下图中:

  • handleA、irq_dataA由GIC驱动提供

  • irq_dataB由GPIO驱动提供,不需要handleB

  • 假设GPIO模块下有4个引脚,都可以产生中断,分别链接到GIC的100~103号中断

  • GPIO就是一个层级中断控制器

  • 对于GPIO模块中0~3这四个hwirq,分配四个irq_desc,用到时再分配

  • 假设这4个irq_desc的序号为234~237

    • 在GIC domain中记录(100,234) (101,235)(102,236) (103,237)

    • 在GPIO domain中记录(0,234) (1,235)(2,236) (3,237)

  • 对于KEY,注册中断时就是:request_irq(236, ...)

  • 按下KEY时:

    • 程序从GIC中读取寄存器知道发生了102号中断,通过GIC irq_domain可以知道virq为236

    • 处理virq 236号中断:调用irq_desc[236].handle_irq,即handleA

      • mask/ack中断:

        • 调用irq_desc[236].irq_data->irq_chip的函数,即irq_dataB

          • 它会调用父级irq_dataA->irq_chip的函数

      • 调用irq_desc[236].action链表中用户注册的函数

      • unmask中断:

        • 调用irq_desc[236].irq_data->irq_chip的函数,即irq_dataB

          • 它会调用父级irq_dataA->irq_chip的函数

到这里,我们就基本上把俩种结构给解释清楚了,下一篇,我们来编写一个链式的虚拟中断控制器,完结,撒花(doge.)

 

http://www.dtcms.com/wzjs/351318.html

相关文章:

  • 耒阳市做网站的运营推广的方式和渠道
  • 成人做暧视频观看网站站长工具是做什么的
  • 星沙网站建设公司it培训机构排行榜
  • 静态手机网站基础自己做网站的流程
  • 网站建设与维护心得seo优化排名推广
  • 怎么做点图片链接网站谷歌推广开户
  • 商丘做建设网站的公司关键词出价计算公式
  • 网站建设捌金手指花总十八网络营销做得好的企业有哪些
  • 邯郸哪里做网站百度搜索排名靠前
  • 做一个网站的步骤网络营销成功案例ppt免费
  • 嘉兴网站建设嘉兴线上培训平台
  • 手机网站开发软件北京网站制作400办理多少钱
  • 网站建设要用什么软件百度热搜词排行榜
  • 做机械出口用哪个网站好关键词搜索爱站网
  • 做产品目录的网站网站搭建的流程
  • 大型企业网站优化seo推广如何做
  • 专业网站建设制作多少钱云南网站seo服务
  • 淘宝找人做网站靠谱吗泰州百度关键词优化
  • 淘宝客网站怎么做的百度认证
  • 手机游戏的官方网站开发是同步进行的么?微信引流主动被加软件
  • 有没有帮人做CAD的网站厉害的seo顾问
  • 重庆便宜做网站的网站怎么推广
  • 建设网站范文加盟培训机构
  • 网站建设公司成都案例展示企业网站seo优化外包
  • 青岛公司建站网站销售清单软件永久免费版
  • 企业网站平台如何做网络推广淄博seo公司
  • 做外贸企业网站要注意哪些业务推广方式有哪些
  • 哪些网站布局设计做的比较好的宁德市人民医院
  • 360网站备案查询百度收录站长工具
  • 设计电子商务网站百度关键词优化怎么做