- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
05实验五ARM的中断实验
实验五 ARM的中断实验
一、实验目的
掌握ARM7的中断原理,能够对S3C44B0X的中断资源及其相关中断寄存器的进行合理配置
2. 掌握对S3C44B0X的中断的编程的方法
二、实验设备
1. EL-ARM-830教学实验箱,PentiumII以上的PC机,仿真器电缆。
PC操作系统WIN98或WIN2000或WINXP,ARM SDT2.5或ADS1.2集成开发环境,
仿真器驱动程序
3. 本实验使用实验教学系统的CPU板,在进行本实验时,LCD电源开关、音频的左右声道开关、AD通道选择开关、触摸屏中断选择开关等均应处在关闭状态。
三、ARM的中断原理
在ARM中,有两类中断,一类是IRQ,一类是FIQ,IRQ是普通中断,FIQ是快速中断,在进行大批量的复制、数据转移等工作时,常使用此类中断。FIQ的优先级高于IRQ。同时,它们都属于ARM的异常模式,当一旦有中断发生,不管是外部中断,还是内部中断,正在执行的程序都会停下,PC指针进而跳入异常向量的地址处,若是IRQ中断,则PC指针跳到0x18处,若是FIQ中断,则跳到0x1C处。异常向量地址处,一般存有中断服务子程序的地址,所以,接下来PC指针跳入中断服务子程序中。当完成中断服务子程序后,PC指针会返回到被打断的程序的下一条地址处,继续执行程序。这就是ARM中断操作的基本原理。
但是,通常由于生产ARM处理器的各厂家都集成了很多中断请求源,比如,串口中断、AD中断、外部中断、定时器中断、DMA中断等等,所以,很多中断可能同时请求中断,因此,为区分它们,更准确的完成任务,这些中断都有相应的优先级别,以及当发生中断时,它们都有相应的中断标志位,通过在发生中断是判断中断优先级,和访问中断标志位的状态来识别到底哪一个中断发生了。
在各厂家生产的ARM处理器中,一般在IRQ中断中,又可通过专门的寄存器配置为两类中断,一类是非向量中断,一类是向量中断。所谓非向量中断,就是当中断发生时,PC指针跳到0x18处,一般在IRQ的异常向量地址0x18处,不会直接放中断子程序的地址,而是放一个地址标号,即让PC指针跳到那个地址标号处,在地址标号处,罗列着判断各个中断标志寄存器中相应位的程序,以及若判断出该位置位,即发生相应中断,就跳入相应的中断服务子程序中的程序。所谓向量中断,就是ARM处理器生产商,把串口中断、AD中断、外部中断、定时器中断、DMA中断等等中断的向量地址固定,一旦发生中断,PC跳到0x18处,然后,芯片确定出是什么中断(同时发生中断时,通过优先级判断),PC指针就直接跳入该中断的向量地址,该向量地址中存放着各自中断服务程序的地址,因此,PC指针就会直接跳入中断服务子程序中。这样就避免了通过软件判断所带来的中断延时。三星的44B0就可实现这两种IRQ中断的配置。
四、三星的44B0 ARM处理器的中断的使用
首先,ARM7TDMI CPU 的CPSR寄存器中的F位为1,则CPU不会响应中断控制器的FIQ中断,同样,ARM7TDMI CPU 的CPSR寄存器中的I位为1,则CPU也不会响应中断控制器的IRQ中断,为使CPU响应中断,须在启动代码中将其设为0,以及使INTMSK寄存器中的相应位置0。
S3C44B0X共有30个中断源,有26个中断控制器,4个外部中断(EXTIN4,EXTIN5,EXTIN6,EXTIN7)共用一个中断控制器,两个UART错误中断(UERROR0/1)共用一个中断控制器,见表1。
中断的优先级是由主组号和从ID号的级别控制的。
sGA,sGB,sGC和sGD的优先级别高于sGKA和sGKB的优先级别。sGA,sGB,sGC和sGD可以编程确定中断的优先级,sGKA总是高于sGKB的优先级。mGA,mGB,mGC和mGD可以编程确定中断的优先级,mGKA总是高于mGKB的优先级。INT_RTC 和INT_ADC中断源在26个中断源中优先级最低,并且INT_RTC的优先级高于INT_ADC的优先级。
要正确使用S3C44B0的中断控制器,必须设置如下的寄存器:
INTCON 0x01E00000 R/W 中断控制寄存器 INTPND 0x01E00004 R 中断挂起寄存器
INTMOD 0x01E00008 R/W 中断模式寄存器
INTMSK 0x01E0000C R/W 中断屏蔽寄存器
I_PSLV 0x01E00010 R/W 确定slave组的IRQ优先级 I_PMST 0x01E00014 R/W master寄存器的IRQ优先级 I_CSLV 0x01E00018 R 当前slave寄存器的IRQ优先级 I_CMST 0x01E0001C R
文档评论(0)