中断控制系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

R15(PC)
状态 寄存器 CPSR SPSR - SPSR_svc
R15
CPSR SPSR_abt SPSR_und SPSR_irq SPSR_fiq
深入理解CPU的工作模式
第一类分组的通用寄存器 第二类分组的通用寄存器 未分组的通用寄存器 程序计数器 状态寄存器
寄存器 类别 寄存器在汇 编中的名称 R0(a1) R1(a2) 各模式下实际访问的寄存器 用户 系统 管理 中止 R0 未定义 中断 快中断
注意:在操作系统移植过程中可能会使用到软中断!!!
S3C2440中断系统概述
CPU与外设的数据传输方式通常有以下几种: 查询方式: CPU不断的查询外设状态,如果外设准备就绪就开始传输数 据,如果外设还没有准备好,就进入循环等待 缺点:实时性差、浪费处理器时间 中断方式: 当外设准备好与CPU进行数据交换时,首先向CPU提出中断 请求,CPU在接到中断请求并在一定条件下,暂停原来的程 序,并执行中断服务程序,执行完后再次返回源程序的过程 DMA方式: 不经过CPU而直接进行数据交换的过程
通 用 寄 存 器 和 程 序 计 数 器
寄存器R0~R7为未 R1 R2(a3) R2 分组的通用寄存器, R3(a4) R3 它们在任何处理器模 R4(v1) R4 寄存器R14称为链接寄存器(LR), R5(v2) 式都对应于相同的32 R5 在结构上有两个特殊功能: 寄存器R13、R14分别 R6 R6(v3) 寄存器R8~R12 位物理寄存器。 寄存器R13通常作为 R7 R7(v4) 在发生FIQ中断 当使用BL指令调用子程序时,返回 有6个分组的物理寄存 有两个分组的物 R8 寄存器CPSR为当前程序状态寄存器,在异常 R8(v5) R8_fiq 堆栈指针(SP),用 后,处理器不必 地址将自动存入R14中; 器。1个用于用户和系 R9(SB,v6) R9_fiq 理寄存器。一个 R9 模式中,另外一个寄存器“程序状态保存寄 于保存待使用的寄存 为保护寄存器而 R10 当发生异常时,将R14对应的异常 统模式,其余5个分别 R10(SL,v7) R10_fiq 寄存器R15称为程序计 用于除FIQ模式 存器(SPSR)”可以被访问。每种异常都有 R11(FP,v8) R11_fiq 器的内容。 浪费时间,从而 R11 模式版本设置为异常返回地址(有 用于5种异常模式。 数器(PC),它指向 之外的所有寄存 R12 R12(IP) R12_fiq 自己的SPSR,在进入异常时它保存CPSR的当 加速了FIQ的处 些异常有一个小的固定偏移量)。 R13_irq R13_fiq R13(SP) R13 R13_scv R13_abt R13_und 正在“取指”的指令。 器模式,另一个 前值,异常退出时可通过它恢复CPSR。 R14_fiq R14(LR) R14 R14_svc R14_abt R14_und R13_irq 理速度。 用于FIQ模式。 R15(PC) R15
所有的37个寄存器, R6(v3) 分成两大类: R7(v4)
R5(v2)
R6
R7 R8 R9 R10 R11 R12 R8_fiq R9_fiq R10_fiq R11_fiq R12_fiq R13_abt R14_abt R15 CPSR R13_und R14_und R13_irq R13_irq R13_fiq R14_fiq
SPSR_irq
SPSR_fiq
深入理解CPU的工作模式
ARM状态各模式下可以访问的寄存器
寄存器 类别 寄存器在汇 编中的名称 R0(a1) R1(a2) R2(a3) R3(a4) 通 用 寄 存 器 和 程 序 计 数 器 各模式下实际访问的寄存器 用户 系统 管理 中止 R0 R1 R2 R3 未定义 中断 快中断
深入理解CPU的工作模式
ARM 处理器共有37个寄存器,被分为若干个组,这些 寄存器包括:
31个通用寄存器,包括程序计数器(PC 指针),均为32位 的寄存器;
6个状态寄存器,用以标识CPU的工作状态及程序的运行状 态,均为32位。
深入理解CPU的工作模式
ARM状态各模式下的寄存器
寄存器 类别 寄存器在汇 编中的名称 R0(a1) R1(a2) R2(a3) R3(a4) 通 用 寄 存 器 和 程 序 计 数 器 R4(v1) 各模式下实际访问的寄存器 用户 系统 管理 中止 R0 R1 R2 R3 R4 R5 未定义 中断 快中断
IRQ是普通中断用于处理一般事件,FIQ是快速中断, 一般用于大批量数据传送等情况
S3C2440中断控制器有60个中断源
对外提供24个外中断输入引脚,内部所有设备都有 中断请求信号,例如DMA控制器、UART、IIC等等
那2440是如何协调这些中断的呢?? 2440采用硬件裁决和中断向量表的方法解决 此问题
L/O/G/O
中断控制系统
Contents
序言 S3C2440中断系统概述 深入理解CPU的工作模式 中断控制器 中断实验
序言
正常执行:每执行一条ARM指令,程序计数器PC的值自动加 4;??? 跳转执行:通过B、BL跳转执行,实现程序在一定范围内的 跳转执行;??? 中断处理:在应用程序执行过程中,发生中断后,ARM处理 器在执行完当前指令后,跳转到上述中断对应的中断处理程 序处去执行,执行完中断处理程序后,再返回到发生中断的 指令的下一条执行处接着执行。???
CPSR SPSR - SPSR_svc CPSR SPSR_abt SPSR_und SPSR_irq SPSR_fiq
状态 寄存器
深入理解CPU的工作模式
在Thumb状态各模式下实际访问的寄存器
Thumb状态寄存器集是ARM状态集的子集,程序员可以 直接访问的寄存器为: 8个通用寄存器R0~R7; 程序计数器(PC); 堆栈指针(SP);
R13_fiq R14_fiq
ቤተ መጻሕፍቲ ባይዱ
CPSR
深入理解CPU的工作模式
Thumb寄存器在ARM状态寄存器上的映射
Thumb状态
R0
ARM状态
R0
R1
R2 R3 R4 R5 R6 R7
R1
R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12
Thumb状态R0~R7与 ARM状态R0~R7相同; 低端寄存器 2 Thumb状态SP映射到 ARM状态R13; Thumb状态LR映射到 ARM状态R14; Thumb状态PC映射到 高端寄存器 ARM状态R15(PC); 在Thumb状态中,高端 5 Thumb状态CPSR(无 寄存器的访问是受到限制的, SPSR)与ARM状态CPSR相 只有MOV、CMP和ADD指 同。 令可以对其访问,可以用于 数据的快速暂存。
4 3
1
堆栈指针(SP) 连接寄存器(LR) 程序计数器(PC) CPSR
堆栈指针(R13) 连接寄存器(R14) 程序计数器(R15) CPSR SPSR
深入理解CPU的工作模式
问题1:当进行工作 模式的切换时,哪些 寄存器的值需要保存 呢???
深入理解CPU的工作模式
问题2:为什么 快速中断模式比 外部中断模式中 断响应的速度快 呢???
地 址 0x0000,0000 0x0000,0004 0x0000,0008 0x0000,000C 0x0000,0010 0x0000,0014 0x0000,0018 0x0000,001C 异 常 复位 未定义指令 软件中断 中止(预取指令) 中止(数据) 保留 IRQ FIQ 进入模式 管理模式 未定义模式 管理模式 中止模式 中止模式 保留 IRQ FIQ
(有子寄存器)
子中断源 挂起寄存器
子中断源 屏蔽寄存器 中断模式
中断源
(无子寄存器)
FIQ IRQ 中 断 挂 起 中断屏蔽 优先级仲裁
中断源挂起
中断控制器
2、中断裁决过程 中断系统有6个分 仲裁器和1个总仲裁 器,每一个仲裁器可 以处理6路中断
中断控制器
3、中断向量表(两级)
第一级(上电复位时): 位于启动代码(裸机)、head.s(bootloader)的起始位置
链接寄存器(LR);
当前程序状态寄存器( CPSR)。
深入理解CPU的工作模式
在Thumb状态各模式下的寄存器
第二类分组的通用寄存器 未分组的通用寄存器
寄存器 类别 寄存器在汇 编中的名称 R0(a1) 通 用 寄 存 器 和 程 序 计 数 器 R1(a2) R2(a3) R3(a4) R4(v1) R5(v2) R6(v3) R7(v4,WR) SP LR PC 状态 寄存器 各模式下实际访问的寄存器 用户 系统 管理 中止 R0 R1 堆栈指针SP对应ARM状态的寄存器R13。 R2 每个异常模式都有其自身的SP分组版本, R3 R4 链接寄存器LR对应ARM状态寄存器R14。 SP通常指向各异常模式所专用的堆栈。 R5 注意:在发生异常时,处理器自动进入 R6 R7 ARM状态。 R13 R13_scv R13_abt R13_und R13_irq R14 R14_svc R14_abt R14_und R13_irq 在汇编语言中寄存器R0~R7为通用寄存 R15 器,对于任何处理器模式,它们中的每 CPSR 一个都对应于相同的32为物理寄存器。 未定义 中断 快中断
31个通用32位寄存器; R9(SB,v6)
R11(FP,v8) 6个状态寄存器。 R12(IP) R13(SP) R14(LR) R15(PC) R13 R14 R13_scv R14_svc R10(SL,v7)
R8(v5)
状态 寄存器
CPSR
SPSR

