Linux中断程序 优先级,ARM+Linux中断系统详细分析

本文深入探讨了Linux中断系统的优先级和嵌套机制,以ARM处理器为例,阐述了中断模式、异常处理流程以及中断服务程序的工作原理。在ARM中,IRQ模式能被FIQ模式打断,而FIQ模式具有最高优先级,不允许嵌套。Linux对这些硬件特性进行了管理,同时维持了无优先级中断模型。
摘要由CSDN通过智能技术生成

ULK第四章里明确讲到“Linux实现了一种没有优先级的中断模型”,并且“Linux中断和异常都支持嵌套”。这个我不太理解了,这两种说法都与我以前的理解刚好相反,核对了原书,翻译没有错。

Linux中断系统到底是否支持优先级,可否嵌套,中断号又是怎么来确定的,中断产生时又是如何一步步执行到中断处理函数的。为了彻底搞懂Linux中断系统,我决定从最原始材料出发,一探究竟。(s3c2440+linux2.6.21)

先来看看ARM的硬件执行流程

异常是ARM处理器模式分类,ARM有七种运行模式USR,SYS,SVC,IRQ,FIQ,UND,ABT

五种异常模式:SVC,IRQ,FIQ,UND,ABT

20167516719788874.png

中断模式是ARM异常模式之一(IRQ模式,FIQ模式),是一种异步事件,如外部按键产生中断,内部定时器产生中断,通信数据口数据收发产生中断等。

1.当一个异常产生时,以FIQ为例,CPU切入FIQ模式时,

①将原来执行程序的下一条指令地址保存到LR中,就是将R14保存到R14_fiq里面。

②拷贝CPSR到SPSR_fiq。

③改变CPSR模式位的值,改到FIQ模式。

④改变PC值,将其指向相应的异常处理向量表。

离开异常处理的时候,

①将LR(R14_fiq)赋给PC。

②将SPSR(SP

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值