S3C2410的中断系统.ppt

上传人:sh****n 文档编号:6410667 上传时间:2020-02-25 格式:PPT 页数:47 大小:3.35MB
返回 下载 相关 举报
S3C2410的中断系统.ppt_第1页
第1页 / 共47页
S3C2410的中断系统.ppt_第2页
第2页 / 共47页
S3C2410的中断系统.ppt_第3页
第3页 / 共47页
点击查看更多>>
资源描述
第四章S3C2410的中断系统 应用科技学院张健 4 1S3C2410的中断源4 2S3C2410的中断处理4 3中断控制4 4子中断源的中断控制4 5中断向量设置4 6其它常用寄存器4 7中断程序编写中需注意问题4 8中断实验和中断程序编写 主要内容 中断概述 中断是指计算机在执行某一程序的过程中 由于计算机系统内 外的某种原因 而必须中止原程序的执行 转去执行相应的处理程序 待处理结束之后 再回来继续执行被中止的原程序的过程 采用了中断技术后的计算机 可以解决CPU与外设之间速度匹配的问题 使计算机可以及时处理系统中许多随机的参数和信息 同时 它也提高了计算机处理故障与应变的能力 定义当CPU在执行程序的过程中 外部事件向CPU发出信号 请求CPU迅速去处理 于是 CPU暂时中止执行当前程序 转去处理相应的事件 待处理完毕后 再继续执行原来被中止的程序 这样的过程称为 中断 中断系统主要用需要及时处理的高速随机事件或信号 对于那些看来非常重要的信号 诸如急停开关 限位开关 键盘等 其响应速度要求并不高 切不可滥用中断 为什么要用中断 a 中断可以解决快速的CPU与慢速的外设之间的矛盾 使CPU和外设同时工作 这样 CPU可启动多个外设同时工作 大大地提高了CPU的效率 b 在实时控制中 现场的各种参数 信息均随时间和现场而变化 这些外界变量可根据要求随时向CPU发出中断申请 请求CPU及时处理中断请求 如中断条件满足 CPU马上就会响应 进行相应的处理 从而实现实时处理 c 针对难以预料的情况或故障 如掉电 存储出错 运算溢出等 可通过中断系统由故障源向CPU发出中断请求 再由CPU转到相应的故障处理程序进行处理 4 1S3C2410的中断源 中断源是指在计算机系统中可以向CPU发出中断请求的来源 通常有I O设备 实时控制系统中的随机参数和信息故障源等 S3C2410有56个中断源 在56个中断源中 有32个中断源提供中断控制器 其中 外部中断EINT4 EINT7通过 或 的形式提供一个中断源送至中断控制器 EINT8 EINT23也通过 或 的形式提供一个中断源送至中断控制器 4 1S3C2410的中断源 EINT0 23nBATT FLTINT TICKINT WDTINT TIMER0 4INT UART0 2共9个INT LCDINT DMA0 3INT SDI INT SPI0 1INT USBDINT USBHINT IICINT RTCINT ADC 中断源之间的逻辑关系 4 2S3C2410的中断处理 S3C2410的中断控制可以处理56个中断源的中断请求 片内的中断 比如DMA UART和I2C等 处理器外部中断输入引脚 这些中断源中 有如下11个中断源通过分支中断控制器来申请使用中断 与其它中断共用一个中断向量 INT ADCA D转换中断 INT TC触摸屏中断 INT ERR2UART2收发错误中断 INT TXD2UART2发送中断 INT RXD2UART2接受中断 INT ERR1UART1收发错误中断 INT TXD1UART1发送中断 INT RXD1UART1接受中断 INT ERR0UART0收发错误中断 INT TXD0UART0发送中断 INT RXD0UART0接受中断 中断控制逻辑 interruptcontrollerlogic 的任务是在片内和外部中断源组成的多重中断发生时 选择其中一个中断 通过FIQ 快速中断请求 或IRQ 通用中断请求 向CPU内核发出中断请求 S3C2410的中断控制逻辑如图4 1所示 图4 1中中断源是指给出中断向量的那些中断 子中断源是指与其它中断共用一个中断向量的中断 例如UART0是一个中断源 而TXD0和RXD0就是子中断源 子中断源向CPU申请中断 子中断源挂起寄存器中相应位要置1 如果该子中断没被屏蔽 则该子中断源所归属的总中断源挂起寄存器中相应位也要置1 当多重中断源请求中断时 硬件优先级逻辑判断哪一个将被执行 同时 执行0 x18 IRQ 或者0 x1C FIQ 地址处的指令 然后再由软件识别各个中断源 并跳转到相应的中断处理程序处 中断控制 程序状态寄存器的F位和I位如果CPSR 程序状态寄存器 的F位被设置为1 那么CPU将不接受来自中断控制器的FIQ 快速中断请求 如果CPSR程序状态寄存器的I位被设置为1 那么CPU将不接受来自中断控制器的IRQ 通用中断请求 因此 为了使能FIQ和IRQ 必须先将CPSR程序状态寄存器的F位和I位清零 并且中断屏蔽寄存器INTMSK中相应的位也要清零 4 3中断控制 4 3 1中断模式 INTMOD 寄存器ARM920T提供了两种中断模式 即FIQ模式 快速模式 和IRQ模式 通用模式 所有的中断源在中断请求时都要确定使用那一种中断模式 中断模式控制寄存器设置如表4 2所示 因为复位时各位等于0 如果我们采用通用中断 中断模式寄存器可以不用设置 INTMOD 注意 在S3C2410中 只能有一个中断源在FIQ模式下处理 即INTMOD寄存器中只能有一位可以设置为1 FIQ中断不影响INTPND和INTOFFSET寄存器 4 3 2SRCPND中断源挂起寄存器 SRCPND中断请求寄存器当某个中断源请求中断服务时 SRCPND相应位置1 记录了哪个中断源的请求需要处理 SRCPND的每一位由中断源自动设置 不受INTMASK和优先级逻辑的影响 当多个中断源提出中断请求后 SRCPND相应位都置1 裁决逻辑选中优先级最高的中断请求将INTPND的相应为置1 在特定的中断处理程序中需要清除SRCPND相应位 以允许同一中断源的下一次请求 清除方法为写入1 从中断服务程序返回时 如果没有清除SRCPND相应位 中断控制器会误认为产生了新的中断请求 硬件置位 软件清除 SRCPND寄存器定义 4 3 2INTPND中断挂起寄存器 INTPND中断允许寄存器只有未被屏蔽 优先级最高 SRCPND中等待处理的中断请求可以将INTPND相应位置1 INTPND寄存器在任意时刻只能有一位可以设置为1 同时中断控制器产生IRQ信号给ARM920T内核 在中断服务程序中 设计者可以读取该寄存器获知是哪个中断源正被处理 INTPND寄存器由硬件置位 由用户在中断服务程序中清除 清除方法为写入1 4 3 3中断屏蔽寄存器 INTMSK 当INTMSK寄存器的屏蔽位为1时 对应的中断被禁止 当INTMSK寄存器的屏蔽位为0时 则相应的中断正常执行 如果一个中断的屏蔽位为1 则该中断请求不被受理 4 3 4PRIORITY PRIORITY中断优先级寄存器S3C2410共有56个中断源 有32个中断控制器 外部中断EXTIN8 23共用一个中断控制器 外部中断EXTIN4 7共用一个中断控制器 9个UART中断分成3组 共用3个中断控制器 ADC和触摸屏共用一个中断控制器 系统对中断优先级实行由中断优先寄存器 PRIORITY 和7个中断仲裁器组组成的两级控制 这7个中断仲裁器组由6个子中断仲裁器组 ARBITER0 ARBITER5 和一个主中断仲裁器组 ARBITER6 组成 每个中断仲裁器下面有4 6个中断源 这些中断源对应着REQ0 REQ5这6个优先级 当一个中断源向CPU申请中断时 它首先要在自己所在的子中断仲裁器组进行仲裁比较 如果此中断仲裁器组中没有和它同级别或高于它的中断源向CPU申请中断 则它进入主中断仲裁器组和其他组的优先中断源进行仲裁比较 决定能否向CPU申请中断 优先级寄存器设定 每个仲裁器的REQ0总是具有最高优先权 REQ5总是具有最低优先权 改变ARB SEL的2位值 可以循环REQ1 4的优先级 ARB MOD位决定仲裁器优先顺序是否循环 56个中断源中 实际上32个中断请求信号 7个优先级仲裁器 每个可确定6级中断优先级 4 4子中断源的中断控制 有一些中断源和其它中断共用一个中断向量 我们称它们为子中断源 S3C2410使用SUBSRCPND和INTSUBMSK来对它们进行中断控制和反馈工作状态 SUBSRCPND 子中断请求寄存器用于共用中断请求信号的中断源控制 该操作类似于SRCPND寄存器 INTSUBMASK 子中断屏蔽寄存器 4 5中断向量设置 一个中断源的中断向量就是该中断服务函数的入口地址 在S3C2410中 所有中断服务函数的入口地址都在2410addr h中定义成函数指针 我们在主程序中 只要把我们的中断服务函数的入口地址 函数名 赋给该指针即可 2410addr h中定义的函数指针形式为 pISR XXX pISR表示是中断服务函数的指针 后面XXX表示中断源名字 如 definepISR EINT0 unsigned ISR STARTADDRESS 0 x20 定义的是外部中断0的服务函数的指针 中断服务函数的名前加关键字 isr 表明此函数是中断服务函数 例如函数void irqUart0 TxInt void 是串行通信0通道发送中断服务函数 void irqUart0 RxIntOrErr void 是串行通信0通道接收字符和接收错误代码中断服务函数 做串行通信发送中断实验时 pISR UART0 unsigned Uart0 TxInt 做串行通信接收中断实验时 pISR UART0 unsigned Uart0 RxIntOrErr 中断服务函数声明时名前也要加关键字 isr 4 6其它常用寄存器 在S3C2410系统中 外部中断控制有 外部中断控制寄存器 EXTINTN0 EXTINTN2 外部中断屏蔽寄存器 EINTMASK 外部中断请求寄存器 EINTPEND EXTINTN 外部中断控制寄存器主要控制外部中断触发模式 触发模式可以有高电平 低电平 脉冲上升沿 脉冲下降沿和双沿5种方式 有EXTINTN0 2三个寄存器 EINTMASK 外部中断屏蔽寄存器控制外部中断的允许和禁止 EINTPEND 外部中断请求寄存器 表示当前正在响应的中断服务程序是外部中断中哪一个申请的 中断开关控制1 FIQ和IRQ总的中断是通过CPSR中F和I位来设置2 一级中断的开关通过INTMSK来控制3 外部中断子中断 EINT4 EINT5 EINT23 通过EINTMASK来设置 4 一般中断子中断 UART1 RXD INT TC INT AC97 INTSUBMSK中断判断寄存器1 一级中断 INTPND2 外部中断子中断 EINTPEND3 一般中断子中断 SUBSRCPND 4 7中断程序编写中需注意问题 1 中断初始花一般在系统复位后和中断程序执行结束 要对中断挂起寄存器初始花 可按如下方法进行 以免写入不正确数据引起错误 rSRCPND rSRCPND rINTPND rINTPND 2 头文件中挂起位 在头文件2410addr h中对中断挂起位和清中断挂起位进行了如下宏定义 我们在使用时只要用挂起位的名即可 defineBIT EINT0 0 x1 defineBIT EINT1 0 x1 1 defineBIT EINT2 0 x1 2 defineBIT EINT3 0 x1 3 defineBIT EINT4 7 0 x1 4 defineBIT EINT8 23 0 x1 5 defineBIT WDT 0 x1 9 defineBIT TIMER0 0 x1 10 defineBIT TIMER1 0 x1 11 defineBIT TIMER2 0 x1 12 defineBIT TIMER3 0 x1 13 defineBIT TIMER4 0 x1 14 defineBIT UART2 0 x1 15 defineBIT LCD 0 x1 16 defineBIT DMA0 0 x1 17 defineBIT DMA1 0 x1 18 defineBIT DMA2 0 x1 19 defineBIT DMA3 0 x1 20 defineBIT SDI 0 x1 21 defineBIT SPI0 0 x1 22 defineBIT UART1 0 x1 23 defineBIT USBD 0 x1 25 defineBIT USBH 0 x1 26 defineBIT IIC 0 x1 27 defineBIT UART0 0 x1 28 defineBIT SPI1 0 x1 29 defineBIT RTC 0 x1 30 defineBIT ADC 0 x1 31 defineBIT ALLMSK 0 xffffffff defineBIT SUB ALLMSK 0 x7ff defineBIT SUB ADC 0 x1 10 defineBIT SUB ERR2 0 x1 8 defineBIT SUB TXD2 0 x1 7 defineBIT SUB RXD2 0 x1 6 defineBIT SUB ERR1 0 x1 5 defineBIT SUB TXD1 0 x1 4 defineBIT SUB RXD1 0 x1 3 defineBIT SUB ERR0 0 x1 2 defineBIT SUB TXD0 0 x1 1 defineBIT SUB RXD0 0 x1 0 defineClearPending bit rSRCPND bit rINTPND bit rINTPND 4 8中断实验和中断程序编写 实验方式1 ADS1 2上进行软件模拟 学会C语言编程 2 实验室实验选择的是外部中断EINT0和EINT11 中断的产生分别来自按钮SB1202和SB1203 当按钮按下时 EINT0或EINTll与地连接 输入低电平 从而向CPU发出中断请求 当CPU受理中断后 进人相应的中断服务程序 通过超级终端的主窗口显示当前进入的中断号 S3C2410中断实验电路如图4 3所示 作业 P59页2 3 5 6
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!