- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
                        查看更多
                        
                    
                嵌入式-中断实验
                    实验五 中断控制实验
实验目的
了解中断的作用;
掌握嵌入式系统中断的处理流程;
掌握ARM中断编程。
实验设备
计算机;ARM硬件仿真器;ARM开发板
实验硬件设置
在做实验之前,先将开发板电源接好,将仿真器的USB连线与电脑相连,通电,然后按核心板的复位键。
实验原理
1. 中断的基本概念
	CPU与外设之间传输数据的控制方式通常有三种:查询方式、中断方式和DMA方式。DMA方式将在后续实验中说明。查询方式的优点是硬件开销小,使用起来比较简单。但在此方式下,CPU要不断地查询外设的状态,当外设未准备好时,CPU就只能循环等待,不能执行其它程序,这样就浪费了CPU的大量时间,降低了CPU的利用率。为了解决这个矛盾,通常采用中断传送方式:即当CPU进行主程序操作时,外设的数据已存入输入端口的数据寄存器;或端口的数据输出寄存器已空,由外设通过接口电路向CPU发出中断请求信号,CPU在满足一定的条件下,暂停执行当前正在执行的主程序,转入执行相应能够进行输入/输出操作的子程序,待输入/输出操作执行完毕之后CPU再返回并继续执行原来被中断的主程序。这样CPU就避免了把大量时间耗费在等待、查询状态信号的操作上,使其工作效率得以大大地提高。能够向CPU发出中断请求的设备或事件称为中断源。系统引入中断机制后,CPU与外设(甚至多个外设)处于“并行”工作状态,便于实现信息的实时处理和系统的故障处理。中断方式的原理示意图如下所示。
 
图5-7 中断处理示意图
1) 中断响应
中断源向CPU发出中断请求,若优先级别最高,CPU在满足一定的条件下,可以中断当前程序的运行,保护好被中断的主程序的断点及现场信息。然后,根据中断源提供的信息,找到中断服务子程序的入口地址,转去执行新的程序段,这就是中断响应。
CPU响应中断是有条件的,如内部允许中断、中断未被屏蔽、当前指令执行完等。
2) 中断服务子程序
CPU响应中断以后,就会中止当前的程序,转去执行一个中断服务子程序,以完成为相应设备的服务。中断服务子程序的一般结构如下图所示。
 
图5-8 中断服务子程序处理流程
▼ 保护现场(由一系列的压栈指令完成)。目的是为了保护那些与主程序中有冲突的寄存器,(如R0,R1,R2等),如果中断服务子程序中所使用的寄存器与主程序中所使用的寄存器等没有冲突的话,这一步骤可以省略。
▼ 中断处理,中断处理程序在检查到相应的中断源后,调用对应的中断处理程序完成。
▼ 恢复现场并返回(由一系列的出栈指令完成)。是与保护现场对应的,但要注意数据恢复的次序,以免混乱。
由于中断服务子程序需要打断主程序的执行,因此其处理应该及时完成,较长时间的延时将导致系统性能严重下降。
实验关键代码及使用的寄存器
S3C44B0X的中断控制器包括5类寄存器:中断控制寄存器、中断状态寄存器、中断模式寄存器、中断屏蔽寄存器和中断清除寄存器。
1) 中断控制寄存器
该控制寄存器是处理器总的中断控制,包括中断模式是矢量模式还是非矢量模式,是否使能IRQ模式的中断,是否使能FIQ模式的中断,具体说明如下:
表5-3 中断控制寄存器
寄 存 器 名 称	地      址	读  写  状  态	描        述	复  位  值		INTCON	0x01E00000	R/W	中断控制寄存器	0x7		
INTCON	位	描                          述	初 始 状 态		保留	3	0	0		V	2	IRQ禁止/使能向量模式
0:向量中断模式               1:非向量中断模式	1		I	1	使能CPU的IRQ中断,在使用IRQ中断之前,必须清除该位
0:IRQ中断使能               1:IRQ中断禁止	1		F	0	使能CPU的FIQ中断,在使用FIQ中断之前,必须清除该位
0:FIQ中断使能               1:FIQ中断禁止	1		
2) 中断状态寄存器
该寄存器用于检查中断来源,该寄存器是只读属性的。
表5-4 中断状态寄存器
寄 存 器 名 称	地       址	读  写  状  态	描       述	复  位  值		INTPND	0x01E00004	R	指示中断请求状态
0:中断已被响应
1:有中断请求	0x0		3) 中断模式寄存器
用于设置相应中断的工作模式,是IRQ模式还是FIQ模式。
表5-5 中断模式寄存器
寄 存 器 名 称	地       址	读  写  状  态	描       述	复  位  值		INTMOD	0x01E00008	R/W	中断模式寄存器
0:IRQ模式
1:FIQ模式	0x0		4) 中断屏蔽寄存器
表5-6 中断屏蔽寄存器
寄 存 器 名 称	地       址	读  写  状  态
                 原创力文档
原创力文档 
                         
                                    

文档评论(0)