S3C44B0X 中断控制器功能及应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中断优先级
FIQ中断比IRQ中断有更高的优先级; 位于sGA,sGB,sGC,sGD的优先级总是高于位于 sGKA,sGKB的中断优先级; 在sGA,sGB,sGC,sGD之间的优先级高低是可编程的或 通过轮转方式来决定; 在sGKA和sGKB之间, sGKA总是拥有更高的优先级; mGA,mGB,mGC,mGD组中的优先级总是高于 mGKA和 mGKBmGKA和mGKB在所有中断源中优先级是最低的; mGA,mGB,mGC,mGD组中的优先级是可编程的或通过 轮转方式决定的; mGKA和mGKB之间, mGKA总是有更高的优先级。
IRQ FIQ S3c44b0x 中断控制器 30个中断源
中断控制器的功能
响应来自FIQ(快速中断请求)或IRQ(普通
中端请求)的中断,并请求内核对中端进行 处理;当有多个中断同时发生时,中断控制 器要决定首先处理哪一级中断。
S3C44B0X中断控制器
特点概述
支持30个中断源,包括8个外部中断源
地址:0x01E00014 优先级产生模块包括5个单元:1个主单元,4个辅单元; 主单元管理4个可编程优先级的辅单元和2个中断源。 辅单元优先级通过对I_PMST寄存器设置决定; 2个中断源INT_RTC和 INT_ADC在26个中断源中优先级最低。
2.辅单元优先级寄存器I_PSLV
地址:0x01E00010 每个辅单元管理6个中断源:4个可编程优先级中 断 源(sGn)优先级通过I_PSLV寄存器设定; 2个固定优先级中断源(Kn)在6个中断源中优先 级最低。
中断控制寄存器INTCON
地址:0x01E00000, 初值:0x7 选择中断的模式,IRQ及FIQ的使能设置
中断控制寄存器INTPND
地址:0x01E00004
某个中断发生时,INTPND中的相硬位置1; 清除INTPND的方式是向I_ISPC/F_ISPC的相 应位置1;
INTPND中的
处理器不接收来自FRQ的中断
为了使能中断机制,PSR的I或F位必需清 零,同时中断屏蔽寄存器(INTMSK)的相 应位也必须清零。
中断源
有26个中断源提供给中断控制器。 4个外部中断(EINT4/5/6/7)相或送中 断控制器。 2个UART错误中断(UERRO/1)相或送中 断控制器。 中断源的详细信息见下表。
除全局屏蔽位,其余26位依次对应着
每个中断源; 屏蔽位为0,则CPU将对中断请求响应; 全局屏蔽位置1,所有中断请求都不会 被响应。 INTMSK的位定义如下表:
INTMSK寄存器位定义
IRQ矢量模式寄存器
与IRQ矢量模式相关的寄存器如下表
1.主单元优先级寄存器I_PMST
pending位不能被INTMSK
屏蔽。 INTPND寄存器的位定义表如下:
INTPND寄存器位定义
中断模式寄存器INTMOD
地址:0x01E00008 相应位置1选FIQ模式,位清除选IRQ模
式。
具体位定义见下图
INTMOD寄存器位定义
中断屏蔽寄存器INTMSK
地址:0x01E0000C
FIQ必须尽快处理事情并离开这个模式;
IRQ可以被FIQ中断,但IRQ不能中断FIQ; 为使FIQ跟更快,FIQ模式具有更多的私有寄
存器。
PSR的F位和I位
PSR 指 ARM7TDMI处理器的程序状态寄 存器
PSR[7]:I=1,处理器不接收来自IRQ的中断; PSR[8]:F=1
3.当前辅单元中IRQ中断优先级寄存器 I_CSLV
地址:0x1E00018
I_CSLV表明辅单元中断源中当前的优先级状态
当前主单元中辅单元和IRQ中断源的优先 级寄存器 I_CMST
地址: 0x01E0001C
I_CMST表明当前主单元中辅单元和IRQ中断源的
优先级。
5. IRQ/FIQ中断挂起清零寄存器 I_ISPC/F_ISPC
第16小组 SA11011910 王涛 SA11011913 张海博
主要内容
S3C44B0X 中断概述 S3C44B0X 中断控制器 S3C44B0X 中断控制寄存器 S3C44B0X 中断控制器应用
S3C44B0X 的中断控制器概述
S3C44B0X中断源(30个):
1个看门狗定时器;6个定时器;6个UART; 8个外部中断EINT0-7;4个DMA; 2个RTC; 1个ADC; 1个IIC;1个SIO ARM7TDMI
地址:0x01E00024/0x01E0003C 主要作用:在某个中断结束时,通过
向I_ISPC/F_ISPC相应位写1来清除中 断挂起寄存器INTPND中的中断挂起位。
I_ISPC/F_ISPC的位定义
S3C44B0X 中断控制器应用
使用按钮SB2触发 EINT6,LED1亮, 同时8段数码管由0到 F显示1次,8段数码 管显示完后,LED1 熄灭。 使用按钮SB3触发 EINT7,LED2亮, 同时8段数码管由F到 0显示1次,8段数码 管显示完后,LED2 熄灭。
wenku.baidu.com
中断源矢量地址表
中断优先级模块
中断优先级模块
中断优先级产生模块包含5个单元,1个 主单元,4个辅助单元; 每个辅助单元有4个可编程的优先级源 (sGn)和2个固定的优先级源(sGKn); 2个固定的优先级源在6个中断源中优先 级是最低的。 主单元决定了4个辅单元和2个中断源 (INT_RTC、INT_ADC)之间的优先级排列;
中断控制器支持26个中断信号,其中外部中断4/5/6/7复用
到一个中断信号上(读EXTINTPND寄存器来判断)
每个中断信号处理均可独立设置成FIQ (快速中断请求)或者
IRQ (普通中断请求)模式
中断信号处理均可采用矢量处理方法或者非矢量处理方法 支持中断优先级排队
中断模式
ARM7TDMI有2种类型的中断模式: FIQ 和IRQ。 两种模式之间的区别:
中断源详细列表
中断源列表说明
EINT4、EINT5、EINT6、EINT7共用一个 中断请求源; 中断程序通过读寄存器EXTINTPND[3:0], 来区别4个中断源; 在中断处理程序结束时,EXTINTPND[3: 0]必须清除。
中断源矢量地址
30个中断源,26个中断矢量; EINT4/5/6/7 共用一个中断矢量地址; INT_UERR0/1共用一个中断矢量地址。 详细见下表。
中断的产生分别来自按钮SB2和SB3,当按 钮按下时,EXINT6或EXINT7和地连接,输 入低电平,从而向CPU发出中断请求。当 CPU接受中断后,进入相应的中断服务程序, 实现LED1或LED2的显示功能。 由于EXINT6和EXINT7是共用一个中断控制 器,所以在同一时间内CPU只能受理其中一 个中断,也就是说,当按钮SB2按下进入中 断后,再按SB3是没用的,CPU在处理完 EXINT6中断前是不会受理来自EXINT7的中 断。