




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章S3C2410的中断系统 S3C2410的中断系统 S3C2410的处理器中断S3C2410的中断控制S3C2410的中断源S3C2410中断控制专用寄存器S3C2410中断控制程序编写步骤本章实验例程 S3C2410的中断系统 S3C2410的处理器中断S3C2410的中断控制逻辑如图 它可以处理56个中断源的中断请求 这些中断源可以是来自片内外设的中断 比如DMA UART和I2C等 也可以是来自处理器外部中断输入引脚 S3C2410的中断系统 S3C2410的处理器中断下面的11个中断源通过分支中断控制器来申请使用中断INT ADCA D转换中断 INT TC触摸屏中断 INT ERR2UART2收发错误中断 INT TXD2UART2发送中断 INT RXD2UART2接收中断 INT ERR1UART1收发错误中断 INT TXD1UART1发送中断 INT RXD1UART1接收中断 INT ERR0UART0收发错误中断 INT TXD0UART0发送中断 INT RXD0UART0接收中断 S3C2410的中断系统 S3C2410的处理器中断片内UARTn中断和EINTn是逻辑 或 的关系 它们共用一根中断请求线 中断控制逻辑 interruptioncontrollerlogic 的任务是在片内外围和外部中断源组成的多重中断发生时 选择其中一个中断 通过FIQ 快速请求中断 或IRQ 通用中断请求 向CPU内核发出中断请求 S3C2410的中断系统 S3C2410的处理器中断实际上最初CPU内核只有FIQ和IRQ两种中断 其他中断都是各个芯片厂家在设计芯片时 通过加入一个中断控制器来扩展定义的 这些中断根据中断优先级的高低来进行处理 更符合实际应用系统中要求提供多个中断源的要求 例如 如果定义所有的中断源为IRQ中断 通过中断模式寄存器设置 并且同时有10个中断发出请求 那么这时可以通过读中断优先级寄存器来确定哪一个中断被优先执行 S3C2410的中断系统 S3C2410的处理器中断当多重中断源请求中断时 硬件优先级逻辑会判断哪一个中断将被执行 同时 硬件逻辑将会执行位于0 x18 或0 x1C 地址处的指令 再由软件编程识别各个中断源 然后再根据中断源跳转到相应的中断处理程序 S3C2410的中断系统 中断控制4 2 1程序状态寄存器的F位和I位4 2 2中断模式 INTMOD 4 2 3中断挂起寄存器 INTPND 和中断源挂起寄存器 SRCPND 4 2 4中断屏蔽寄存器 INTMSK 4 2 5中断优先寄存器 PRIORITY S3C2410的中断系统 4 2 1程序状态寄存器的F位和I位如果CPSR 程序状态寄存器 的F位被设置为1 那么CPU将不接受来自中断控制器的FIQ 快速中断请求 如果CPSR程序状态寄存器的I位被设置为1 那么CPU将不接受来自中断控制器的IRQ 通用中断请求 因此 为了使能FIQ和IRQ 必须先将CPSR程序状态寄存器的F位和I位清零 并且中断屏蔽寄存器INTMSK中相应的位也要清零 在使用C语言编写控制程序时 CPSR在程序中是不可见的 F位和I位清零可由中断屏蔽寄存器INTMSK中相应的位清零自动完成 S3C2410的中断系统 4 2 2中断模式 INTMOD S3C2410提供了两种中断模式 即FIQ 快速 模式和IRQ 通用 模式 所有的中断源在中断请求时都要确定使用那一种中断模式 INTMOD相应位为0 选通用中断模式 INTMOD相应位为1 选快速中断模式 上电或复位时INTMOD相应位为0 默认选通用中断模式 S3C2410的中断系统 4 2 3中断挂起寄存器 INTPND 和中断源挂起寄存器 SRCPND S3C2410有两个中断挂起寄存器 中断源挂起寄存器 SRCPND 和中断挂起寄存器 INTPND 这两个寄存器用于指示对应的中断源和中断是否被激活 当中断源请求中断时 SRCPND寄存器的相应位被置1 当中断被激活时 INTPND寄存器的相应位被置1 S3C2410的中断系统 4 2 3中断挂起寄存器 INTPND 和中断源挂起寄存器 SRCPND 如果屏蔽位被设置为1 则相应的SRCPND位会被置1 而INTPND寄存器不会有变化 如果INTPND被置位 只要标志I或标志F被清零 就会执行相应的中断服务子程序 在中断服务子程序中要先向SRCPND中的相应位写1来清除挂起状态 再用同样的方法来清除INTPND相应位的挂起状态 注意 可以通过INTPND INTPND来实现清零 以避免写入不正确的数据引起错误 S3C2410的中断系统 4 2 4中断屏蔽寄存器 INTMSK 当INTMSK寄存器的相应位 屏蔽位 为1时 对应的中断被禁止 当INTMSK寄存器的屏蔽位为0时 则相应的中断正常实行 如果一个中断的屏蔽位为1 则该中断请求不被受理 S3C2410的中断系统 4 2 5中断优先寄存器 PRIORITY 上面已介绍过 S3C2410共有56个中断源 有26个中断控制器 外部中断EXTIN8 23共用一个中断控制器 外部中断EXTIN4 7共用一个中断控制器 9个UART中断分成3组 共用3个中断控制器 ADC和触摸屏共用一个中断控制器 中断的优先级是由主组号和从ID号的级别控制 具体见表4 1 中断优先级设置模块如图4 2所示 S3C2410的中断系统 4 2 5中断优先寄存器 PRIORITY 从上图可以看出 中断优先级产生模块共有7个中断仲裁器 AIRBITER0 AIRBITER6 每个中断仲裁器是否使能由寄存器PRIORITY 6 0 决定 每个中断仲裁器下面有4 6个中断源 这些中断源对应着REQ0 REQ5这6个优先级 每个中断仲裁器可以控制6个中断请求的优先顺序 ARB MODE 仲裁器和中断请求的优先顺序如表4 1示 其中 REQ0中断优先级总是最高的 REQ5中断优先级总是最低的 S3C2410的中断系统 S3C2410的中断系统 S3C2410的中断系统 4 3S3C2410中断源表4 2所示为S3C2410的56个中断源 在56个中断源中 有30个中断源提供给中断控制器 其中 外部中断EINT4 EINT7通过 或 的形式提供一个中断源送至中断控制器 EINT8 EINT23也通过 或 的形式提供一个中断源送至中断控制器 S3C2410的中断系统 4 3S3C2410中56个中断源具体来说 EINT0 EINT23 24个 nBATT FLT 1个 INT TICK 1个 INT WDT 1个 INT TIMER0 INT TIMER4 5个 INT UART0 INT UART2 各3个 共9个 INT LCD 2个 INT DMA0 INT DMA3 4个 INT SDI 1个 INT SPI0 INT SPI1 2个 INT USBD 1个 INT USBH 1个 INT IIC 1个 INT RTC 1个 INT ADC 2个 共56个 S3C2410的中断系统 4 4中断控制专用寄存器在4 2节中已介绍中断控制器有5个 但S3C2410有8个寄存器与中断有关 有5个专用于中断控制 源挂起寄存器 SRCPND 中断模式寄存器 INTMOD 中断屏蔽寄存器 INTMSK 中断优先权寄存器 PRIORITY 和中断挂起寄存器 INTPND 与中断有关的寄存器如表4 3所列 中断源发出的中断请求首先被寄存在中断源挂起寄存器 SRCPND 中 中断模式寄存器INTMOD把中断请求分为两组 快速中断请求 FIQ 和通用中断请求 IRQ 中断优先权寄存器 PRIORITY 处理中断的优先级 S3C2410的中断系统 4 4 1IRQ偏移寄存器 INTOFFSET 除上面介绍的5个中断控制寄存器以外 还有几个寄存器与中断控制有关 中断偏移寄存器INTOFFSET给出IRQ模式的中断请求中被响应的中断的地址 哪个IRQ模式的中断请求被响应 S3C2410的中断系统 4 4 2外部中断控制寄存器 EXTINTn EXTINTn配置外部中断的触发类型是电平触发还是边沿触发以及触发的极性 EXTINT 2 0 的具体配置参考数据手册 S3C2410的中断系统 4 4 3外部中断屏蔽寄存器 EINTMASK EINTMASK 23 4 分别对应外部中断23 4 该位等于1 对应外部中断被屏蔽 该位等于0 对应外部中断被使能 EINTMASK 3 0 保留 S3C2410的中断系统 4 5中断控制程序编写步骤4 5 1主程序工作4 5 2中断服务程序工作4 5 3中断服务程序示例 S3C2410的中断系统 4 5 1主程序工作先清除中断源挂起寄存器 SRCPND 和中断挂起寄存器 INTPND 可用rSRCPND rSRCPND和rINTPND rINTPND来完成 设中断模式 这里使用通用中断 rINTMOD 0 x00000000 因上电或复位时rINTMOD是清0的 这步也可以不做 S3C2410的中断系统 4 5 1主程序工作I O口初始化 有些中断源要通过I O口向CPU申请中断 如外部中断0 EXTINT0 通过F口的GPF0 外部中断11 EXTINT11 通过G口的GPG3向CPU申请中断 此时两个口的控制寄存器GPFCON和GPGCON的要设置成 GPFCON 1 0 1 0 GPGCON 7 6 1 0 具体见下章I O口介绍 设中断服务函数地址 S3C2410在2410addr h中定义了40个宏 设置了系统支持的中断服务函数的指针 设中断服务函数地址就是把我们编写的中断服务函数的地址 就是中断服务函数的名字 赋予相应的函数指针 函数指针定义如下 见课本 S3C2410的中断系统 4 5 1主程序工作从上面可以看出 每个中断源的中断服务函数指针名是固定的 pISR 中断源 设中断触发方式 触发方式有5种 有上升沿 下降沿 双沿 低电平 高电平触发方式 外部中断触发方式在外部中断控制寄存器 EXTINTn 中设定 如EINT0触发方式在EXTINT0 2 0 中设定 2 0 000低电平 001高电平 01X下降沿 10X上升沿 11X双沿触发 更详细内容见S3C2410 pdf 取消总中断屏蔽和子中断屏蔽 等待中断 如下面实验例程通过rEINTMASK 1 11 rINTMASK BIT EINT0 BIT EINT8 23 来实现 S3C2410的中断系统 4 5 2中断服务程序工作在中断服务程序中 先屏蔽中断 防止其他中断产生干扰我们中断服务程序的执行 执行中断服务程序 清中断源挂起寄存器 SRCPND 和中断挂起寄存器 INTPND 取消总中断屏蔽和子中断屏蔽 等待新中断产生 中断返回 S3C2410的中断系统 4 5 3中断服务程序示例在主程序中 系统初始化后 程序进入死循环 等待中断 同时 初始化定时器1 设定时器中断时间 当设定时器定时时间到 产生中断 在北京精仪达盛科技公司EL ARM830教学实验系统中 接有两个LED发光管 两个LED发光管的阴极分别接I O口G的bit8和bit9 阳极通过电阻接电源 在中断服务程序中 把LED1和LED2两只发光管循环亮灭 每循环亮灭一次 说明来一次中断 关于定时器操作 可参考第十一章内容 程序见课本 S3C2410的中断系统 第四章习题与练习1 S3C2410的中断模式有哪两种 2 S3C2410的中断控制寄存器有几个 每个的作用是什么 3 S3C24
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版房地产开发合同协议书格式(住宅商业)
- 二零二五年度新能源汽车充电设施建设与供货合同
- 二零二五年度智能家居二手房交易全流程中介服务合同
- 二零二五年度快递配送与快递代收服务合同模板
- 2025年度国家安全保密协议示范
- 2025版剧场演出场地租赁合同范本(含售后服务)
- 2025年度招投标与合同管理信息化平台建设及运维服务合同
- 2025年度别墅置换更名协议书模板
- 二零二五年度医疗设备安装工程合同范本
- 二零二五年金融债券抵押权登记与转让协议
- 2025新村级后备干部考试题库(附含答案)
- 2025夏秋贵州省旅游产业发展集团有限公司员工招聘115人笔试历年参考题库附带答案详解
- 人员车辆进出管理办法
- 保险营销费用管理办法
- etc客服电话管理办法
- 2025年广东省深圳市中考历史试卷(含解析)
- 氧气吸入操作技术课件
- 系统思维培训
- 数据安全意识培训
- 海关政策培训课件
- 家庭教育对孩子心理健康的影响论文
评论
0/150
提交评论