版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2020/10/12,西安邮电学院 计算机学院,1,第6章输入/输出与中断技术,西安邮电学院 计算机学院,2,2020/10/12,第6章 目录,6.1 计算机接口概述 6.2 输入输出接口电路 6.3 CPU与外设的数据传输控制方式 6.4 ARM中的GPIO 6.5 中断技术 6.6 ARM中断系统基础,西安邮电学院 计算机学院,3,2020/10/12,第6章 目录,6.1 计算机接口概述 6.2 输入输出接口电路 6.3 CPU与外设的数据传输控制方式 6.4 ARM中的GPIO 6.5 中断技术 6.6 ARM中断系统基础,西安邮电学院 计算机学院,4,2020/10/12,6.1
2、计算机接口概述,计算机硬件由控制器、运算器、存储器、输入设备和输出设备等5部分组成 。 处理器的强大功能必须通过外部设备(简称外设)才能得以呈现 。 计算机外设在接入到计算机系统时需要接口电路桥接-用于完成主机与物理外设的桥接与控制。 在本课程中所研讨的“外设”是指外设接口,注重于工作原理研讨。,西安邮电学院 计算机学院,5,2020/10/12,第6章 目录,6.1 计算机接口概述 6.2 输入输出接口电路 6.3 CPU与外设的数据传输控制方式 6.4 ARM中的GPIO 6.5 中断技术 6.6 ARM中断系统基础,西安邮电学院 计算机学院,6,2020/10/12,6.2 输入输出接口
3、电路,计算机中的输入输出接口电路用于将物理外设连接入计算机系统,在计算机系统中起着物理外设与计算机主机之间桥接、适配作用。,西安邮电学院 计算机学院,7,2020/10/12,6.2.1 输入输出接口电路的基本功能与端口分类,接口-具有物理连接的含义,物理外设通过接口电路接入到计算机。 接口电路-是实现接口的主要组成部分,用于将物理外设桥接到计算机系统总线。 从CPU角度看到的外设实质上是外设的接口电路,它是物理外设的抽象,并不一定是具体的物理外设装置,更具有原理代表性。,一、基本概念,西安邮电学院 计算机学院,8,2020/10/12,6.2.1 输入输出接口电路的基本功能与端口分类,状态信
4、息(输入)- 用于标示设备的状态情况 。 数据信息(输入/输出)- 要传送的二进制目标数据。 控制信息(输出)- 控制外设的工作方式与具体操作。 对应于上述的三种信息,外设接口电路中的端口寄存器也分为了三类:状态端口(寄存器)、数据端口(寄存器)和控制端口(寄存器)。,二、主机与外设接口之间主要交互的三类信息,西安邮电学院 计算机学院,9,2020/10/12,6.2.1 输入输出接口电路的基本功能与端口分类,I/O接口的典型结构示意图,西安邮电学院 计算机学院,10,2020/10/12,6.2.2 I/O端口的编址,一、基本概念 计算机硬件系统中可以含有多个I/O接口,每个I/O接口中又可
5、以含有多个I/O端口(寄存器)。 端口寄存器在计算机系统中象存储器单元一样被编址,称之为端口地址,处理器通过端口地址可对各个端口寻址访问,实现对外设的访问控制。,西安邮电学院 计算机学院,11,2020/10/12,6.2.2 I/O端口的编址,二、计算机系统中有两种I/O端口编址方式 统一编址方式-I/O端口与内存单元统一编址在一个地址空间。只是分布在不同的地址空间区域。特点,处理器无专用的I/O指令,无专用的I/O访问控制管脚。 独立编址方式 - I/O端口与内存单元分别编址在I/O地址空间和内存地址空间。特点,处理器有专用的I/O指令,有专用的I/O访问控制管脚。,西安邮电学院 计算机学
6、院,12,2020/10/12,6.2.2 I/O端口的编址,三、接口 与 端口 接口 和 端口是两个不同的概念 。 接口 -侧重于物理连接; 端口 - 侧重于接口的内部工作方式。 接口由若干个端口加上相应的控制电路构成。 每个端口都对应与接口电路中的各个工作寄存器。 外设通过接口连接入计算机系统,计算机通过端口访问控制外设工作。,西安邮电学院 计算机学院,13,2020/10/12,第6章 目录,6.1 计算机接口概述 6.2 输入输出接口电路 6.3 CPU与外设的数据传输控制方式 6.4 ARM中的GPIO 6.5 中断技术 6.6 ARM中断系统基础,西安邮电学院 计算机学院,14,2
7、020/10/12,6.3 CPU与外设的数据传输控制方式,外设的多样性使外设的属性差异极大,需要不同的数据传送控制方式。 处理器与外设之间的数据传送方式主要有:无条件数据访问方式,状态查询方式数据访问方式,中断方式数据访问方式和直接存储器访问(DMA)方式等几种方式。,西安邮电学院 计算机学院,15,2020/10/12,6.3.1 无条件数据访问方式,一、问题描述与解决方法 如:状态开关(按键)、继电器、数码管、发光二极管等设备,计算机可随时访问,而不需顾及其当时的状态。 无条件外设-输入设备总是准备好向CPU提供数据,输出设备总是准备好接收CPU送来的数据。 CPU对此类外设进行输入/输
8、出操作时无需考虑外设的状态,直接读/写数据端口即可 。 这一类I/O设备的访问控制最简单 。,西安邮电学院 计算机学院,16,2020/10/12,6.3.1 无条件数据访问方式,二、接口电路的主要功能 任何设备都不能长期占用系统总线; 输入设备要经过三态缓冲器相连到系统总线; 输出设备要经过数据锁存器相连到系统总线; 小思考:处理器的数据总线仅传送操作数,这个说法对吗?,处理器运行的指令码也是通过数据总线从内存加载到CPU!,西安邮电学院 计算机学院,17,2020/10/12,6.3.1 无条件数据访问方式,三、接口电路的基本组成原理(输入三态隔离),西安邮电学院 计算机学院,18,202
9、0/10/12,6.3.1 无条件数据访问方式,三、接口电路的基本组成原理(输出数据锁存),西安邮电学院 计算机学院,19,2020/10/12,6.3.2 状态查询数据访问方式,一、问题描述与解决方法 有一些外设,处理器在对其进行访问时需要关心其状态,只有状态许可时方可对外设进行访问。如:AD转换器、串行通信、打印机等,这类外设称之为-条件访问外设。 CPU对此类外设进行输入/输出操作时需考虑外设的状态,只有外设处于准备好状态时,方可访问数据端口。,西安邮电学院 计算机学院,20,2020/10/12,6.3.2 状态查询数据访问方式,一、问题描述与解决方法 状态查询方式的原理:在执行数据端
10、口访问指令前,要先查询该设备的状态,当设备处于准备好状态时,CPU才执行对设备数据端口的输入/输出指令,与外设交换信息;否则,等待。,西安邮电学院 计算机学院,21,2020/10/12,6.3.2 状态查询数据访问方式,二、状态查询式 I/O接口电路 组成原理,西安邮电学院 计算机学院,22,2020/10/12,6.3.2 状态查询数据访问方式,三、状态程序查询方式 I/O控制流程,分析:外设速度比较慢,高速的CPU被迫查询、停等;CPU的运算能力被浪费。,改进思路:将CPU查询、停等改为由外设主动上报状态。,西安邮电学院 计算机学院,23,2020/10/12,6.3.3 中断方式数据访
11、问,一、基本思路 当外设需要与CPU进行信息交换时,由外设主动向CPU发出数据传送请求信号(中断申请),CPU响应此请求信号后(中断响应),暂停正在执行的程序,转去执行该外设的数据输入/输出操作程序(中断服务程序-ISR),外设数据端口访问后,CPU再继续执行被暂停的程序(中断返回)。,备注:慢速的外设与高速的CPU并行工作,充分发挥CPU的处理能力。,西安邮电学院 计算机学院,24,2020/10/12,6.3.3 中断方式数据访问,二、中断方式I/O接口原理,西安邮电学院 计算机学院,25,2020/10/12,第6章 目录,6.1 计算机接口概述 6.2 输入输出接口电路 6.3 CPU
12、与外设的数据传输控制方式 6.4 ARM中的GPIO 6.5 中断技术 6.6 ARM中断系统基础,西安邮电学院 计算机学院,26,2020/10/12,6.4 ARM中的GPIO,6.4.1 概述 GPIO(General Purpose Input/Output ports-通用输入/输出端口)是ARM系列芯片中的基本资源,用于二值化数据(数字电路的0/1)的输入和输出。 测取输入GPIO管脚的 高/低 电平状态; 在输出GPIO管脚上输出 高/低 电平。,西安邮电学院 计算机学院,27,2020/10/12,6.4.1 概述,ARM芯片GPIO管脚的输入/输出应用,西安邮电学院 计算机学
13、院,28,2020/10/12,6.4.1 概述,ARM芯片的GPIO引脚可分别设置为输入属性或输出属性。 GPIO用于将外部装置连接到计算机系统。 设置为输入属性的GPIO对输入的高低电平数据起着选通、隔离的作用。 设置为输出属性的GPIO对输出数据起着锁存的作用。,西安邮电学院 计算机学院,29,2020/10/12,6.4.1 概述,LPC2000系列ARM芯片的GPIO资源:,在芯片复位后,所有GPIO口默认为输入状态。 以端口(32bit字)为单位,对GPIO端口进行访问; 可以独立控制每位GPIO口的方向属性(输入或输出); 可以独立控制每输出位GPIO口的输出状态(1/0); 不
14、同系列的芯片具有不同数量的GPIO,西安邮电学院 计算机学院,30,2020/10/12,6.4.2 GPIO原理及端口寄存器说明,对于编程者而言,计算机中的各种资源都可被抽象成 “寄存器” 组; LPC2000系列芯片的每个 GPIO 组件可抽象为5个32位的寄存器: PINSELx、IOxDIR、IOxSET、IOxCLR和IOxPIN,ARM芯片GPIO资源概述:,西安邮电学院 计算机学院,31,2020/10/12,6.4.2 GPIO原理及端口寄存器说明,GPIO寄存器模型原理 :,西安邮电学院 计算机学院,32,2020/10/12,6.4.2 GPIO原理及端口寄存器说明,GPI
15、O相关寄存器说明 :,西安邮电学院 计算机学院,33,2020/10/12,6.4.2 GPIO原理及端口寄存器说明,GPIO相关寄存器说明 :,1、PINSELx :用于编码选择对应管脚的功能; 32bit 寄存器,每 2bit 为一组,用于控制(选择)对应引脚的功能,00 - GPIO功能; 复位默认值:0 x0000 0000; 备注:详见7.3小节管脚链接模块 。,西安邮电学院 计算机学院,34,2020/10/12,6.4.2 GPIO原理及端口寄存器说明,GPIO相关寄存器说明 :,2、IOxDIR :设置GPIO管脚输入/输出属性; 32bit 寄存器,每 1bit 为一组,用于
16、控制(选择)对应引脚的输入、输出属性;1-输出,0-输入 ; 复位默认值:0 x0000 0000;,西安邮电学院 计算机学院,35,2020/10/12,6.4.2 GPIO原理及端口寄存器说明,GPIO相关寄存器说明 :,3、IOxSET :输出高电平(1)控制寄存器 ; 32bit 寄存器,每 1bit 为一组,用于控制(选择)对应引脚的输出高电平; 当管脚设置为GPIO功能、输出属性时,向本寄存器某些位写1,对应的管脚将输出高电平;该寄存器写0无效 ; 复位默认值:0 x0000 0000;,西安邮电学院 计算机学院,36,2020/10/12,6.4.2 GPIO原理及端口寄存器说明
17、,GPIO相关寄存器说明 :,4、IOxCLR :输出低电平(0)控制寄存器 ; 32bit 寄存器,每 1bit 为一组,用于控制(选择)对应引脚的输出低电平; 当管脚设置为GPIO功能、输出属性时,向本寄存器某些位写1,对应的管脚将输出低电平;该寄存器写0无效 ; 复位默认值:0 x0000 0000;,西安邮电学院 计算机学院,37,2020/10/12,6.4.2 GPIO原理及端口寄存器说明,GPIO相关寄存器说明 :,5、IOxPIN :输出低电平(0)控制寄存器 ; 32bit 寄存器,只读; 当管脚设置为GPIO功能、输入属性时,每 1bit 对应反映相应引脚的电平高低状态(1
18、/0);,西安邮电学院 计算机学院,38,2020/10/12,6.4.2 GPIO原理及端口寄存器说明,LPC2000系列器件GPIO资源:,西安邮电学院 计算机学院,39,2020/10/12,6.4.3 GPIO应用举例,要求:两个按键K1、K2分别用于控制发光二极管LED和蜂鸣器Beep;有K1键按下,则LED点亮,K2键按下则Beep鸣响,反之熄灭、静音。,GPIO资源分配表,西安邮电学院 计算机学院,40,2020/10/12,6.4.3 GPIO应用举例,硬件原理图,西安邮电学院 计算机学院,41,2020/10/12,6.4.3 GPIO应用举例-代码清单,#define K1
19、 1 0; dly-) for (i=0; i50000; i+); ,西安邮电学院 计算机学院,42,2020/10/12,6.4.3 GPIO应用举例-代码清单,/* * 函数名称 :main() * 函数功能 :有K1键按下,则LED点亮,K2键按下则Beep鸣响, * 反之熄灭、静音。 */ int main (void) PINSEL0 = 0 x00000000; / P015:0管脚用做GPIO功能 IO0DIR = IO0DIR / BEEP、LED 输出低电平,西安邮电学院 计算机学院,43,2020/10/12,6.4.3 GPIO应用举例-代码清单,while (1) i
20、f (IO0PIN ,西安邮电学院 计算机学院,44,2020/10/12,6.4.5 ARM中的GPIO应用小节,ARM器件编程注意事项:,1、深入研讨相关寄存器的功用,理解其底层原理; 2、对于寄存器“写”操作,要求使用:“读修改写”方式 完成。 目的:寄存器的写操作,不要影响其它位的数据。,GPIO应用编程注意事项:,1、 IOxDIR、IOxSET、IOxCLR和IOxPIN只有在PINSELx选择为GPIO功能时有效; 2、 IOxSET、IOxCLR只有在IOxDIR选择为输出时有意义。,西安邮电学院 计算机学院,45,2020/10/12,第6章 目录,6.1 计算机接口概述 6
21、.2 输入输出接口电路 6.3 CPU与外设的数据传输控制方式 6.4 ARM中的GPIO 6.5 中断技术 6.6 ARM中断系统基础,西安邮电学院 计算机学院,46,2020/10/12,6.5 中断技术,日常生活中的例子:读书-接听电话-接待来访,6.5.1 基本概念,西安邮电学院 计算机学院,47,2020/10/12,计算机中的中断 - 在CPU执行程序过程中,一些急迫事件(中断申请),引起CPU暂停正在执行的程序,转去执行该事件的特定处理程序(中断服务程序-ISR),执行完毕后,CPU再返回到被暂停的程序继续执行。,6.5.1 基本概念,西安邮电学院 计算机学院,48,2020/1
22、0/12,IO操作 - 高速的CPU访问慢速的外设; 实时处理 - 导弹飞行控制等; 程序运行中的出错处理 - 除数为0,存储器访问异常等; 操作系统功能调用;,6.5.1 基本概念 - 计算机中断的基本应用,西安邮电学院 计算机学院,49,2020/10/12,6.5.1 基本概念 -中断技术常用术语:,中断源 - 需要CPU处理的事件源; 中断申请 - 中断源向CPU方向发出的请求处理信号; 断点 - 主程序被打断处的指针; 中断服务程序(ISR)- 中断事件的功能服务程序; 中断响应 - CPU敏感并进入到ISR的一系列动作; 中断返回 - CPU返回被中断主程序断点处继续执行主程序的一
23、系列动作;,西安邮电学院 计算机学院,50,2020/10/12,6.5.1 基本概念 -中断技术常用术语:,中断技术 - 中断及返回的软、硬件实现技术; 中断系统 -中断及返回的软、硬件实现电路与代码; 中断向量- 中断服务程序(ISR)的入口地址; 中断现场- CPU响应中断离开主程序时,CPU的相关寄存器数据情况。,西安邮电学院 计算机学院,51,2020/10/12,6.5.1 基本概念 -计算机中的中断技术应用:,引入中断的最初目的是为能更有效地处理系统中的输入输出,提高系统的整体性能; 计算机中的大多数设备都支持中断方式数据传送;如:打印机、网卡、显卡、声卡、硬盘光驱等 。 随着计
24、算机应用的发展,中断技术也不再局限于IO处理。如:出错处理、软中断等。 从中断概念的原本含义而言,中断是一个异步的事件 。软中断则是程序同步处理,主要应用于编写操作系统。,西安邮电学院 计算机学院,52,2020/10/12,6.5.2 中断系统的功能,中断技术重要而复杂,由计算机的软硬件共同完成 。不同计算机中的中断系统也不尽相同。一般都具备如下基本功能:,中断源的分别屏蔽控制-户可以通过软件分别地控制各个中断源可否申请中断 ; 中断源优先级的设置与管理 -户可以通过软件分别地安排各中断源的优先级;优先级排队电路协助将当前最高优先级的中断申请送向处理器 。,备注:中断系统优先级 有两层含义:
25、中断事件同时发生时,CPU相应谁;CPU正在执行ISR过程中,又有中断事件,CPU如何处理。,西安邮电学院 计算机学院,53,2020/10/12,6.5.2 中断系统的功能,中断源的分别屏蔽控制-原理示意图,西安邮电学院 计算机学院,54,2020/10/12,6.5.2 中断系统的功能,中断源优先级的设置与管理-原理示意图,西安邮电学院 计算机学院,55,2020/10/12,6.5.2 中断系统的功能,中断向量的设置与传递-中断系统在向 CPU 发出中断请求的同时,将对应的 ISR 入口地址相关信息发送CPU; 断点与现场保护- 为保障中断服务完成后能正确地返回并继续主程序的运行,CPU
26、在响应中断时,系统要记录下来被中断程序的断点(即主程序中下一条待执行的指令位置)和保护好当时的CPU工作现场。一般包含:PC、PSW和运算数据寄存器等。,西安邮电学院 计算机学院,56,2020/10/12,6.5.3 中断处理过程,1、中断请求,中断处理过程一般包括以下五个步骤:中断请求、中断响应、断点保护、中断处理和中断返回。,物理事件转换成一个电信号作为事件请求处理的申请 (信号形式:高低电平、上下沿)。 中断处理过程中,首先要有中断请求(中断申请)。 该信号可被屏蔽控制。,西安邮电学院 计算机学院,57,2020/10/12,6.5.3 中断处理过程,2、中断响应(软件设置,硬件自动工
27、作),CPU敏感并进入到ISR的一系列动作;,CPU总是在每条指令执行的最后一个时钟周期检测有无中断请求,若有中断申请则对其进行响应。 中断响应的同时,中断系统自动屏蔽控制,以保证中断逻辑的正确性。 中断响应还要获得相应的中断向量,找到对应的ISR并运行它。一般有两种方式:非向量中断方式和向量中断方式。 不同的中断系统,中断响应的具体操作差别较大,基本原理相似。,西安邮电学院 计算机学院,58,2020/10/12,6.5.3 中断处理过程,3、断点保护(硬件自动工作),保护断点,保障ISR能返回到主程序的断点处继续运行;,断点保护 - 主程序被打断时的 PC 当前值备份。不同的系统中,保护的
28、方法不一样:x86将PC值入堆栈,ARM将PC值保护到LR。此操作都是由硬件自动完成。 PSW-程序状态字的保护;不同的系统中,保护的方法不一样:x86需要软件方式将PSW值入堆栈,ARM中CPSR硬件自动保护到SPSR。,西安邮电学院 计算机学院,59,2020/10/12,6.5.3 中断处理过程,4、中断处理(软件编程),保护CPU数据现场,事件业务处理,恢复CPU数据现场;,CPU数据现场保护- ISR运行中用到的数据寄存器要先保护后使用,以保证返回时主程序的中间结果不被影响;一般通过入堆栈实现,也有些场合通过切换CPU的寄存器组实现; PSW-程序状态字的保护;不同的系统中,保护的方
29、法不一样; 事件处理代码完成对应的事件服务功能; 恢复CPU数据现场-将保护数据原样恢复。,西安邮电学院 计算机学院,60,2020/10/12,6.5.3 中断处理过程,5、中断返回(软件编程),执行完ISR后,要返回到原先被中断的主程序的断点处继续运行;,断点保护的逆过程,使用之前保护的PC值,重置PC; 不同的计算机有不同的中断返回方法;x86使用专用的中断返回指令(reti),ARM则是使用LR的值重置PC。,问题:CPU中的PC寄存器的功能?,答:CPU中的PC寄存器也称为程序计数器,处理器总是按照PC的指向完成取指、执行,并以此运行程序;PC指向哪里,CPU就运行到哪里;控制了PC
30、就控制了处理器的执行流向。PC是处理器中的一个极重要的工作寄存器。,西安邮电学院 计算机学院,61,2020/10/12,6.5.3 中断处理过程-小节,西安邮电学院 计算机学院,62,2020/10/12,第6章 目录,6.1 计算机接口概述 6.2 输入输出接口电路 6.3 CPU与外设的数据传输控制方式 6.4 ARM中的GPIO 6.5 中断技术 6.6 ARM中断系统基础,西安邮电学院 计算机学院,63,2020/10/12,6.6 ARM中断系统基础,前面我们讲解了中断技术的一般原理,下面我们来看看在ARM微控器中是如何实现中断技术的 - ARM中断系统。 ARM中断系统功能强,也
31、比较复杂;我们逐步学习。在此,我们仅以外中断为例介绍ARM中断的处理机制。,西安邮电学院 计算机学院,64,2020/10/12,6.6.1 ARM中的中断源,中断源 - 需要CPU处理的事件源;,ARM系列微控制器为了满足多方面的应用需求,在器件中集成了多种常用资源,它们多支持中断方式服务。 常见的中断源有:WDT(看门狗)、Timer(定时计数器)、PWM(脉宽调制器)、UART(通用异步收发器)、I2C(I2C接口)、SPI(SPI接口)、RTC(实时时钟)、A/D(模数转换器)、EINT(外中断)等。 用户可以依据自己的资源需要,选取一款性价比较好的器件应用到自己的应用设计中。,备注:
32、上述中断源都支持查询方式服务;,西安邮电学院 计算机学院,65,2020/10/12,6.6.2 ARM中的向量中断控制器,向量中断 - 即要向CPU发出中断请求,同时还要给出ISR入口相关参数;,向量中断控制器(VIC-Vector Interrupt Controller) 是中断源与处理器连接的桥梁, 是ARM中断系统的主要硬件构成部分。 通过对VIC编程可对ARM器件的各个中断源进行中断屏蔽控制、中断优先级控制、中断分类控制、中断向量传递、状态查询等。,西安邮电学院 计算机学院,66,2020/10/12,6.6.2 ARM中的向量中断控制器,ARM的VIC原理示意图,西安邮电学院 计
33、算机学院,67,2020/10/12,6.6.2 ARM中的向量中断控制器,ARM技术中的中断和异常 :,中断和异常是两个不同的概念; ARM技术中,将所有能导致处理器打断程序正常运行的事件都归为异常;例如复位异常。 在ARM中包含有7种异常:复位异常、SWI异常(软中断异常)、未定义指令异常、数据中止异常、指令中止异常、IRQ异常和FIQ异常。 中断 是 异常 的两个特例( IRQ异常、 FIQ异常); 在ARM中,所有外设导致的异常都被处理成IRQ或FIQ两种异常之一 ;,西安邮电学院 计算机学院,68,2020/10/12,6.6.2 ARM中的向量中断控制器,习惯上将以IRQ异常方式传
34、递、响应的中断称之为“IRQ中断”;以FIQ异常方式传递、响应的中断称之为“FIQ中断”。 IRQ中断又根据中断服务程序入口地址的定位方式,被进一步划分为向量IRQ中断和非向量IRQ中断。,中断,西安邮电学院 计算机学院,69,2020/10/12,6.6.3 ARM的中断响应过程,ARM的FIQ中断、IRQ中断是ARM的FIQ和IRQ两种异常的特例,ARM使用对“异常”响应处理的方法响应处理FIQ、IRQ中断。,FIQ异常响应的服务入口地址固定为:0 x0000 001C; IRQ异常响应的服务入口地址固定为:0 x0000 0018;,通常系统中仅安排一个FIQ中断源;因此, FIQ异常响
35、应的服务入口地址就是“FIQ_ISR”入口地址; IRQ中断一般要对应多个中断源,IRQ_ISR入口地址处理需要特殊处理;,西安邮电学院 计算机学院,70,2020/10/12,6.6.3 ARM的中断响应过程,ARM启动代码的异常向量表部分:,0 x00 LDR PC, ResetAddr ;跳转到ResetAddr单元 0 x04 LDR PC, UndefinedAddr 0 x08 LDR PC, SWI_Addr 0 x0C LDR PC, PrefetchAddr 0 x10 LDR PC, DataAbortAddr 0 x14 DCD 0 xb9205f80 ; 用户代码有效性
36、检查码 0 x18 LDR PC, PC, #-0 xff0 ; PC (PC) 0 xff0 0 x1C LDR PC, FIQ_Addr,地址 指令 注释,备注:修改PC实质上就是跳转。,西安邮电学院 计算机学院,71,2020/10/12,6.6.3 ARM的中断响应过程,ARM启动代码的异常向量表部分:,0 x18 LDR PC, PC, #-0 xff0 ; PC (PC) 0 xff0 0 x1C LDR PC, FIQ_Addr,地址 指令 注释,IRQ异常入口指令 LDR PC, PC,#-0 xff0 执行的效果分析:,1、这条指令的地址是 0 x18,执行该指令时 PC=0
37、 x20; 2、执行的结果为 PC=0 x20 0 xff0 = 0 xffff f030; 3、 0 xffff f030 恰是 VICVectAddr 寄存器的地址;,结论:ARM处理器响应IRQ异常时,固定按VICVectAddr寄存器间接转移!,西安邮电学院 计算机学院,72,2020/10/12,6.6.3 ARM的中断响应过程,ARM处理器响应IRQ异常时,固定按VICVectAddr寄存器间接转移。 在ARM中有一套装置(VIC),它对各中断源进行管理,在申请中断的同时,自动地将该中断源对应的 “ISR向量” 传送到了 VICVectAddr 寄存器。,西安邮电学院 计算机学院,
38、73,2020/10/12,6.6.4 ARM的中断返回,在处理完中断后,要从ISR返回到主程序断点处继续执行。,有两个关键内容:,1、断点的精确定位; 2、断点处的处理器工作现场;,西安邮电学院 计算机学院,74,2020/10/12,6.6.4 ARM的中断返回,回忆 ARM 响应 IRQ、FIQ异常的过程:,1、断点的精确定位;,ARM处理器响应IRQ中断、FIQ中断时,硬件自动完成当前PC值到LR_irq(或LR_fiq)寄存器的备份,CPSR寄存器值到SPSR_irq(或SPSR_fiq)寄存器的备份。,需要进行返回调整:PC = LR#0 x04; 使用指令:SUBS PC , R
39、14 , #4 返回主程序。,2、断点处的处理器工作现场;(CPSR、R0R12),西安邮电学院 计算机学院,75,2020/10/12,6.6.5 ARM的外中断,ARM系统的外中断资源主要用于其他外部随机事件到系统的引入;当这些事件发生时,外部其他电路将对应的物理事件转换成电信号,处理器能及时响应、处理这些事件。,ARM的C是通过管脚(EINTx)输入符合要求的信号而触发的中断 。信号方式有 4种,用户可编程约定:,西安邮电学院 计算机学院,76,2020/10/12,6.6.5 ARM的外中断-信号方式 应用中的注意事项,1、边沿有效外中断,2、电平有效外中断,要注意EINT信号的清除;
40、保证每次中断,响应且仅响应一次。,西安邮电学院 计算机学院,77,2020/10/12,6.6.5 ARM的外中断-相关寄存器,硬件系统使用5个寄存器 -用于外中断控制。这 5个 寄存器构成了ARM外中断资源的系统(编程、控制)模型。,西安邮电学院 计算机学院,78,2020/10/12,6.6.5 ARM的外中断-相关寄存器,EXTINT - 外部中断标志寄存器,比特EINT3:0分别用于标示对应的4个中断输入; 当对应的输入端有有效输入信号时,相应的比特置1,通过VIC向处理器申请中断; 向EINT3:0按位写入1清零对应位。 建议 “读修改写” 方式操作 EXTINT寄存器 ;,注意:电
41、平方式的EINT;清0时不要影响其它位。,西安邮电学院 计算机学院,79,2020/10/12,6.6.5 ARM的外中断-相关寄存器,EXTMODE - 外部中断方式寄存器,EXTMODE3:0位分别用来选择对应的EINT3EINT0脚触发信号方式是电平或边沿。1- 沿方式;0- 电平方式 。 建议 “读修改写” 方式操作EXTMOD寄存器 ;,西安邮电学院 计算机学院,80,2020/10/12,6.6.5 ARM的外中断-相关寄存器,EXTPOLAR -外部中断极性寄存器,EXTPOLAR3:0位分别用来选择对应的EINT3EINT0脚触发信号的极性 。 1- 上升沿/高电平方式;0-
42、下降沿/低电平方式 。 建议 “读修改写” 方式操作EXTPOLAR寄存器 ;,西安邮电学院 计算机学院,81,2020/10/12,6.6.5 ARM的外中断-应用举例,要求:用一个按键模拟一个外中断触发,用蜂鸣器Beep模拟控制状态;每一次外中断事件翻转一次控制状态输出,模拟一个外中断发出、响应和处理过程。,设计分析:设置P0.16管脚用作EINT0功能,连接开关Key,信号方式设置为低电平有效;P0.7管脚用作GPIO功能,输出属性连接Beep。,西安邮电学院 计算机学院,82,2020/10/12,6.6.5 ARM的外中断-应用举例,P0.16管脚用作EINT0,连接开关Key,信号
43、方式设置为低电平有效; P0.7管脚用作GPIO功能,输出属性连接Beep。,设计分析,西安邮电学院 计算机学院,83,2020/10/12,6.6.5 ARM的外中断-应用举例C代码程序清单,#include config.h #define BEEP 1 7/* P0.7控制BEEP,低电平蜂鸣 */ void _irq IRQ_Eint0 (void) /* EINT0_ISR */ uint32 i; i = IO0SET; /* 读取当前BEEP的控制值 */ if (i /* 向量中断结束 */ ,西安邮电学院 计算机学院,84,2020/10/12,6.6.5 ARM的外中断-应
44、用举例C代码程序清单,int main (void) PINSEL0 = 0 x00000000; /* 设置P015:0为GPIO */ PINSEL1 = 0 x00000001; /* 设P0.16为EINT0 */ IO0DIR = BEEP; /* 设置P0.7为输出,其余输入 */ EXTMODE = 0 x00; /* 设置EINT0为电平触发 */ EXTPOLAR = 0 x00; /* 极性寄存器-低电平有效 */ IO0CLR = BEEP; /* Beep 初始态为静音 */ IRQEnable(); /* 使能IRQ中断 */ /* 打开EINT0中断(使用非向量中断
45、) */ VICIntSelect = 0 x00000000; /* 设置中断为IRQ中断 */ VICDefVectAddr = (int)IRQ_Eint0; /* 装载中断服务程序地址 */ EXTINT = 0 x01; /* 清除EINT0中断标志 */ VICIntEnable = 1 0 x0e; /* 使能EINT0中断 */ while (1); /* 等待中断 */ return (0); ,西安邮电学院 计算机学院,85,2020/10/12,6.6.5 ARM的外中断-应用举例ASM程序清单,BEEP equ 0 x80; P0.7 管脚接 BEEP,低电平鸣响 CO
46、DE32 AREA Example , CODE , READONLY ENTRY ;中断向量表 Reset LDR PC, ResetAddr LDR PC, UndefinedAddr LDR PC, SWI_Addr LDR PC, PrefetchAddr LDR PC, DataAbortAddr DCD 0 xb9205f80 LDR PC, PC, #-0 xff0 LDR PC, FIQ_Addr,备注:关注蓝色指令行。,西安邮电学院 计算机学院,86,2020/10/12,6.6.5 ARM的外中断-应用举例ASM程序清单,; 中断向量表文字池 ResetAddr DCD R
47、esetInit UndefinedAddr DCD Undefined SWI_Addr DCD SoftwareInterrupt PrefetchAddr DCD PrefetchAbort DataAbortAddr DCD DataAbort Nouse DCD 0 IRQ_Addr DCD 0 FIQ_Addr DCD FIQ_Handler,西安邮电学院 计算机学院,87,2020/10/12,6.6.5 ARM的外中断-应用举例ASM程序清单,ResetInit ;设置IRQ中断模式堆栈 msr CPSR_c , #0 xd2 ldr SP , =0 x40000500 ;设置
48、管理模式堆栈 msr CPSR_c , #0 xd3 ldr SP , =0 x40000800 ldr r0 , =PINSEL0 mov r4 , #0 x00 str r4 , r0; P015:0 管脚用作GPIO,西安邮电学院 计算机学院,88,2020/10/12,6.6.5 ARM的外中断-应用举例ASM程序清单,ldr r0 , =PINSEL1 mov r4 , #0 x01; P0.16用作外中断0 str r4 , r0 ldr r0 , =IO0DIR; P0.7管脚用作输出 mov r4 , #BEEP str r4 , r0 ldr r0 , =IO0SET; 初始态BEEP静音 mov r4 , #BEEP str r4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园宣传管理工作制度
- 幼儿园带班教师工作制度
- 幼儿园托管服务工作制度
- 幼儿园教师一日工作制度
- 幼儿园日常安全工作制度
- 幼儿园治安防范工作制度
- 幼儿园用电工作制度汇编
- 幼儿园结核筛查工作制度
- 幼儿园行政班子工作制度
- 康复科医疗工作制度范本
- 2024-2025学年浙江省宁波市第七中学教育集团八年级下学期期中语文试题
- 手术意外险课件
- 2025反诈知识竞赛考试题库及答案
- 建筑安全监督站培训课件
- 防水技术方案汇报
- 电力三种人安全培训课件
- 升压站运维安全培训课件
- 海南省海口市2024-2025学年七年级下学期期末考试生物试卷(含答案)
- 2025山东滨州阳信县医疗卫生机构招聘人员44人笔试备考题库及答案解析
- 孕期产检的课件
- 企业人岗匹配度评估
评论
0/150
提交评论