SC中断控制.docx
《SC中断控制.docx》由会员分享,可在线阅读,更多相关《SC中断控制.docx(24页珍藏版)》请在咨信网上搜索。
1、第11章 S3C2440的中断控制1. 中断体系结构1.1. 概述CPU在正常执行程序的过程中,CPU运行过程中,突然发生了一些不可预期的事件,比如某个按键按下、串口收到新数据、USB接口插入设备。但是CPU如何获得这些信息?主要有以下两种方法:u 查询方式:程序循环查询各个设备的状态并作出相应的反应。这种方式显现简单,常用在功能相对单一的系统中,例如电磁炉可以使用查询方式不断检测按键状态。缺点是占用CPU资源过高,不适合多任务系统。u 中断方式:当某个事件发生时,硬件会自动设置某个寄存器;当CPU执行完一个指令时,如果所关注的事件发生了,硬件会使CPU中止当前程序流程,跳转到某个固定物理地址
2、处理此事件,处理完毕后,返回到被中止的程序,使之继续执行。这种方式相对复杂,但是效率很高,是常用的方法。无论何种CPU,中断的处理过程是相似的:u 中断控制器汇集各类中断源发出的中断信号,然后通知CPU。u CPU保存当前程序的运行环境(各个寄存器、局部变量等)。u 自动跳转到固定物理地址,调用中断服务程序来处理中断。u 在中断服务程序中通过读取中断控制器、中断源相关的寄存器来辨别是哪个中断,并调用相应的中断服务函数进行处理。u 清除中断:通过读写中断控制器和中断源相关寄存器来实现。u 恢复被中断程序的运行环境(即第二步保存的寄存器和局部变量等),继续执行。1.2. 中断的定义CPU在正常执行
3、程序的过程中,突然发生了一些需要紧急处理的事件,这些事件通过某种方式触发引起CPU暂停当前正在执行的程序,转去处理突发事件,待突发事件处理完毕后,CPU再返回继续执行刚刚被暂停的程序的过程就称之为中断。在现代计算机系统中,中断系统具有非常重要的作用,它不仅用来管理外部设备,还用来管理处理机自身的各个部分。另外,许多系统软件和用户软件,也往往要借助中断系统才能实现。中断是CPU处理外部突发事件的一个重要技术。引起中断的原因或者说发出中断请求的来源叫做中断源。根据中断源的不同,可以把中断分为硬件中断和软件中断两大类。 硬件中断是由处理器自身的硬件系统或着外部硬件部件触发引起的中断类型,硬件中断又可
4、以分为外部中断和内部中断两类:u 外部中断一般是指由外设发出的中断请求,如:按键中断、串口中断、定时器中断等。外部中断是可以屏蔽的中断,也就是说,利用中断控制器可以屏蔽这些外部设备的中断请求,S3C2440共有24个外部中断EINT0-EINT24。u 内部中断是指因硬件出错(如突然掉电、奇偶校验错等)或运算出错(除数为零、运算 溢出、单步中断等)所引起的中断,内部中断是不可屏蔽的中断,S3C2440共有35个内部中断。 软件中断与硬件中断不一样,它不是由硬件触发的,而是由软件调用系统提供的一个指令(SWI)来触发的中断行为,是程序本身有意识的引发的中断行为,由于在用户模式下,程序对处理器资源
5、的访问会受到一些限制,因此,需要采用软中断的方式将处理器工作模式切到异常模式下访问受限资源,因此软中断一般都被用于实现特殊系统调用功能提供给软件系统使用。1.3. 中断的作用中断在系统中具有十分重要的作用,应该说整个系统都是依靠中断驱动起来的,中断的主要作用如下:1) CPU与外部设备并行工作图9.1是CPU与一台外部设备并行工作的时间关系图。现行程序和中断服务程序都是在同一个CPU上执行的,因此,他们必须串行执行。但是,外部设备工作与CPU执行现行程序或执行中断服务程序可以同时进行,使各自的效率得到充分发挥。 图 9.1 CPU与外部设备并行工作的时间关系当CPU在执行现行程序中启动外部设备
6、之后,不需要象程序控制方式那样反复查询外部设备的状态,而能够与外部设备并行工作。当外部设备的数据准备就绪后,主动向CPU发出中断请求。CPU接到外部设备的中断请求后,如果没有更加紧急的任务(如DMA服务等),就暂停正在执行的现行程序,转去执行中断服务程序,为外部设备服务。当中断服务完成之后,再返回到原先的现行程序中继续执行。当有多台外部设备需要同时工作时,CPU可以在不同时刻根据需要分别启动这些外部设备,被启动的外部设备能够与CPU分别同时独立工作。当某一台外部设备的数据准备就绪时,就向CPU发出中断服务请求。如果有多台外部设备同时要求中断服务,CPU能够根据这些外部设备的优先级从高到低分别响
7、应这些中断请求,为外部设备服务。2) 能够处理例外事件计算机在运行过程中,可能发生例外事件,如电源掉电、硬件故障、运算溢出、地址越界、非法指令等。依靠程序控制方式根本不可能处理好这些例外事件,因为CPU不可能一直不间断地查询是否有电源掉电,是否发生了硬件故障,如果这样,计算机就什么事也干不了了。采用中断方式,当出现例外事件时,就向CPU发出中断服务请求,CPU可以立即停止执行现行程序,及时处理这些例外事件,避免发生计算错误,或造成更大的损失。3) 实现实时处理在实时控制系统中,处理机必须及时响应外部请求,及时处理,否则,可能丢失数据或造成无法弥补的损失。例如,在过程控制中,当出现温度过高、压力
8、过大的情况时,处理机只有通过中断系统才能及时响应并给予处理。4) 实现人机联系在计算机工作过程中,我们经常需要了解机器的工作状态,给机器发出各种各样的命令,干预机器的运算过程,抽查中间运算结果等。通常,人们通过键盘、鼠标、或其他终端设备来干预计算机的工作,但是,无论采用何种外部设备,必须通过中断方式才能实现。5) 实现用户程序与操作系统的联系一般处理机至少有两种工作状态,当处理机执行管理程序时为管态(或成为系统态、特权态等),当处理机执行用户程序时为目态(或成为用户态)。用户程序必须通过执行访问管理程序的专用指令才能进入操作系统,以完成所要求的管理功能,完成之后再返回到用户程序继续执行,而这一
9、过程必须通过中断系统来实现。6) 实现多任务并行执行目前的绝大多数操作系统均为多任务操作系统,在一个单处理机的计算机系统中,可以有多个任务并行执行。从一个任务切换到另外一个任务,必须通过中断系统才能实现。7) 在多处理机系统中,实现处理机之间的联系在多处理机系统中,各个处理机之间的通信和任务切换都要通过中断系统来实现。当外部设备的数量比较多时,也可以通过中断系统把外部设备分配到各个处理机中分别管理2. 中断控制器2.1. 中断的类型在S3C2440A中,共可以从59个中断源接收中断,这59个中断源分为32个一级中断源(有8个是带有二级中断源的,本身并不能触发,只计其二级中断源)和35二级中断源
10、(子中断源),其中24个一级中断源可以直接触发中断,另外35个二级中断源触发时需要通过一级中断源进行请求,在处理中断时再通过寄存器判断是哪个二级中断源触发,因此,8个带有二级中断源因需要做二次判断,效率相对会较低一些。中断汇总表中断类型一级中断/SRCPND二级中断/SUBSRCPND或EINTPND功能说明内部中断INT_ADC/31INT_ADC_S/SUBSRCPND10ADC转换完成中断INT_TC/SUBSRCPND9触摸屏中断(按下/提起)INT_RTC/30RTC 闹钟中断INT_SPI1/29SPI1 中断 INT_UART0/28INT_ERR0/SUBSRCPND2错误中断
11、INT_TXD0/SUBSRCPND1数据发送中断INT_RXD0/SUBSRCPND0数据接收中断INT_IIC/27IIC 中断 INT_USBH/26USB 主机中断 INT_USBD/25USB 设备中断INT_NFCON/24Nand Flash 控制中断INT_UART1/23 INT_ERR1/SUBSRCPND5错误中断INT_TXD1/SUBSRCPND4数据发送中断INT_RXD1/SUBSRCPND3数据接收中断INT_SPI0/22SPI0 中断 INT_SDI/21SDI 中断INT_DMA3/20 DMA通道 3 中断 INT_DMA2/19DMA通道 2 中断IN
12、T_DMA1/18DMA通道 1 中断INT_DMA0/17DMA通道 0 中断 INT_LCD/16LCD 中断INT_UART2/15INT_ERR2/SUBSRCPND8UART2错误中断INT_TXD2/SUBSRCPND7UART2数据发送中断INT_RXD2/SUBSRCPND6UART2数据接收中断INT_TIMER4/14定时器 4 中断 INT_TIMER3/13定时器 3 中断INT_TIMER2/12定时器 2 中断 INT_TIMER1/11定时器 1 中断INT_TIMER0/10定时器 0 中断 INT_WDT_AC97/9INT_AC97/SUBSRCPND14A
13、C97中断INT_WDT/SUBSRCPND13看门狗中断INT_TICK/8RTC 时钟滴答中断 nBATT_FLT/7电池故障中断INT_CAM/6INT_CAM_P/SUBSRCPND12摄像头P端口捕捉中断INT_CAM_C/SUBSRCPND11摄像头C端口捕捉中断外部中断EINT8_23/5EINT23/EINTPND23外部中断 23EINT22/EINTPND22外部中断 22EINT21/EINTPND21外部中断 21EINT20/EINTPND20外部中断 20EINT19/EINTPND19外部中断 19EINT18/EINTPND18外部中断 18EINT17/EIN
14、TPND17外部中断 17EINT16/EINTPND16外部中断 16EINT15/EINTPND15外部中断 15EINT14/EINTPND14外部中断 14EINT13/EINTPND13外部中断 13EINT12/EINTPND12外部中断 12EINT11/EINTPND11外部中断 11EINT10/EINTPND10外部中断 10EINT9/EINTPND9外部中断 9EINT8/EINTPND8外部中断 8EINT4_7/4 EINT7/EINTPND7外部中断 7EINT6/EINTPND6 外部中断 6EINT5/EINTPND5 外部中断 5EINT4/EINTPND4
15、 外部中断 4EINT3/3 外部中断 3EINT2/2外部中断 2EINT1/1外部中断 1EINT0/0 外部中断 02.2. 中断的产生中断的产生过程在硬件的反映上就是几个寄存状态变化,这几个寄存器的详细描述请参照本章中中断的寄存器一节:中断产生流程图示:一级中断产生流程:1) 设置源中断未决寄存器的标志位(SRCPND)2) 判断中断位是否处于屏蔽状态(INTMASK)n 如果中断位己经被屏蔽,则等待中断蔽位打开,中断暂停。3) 判断中断模式是属于IRQ或着FIQn 如果是FIQ中断,则判断程序状态寄存中F位是否处理屏蔽状态n 如果程序状态寄存器的F位没有被屏蔽,则CPU暂停当前工作,
16、转而处理FIQ中断。n 如果程序状态寄存器的F位己经被屏蔽,中断暂停。4) 如果是IRQ中断,则判断程序状态寄存中I位是否处理屏蔽状态n 如果中断位己经被屏蔽,则等待中断屏蔽位打开,中断暂停。5) 从源中断未决寄存器中选择一个优先级最高的中断6) 设置中断未决寄存器(INTPND)7) 设置中断偏移寄存器(INTOFFSET)8) CPU暂停当前工作,转而处理IRQ中断。例如:外部中断3发生中断(对应的I/O口已初始化为外部中断)二级中断产生流程:1) 硬件触发产生中断2) 设置源中断未决寄存器的标志位(SUBSRCPND,EINTPEND)3) 判断中断位是否处于屏蔽状态(INTSUBMSK
17、,EINTMASK)n 如果中断位己经被屏蔽,则等待中断屏蔽位打开,中断暂停。4) 设置相应的一级源中断未决寄存器的标志位5) 执行一级中断产生流程例如:外部中断4发生中断(对应的I/O口已初始化为外部中断)2.3. 中断优先级32 个一级中断请求优先级逻辑通过7个仲裁器的选择,最终生成一个优先级最高的中断源,这7个仲裁器包括:6 个一级仲裁器和1个二级仲裁器。优先级选择过程:先由一级仲裁器从各个分组中各选择一个优先级最高的中断,形成6个中断源,再通过二级仲裁器从这6个中断源中选择一个优先级最高的中断源进行触发,其仲裁过程如下图所示:优先仲裁器:优先级钟裁器由寄存器PRIORITY进行配置,其
18、功能如下:每个仲裁器基于一个位仲裁器模式控制(ARB_MODE)和选择控制信号(ARB_SEL)的两位来处理6 个中断请求。如果ARB_SEL位是00b,优先级是REQ0,REQ1,REQ2,REQ3,REQ4,和REQ5.如果ARB_SEL位是01b,优先级是REQ0,REQ2,REQ3,REQ4,REQ1,和REQ5.如果ARB_SEL位是10b,优先级是REQ0,REQ3,REQ4,REQ1,REQ2,和REQ5.如果ARB_SEL位是11b,优先级是REQ0,REQ4,REQ1,REQ2,REQ3,和REQ5.注意仲裁器的REQ0 总是有最高优先级,REQ5 总是有最低优先级。此外通过
19、改变ARB_SEL 位,我们可以翻转REQ1 到REQ4 的优先级。如果ARB_MODE 位置0,ARB_SEL 位不会自动改变,使得仲裁器在一个固定优先级的模式下操作(注意在此模式下,我们通过手工改变ARB_SEL 位来配置优先级)。另外,如果ARB_MODE 位是1,ARB_SEL 位以翻转的方式改变。例如如果REQ1 被服务,则ARB_SEL 位自动的变为01b,把REQ1 放到最低的优先级。ARB_SEL 变化的详细规则如下:如果REQ0 或REQ5 被服务,ARB_SEL位完全不会变化。如果REQ1 被服务,ARB_SEL位变为01b。如果REQ2 被服务,ARB_SEL位变为10b
20、。如果REQ3 被服务,ARB_SEL位变为11b。如果REQ4 被服务,ARB_SEL位变为00b。2.4. 中断寄存器中断控制由以下几个寄存器来实现: 外部中断未决寄存器(EINTPEND) 外部中断掩码寄存器(EINTMASK) 内部子中断未决寄存器(SUBSRCPND) 内部子中断掩码寄存器(SUBINTMSK) 中断源未决寄存器(SRCPND) 中断掩码寄存器(INTMASK) 中断模式寄存器(INTMOD) 中断优先级寄存器(PRIORITY) 中断未决寄存器(INTPND) 中断偏移寄存器(INTOFFSET) 外部中断的触发方式寄存器(EXTINT0-EXTINT2) 外部中断
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SC 中断 控制
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。