ARM中断及相关寄存器.doc_第1页
ARM中断及相关寄存器.doc_第2页
ARM中断及相关寄存器.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ARM中断及相关寄存器要正确应用ARM处理器必须首先对它的系统寄存器进行正确配置,下面简要介绍一下ARM寄存器,包括一些中断寄存器设置如中断状态(0x80000240,0x80001240,0x80002240)和中断屏蔽寄存器(0x80000280,0x80001280,0x80002280)。ARM中断寄存器主要包括:中断模式寄存器可以设置2个中断源为IRQ或FIQ方式。中断挂起寄存器,当有中断请求产生时,相应的位会被硬件置1,处于挂起状态。当进入中断处理程序时,必须通过软件清除这个标志位,以标志响应中断请求。中断屏蔽寄存器,当需要屏蔽某些中断源时,可以设置相对应的位。中断优先级寄存器可以设置21个中断源优先级的高低。中断偏移寄存器,中断响应时通过读这个寄存器可以查到当前的中断源。如表1所示是ARM的一些系统寄存器列表。表1 ARM系统寄存器列表系统寄存器中的每一位或几位都对应系统功能的控制、状态等信息。例如:SYSCON1中的UARTIEN、LCDEN位分别控制异步串口1与LCD显示的使能。SYSCON2中的SDRAMZ用来设置SDRAM存储器的位宽。SYSCON3中的CLKCTL用来在18MHz、37MHz、49MHz和74MHz中选择一种作为系统工作频率。与系统运行紧密相关的其他寄存器如表2所示,对它们进行正确设置,就可以启用SDRAM、LCD或者串行通信口。表2 ARM的其他重要寄存器列表数据手册上是这么说的:INTPND 寄存器中的26 个位对应着每一个中断源。当某个中断产生时,INTPND 中相应的pending 位就会置1,说明该中断还未被处理。中断服务程序中必须清除该pending 位,从而使系统能够及时响应下一次中断。INTPND 是一个只读寄存器,清除pending 位的方式是向I_ISPC/F_ISPC 的相应位写入“1”。在多个中断同时发生时,INTPND 将所有发生的中断pending 位都置1。虽然中断请求可以通过INTMSK 寄存器屏蔽,但是如果被屏蔽的中断发生了,INTPND 中的pending 位仍然会被置1。但是为什么三星的中断例子里面是这样:void _irq Eint4567Isr(void) which_int=rEXTINPND; rEXTINPND=0xf; /clear EXTINPND reg. rI_ISPC=BIT_EINT4567; /clear pending_bitvoid _irq Eint2Isr(void) rI_ISPC=BIT_EINT2; /clear pending_bit which_int=9;void _irq timer_Int(void)/clear pending_bit rI_ISPC=BIT_TIMER0; uart_printf(*);我觉得很奇怪,按照手册上说的应该为:void _irq timer_Int(void)/clear pending_bit rI_ISPC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论