SPSR_svc
SPSR_abt
SPSR_und
中断控制器
S3C2440中断控制器可以接收来自60个中断源的中断请 求。对于ARM处理器而言,中断源很多。
???
为了更好处理各种中断,当中断发生时,中断请求并不是 直接发送给CPU,而是发送给中断控制器,中断控制器进 行裁决后,选择出当前最需要处理的中断请求发送给CPU, 这样降低CPU的负担。
ARM处理器工作模式可以通过软件改变,也可以通过外部中断或异 常处理来改变处理器的工作模式。大多数的应用程序运行在用户模式下, 当处理器运行在用户模式下,某些被保护的系统资源是不能被访问的。 思考:除了软件切换工作模式外,还有其他方法吗??? 通过异常中断方式进入相应的工作模式。例如:当IRQ中断发生时,处 理器就进入外部中断模式
S3C2440中断系统概述
ARM处理器对中断的处理流程基本符合以下流程:
中断控制器将中断请求发送给CPU
CPU将当前程序的运行环境保持,调用相应的中断处理程序
在中断处理程序中,识别具体是哪个中断发生,并进行相应的处理
从中断处理程序返回,恢复被中断程序的运行环境,接着执行
S3C2440中断系统概述
中断控制器
S3C2440处理器的中断控制器结构图:
主要由中断源和控制寄存器两大部分构成,寄存器主要有 4种:模式、屏蔽、优先级、挂起(标志)寄存器。
主中断32个,子中断11个。如主中断INT-ADC有AD转换完成 中断ADC-DONE和触摸屏中断TC两个子中断。
中断控制器
中断法的引入,极大的提高了CPU的利用效率 ARM920T内核有两个中断IRQ中断和FIQ中断
中断控制器
1、中断裁决机制 中断产生后根据中断屏蔽、中断优先级、中断 模式等寄存器决定中断执行顺序,同一时刻只用 一种中断处于执行状态 2、中断向量表 使用两级中断向量表的机制,使中断服务程 序可以顺利执行
中断控制器
1、中断系统组成: 主要由中断源和控制寄存器两大部分构成,其寄存器 主要有4种:模式、屏蔽、优先级、挂起(标志)寄存器 等 中断源
R4(v1)
R5(v2) R6(v3) R7(v4) R8(v5) R9(SB,v6) R10(SL,v7) R11(FP,v8) R12(IP) R13(SP) R14(LR) R13 R14 R13_svc R14_svc R8 R9 R10 R11 R12
R4
R5 R6 R7 R8_fiq R9_fiq R10_fiq R11_fiq R12_fiq R13_abt R14_abt R13_und R14_und R13_irq R14_irq R13_fiq R14_fiq
相关文档
最新文档