码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2020-12-04 11:15:11      阅读:8      评论:0      收藏:0      [点我收藏+]

标签:image   arm linux   系统   模式   可见   info   驱动   mamicode   工作   

原创 宋宝华 Linux阅码场 2018-07-24


大家都知道,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 Linux的中断服务程序工作在ARM的IRQ模式吗?

标签:image   arm linux   系统   模式   可见   info   驱动   mamicode   工作   

原文地址:https://blog.51cto.com/15015138/2556518

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!