0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ARM Linux各种驱动的中断服务程序工作在ARM的IRQ模式吗?

Linux阅码场 来源:未知 作者:李倩 2018-07-27 14:54 次阅读

大家都知道,ARM有IRQ, FIQ, USR,SVC,ABORT等各种模式。当系统收到IRQ的时候,会进入ARM的IRQ模式。那么,ARM Linux各种驱动的中断服务程序工作在ARM的IRQ模式吗?

答案是否定的。

我们加一段汇编来读CPSR:

然后我们随便找一个ARM Linux的中断服务程序去打印CPSR:

然后我们发现打印出来的值是:

cpsr:40000193

低8位的二进制是10010011

那么对应ARM CPSR的查询,可以看出CPU处于ARM的SVC模式(低5位是10011),而且I bit被设置(第7位是1),所以是禁止IRQ的。

模式表:

可见,ARM Linux最初进入IRQ模式后,比较快速地从IRQ模式切换到了SVC模式,但是这个时候,并没有使能CPSR的I bit,所以仍然是禁止其他中断嵌套进入的。

(完)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    9040

    浏览量

    366731
  • Linux
    +关注

    关注

    87

    文章

    11219

    浏览量

    208879
  • 中断服务
    +关注

    关注

    0

    文章

    9

    浏览量

    6826

原文标题:ARM Linux的中断服务程序工作在ARM的IRQ模式吗?

文章出处:【微信号:LinuxDev,微信公众号:Linux阅码场】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ARM中断模式IRQ)和快速中断模式(FIQ)区别比较

    IRQ高。 4、FIQ模式下,比IRQ模式多了几个独立的寄存器。 不要小看这几个寄存器,ARM在编译的时候,如果你FIQ
    发表于 10-13 10:43

    ARM中断原理及中断嵌套

    。 当I位和F位为0时,irq pin上有中断信号过来时,就会打断arm的当前工作,并且切换到IRQ模式
    发表于 10-13 21:16

    简述ARM的2种工作状态和7种工作模式

    模式下的其他6中模式,有SVC,FIQ,IRQ,ABT,UND,SYS 都可以修改CPSR寄存器、从而控制ARM工作
    发表于 08-20 12:30

    ARM的2种工作状态和7种工作模式。[附带文档下载]

    模式下的其他6中模式,有SVC,FIQ,IRQ,ABT,UND,SYS 都可以修改CPSR寄存器、从而控制ARM工作
    发表于 08-20 09:14

    基于ARM架构的linux中断工作原理是什么

    最近在看一些关于arm linux中断方面的资料,看了很多资料,总结一下自己对linux中断的理解,写到这里供大家参考,以下所有的描述都是
    发表于 05-30 09:23

    ARM处理器7种工作模式

    user模式下的其他6中模式,有SVC,FIQ,IRQ,ABT,UND,SYS 都可以修改CPSR寄存器、从而控制ARM工作
    发表于 12-15 10:15

    ARM向量中断机制uClinux下的设计

    ARM体系结构中,硬件产生的外部中断( IRQ) 具有单一的程序入口。为了识别中籽源,进而运行对应的
    发表于 06-27 15:45 64次下载
    <b class='flag-5'>ARM</b>向量<b class='flag-5'>中断</b>机制<b class='flag-5'>在</b>uClinux下的设计

    ARM微处理器编程模型之处理器工作模式解析

    3.2 处理器工作模式 ARM处理器共有7种工作模式,如表3.1所示 表3.1 ARM处理器的
    发表于 10-18 15:57 2次下载

    ARM7和ARM-Cortex的区别,ARM为什么会有两种启动方式?

    IRQ,FIQ定义: 这就是个普通中断,当我们程序定义了该中断,并且程序运行的时候产生了
    的头像 发表于 10-27 11:20 9894次阅读

    需要了解的LinuxIRQ中断子系统

    Linux中断子系统(generic irq)出现之前,内核使用__do_IRQ处理所有的中断
    发表于 05-10 10:56 1461次阅读

    如何编写基于ARM的裸机程序和基于Linux驱动程序

    嵌入式开发中,ADC应用比较频繁,本文主要讲解ADC的基本原理以及如何编写基于ARM的裸机程序和基于Linux驱动程序
    的头像 发表于 09-13 09:25 3288次阅读
    如何编写基于<b class='flag-5'>ARM</b>的裸机<b class='flag-5'>程序</b>和基于<b class='flag-5'>Linux</b>的<b class='flag-5'>驱动程序</b>

    ARM中断原理以及中断嵌套

    我们可以假设ARM核心有两根中断引脚(实际上是看不见的),一根叫 irq pin, 一根叫fiq pin。ARM的cpsr中,有一个I位和
    的头像 发表于 04-07 10:29 3229次阅读

    如何在特权模式下用arm汇编指令使能和禁止irq中断

    如何在特权模式下用arm汇编指令使能和禁止irq中断 ARM 系统中,
    的头像 发表于 10-19 16:42 1284次阅读

    arm中断是怎么实现的

    ARM中断的实现是通过中断控制器和异常模式实现的。ARM处理器通过中断控制器来接收和处理外部的
    的头像 发表于 01-05 15:18 828次阅读

    ARM处理器的工作模式和特点

    ARM处理器具有多种工作模式,这些模式根据处理器执行的任务和当前的状态进行划分。常见的ARM处理器工作
    的头像 发表于 09-10 11:22 869次阅读