ARM中断及相关寄存器

ARM中断及相关寄存器

ID:38363935

大小:164.50 KB

页数:3页

时间:2019-06-11

ARM中断及相关寄存器_第1页
ARM中断及相关寄存器_第2页
ARM中断及相关寄存器_第3页
资源描述:

《ARM中断及相关寄存器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、ARM中断及相关寄存器  要正确应用ARM处理器必须首先对它的系统寄存器进行正确配置,下面简要介绍一下ARM寄存器,包括一些中断寄存器设置如中断状态(0x8000.0240,0x8000.1240,0x8000.2240)和中断屏蔽寄存器(0x8000.0280,0x8000.1280,0x8000.2280)。  ARM中断寄存器主要包括:  ·中断模式寄存器可以设置2个中断源为IRQ或FIQ方式。  ·中断挂起寄存器,当有中断请求产生时,相应的位会被硬件置1,处于挂起状态。当进入中断处理程序时,必须通过软件清除这个标志位,以标志响应中断请求。  ·中断屏蔽寄存器,当需要屏蔽某些中断源时,

2、可以设置相对应的位。  ·中断优先级寄存器可以设置21个中断源优先级的高低。  ·中断偏移寄存器,中断响应时通过读这个寄存器可以查到当前的中断源。  如表1所示是ARM的一些系统寄存器列表。  表1ARM系统寄存器列表  系统寄存器中的每一位或几位都对应系统功能的控制、状态等信息。例如:  ·SYSCON1中的UARTIEN、LCDEN位分别控制异步串口1与LCD显示的使能。  ·SYSCON2中的SDRAMZ用来设置SDRAM存储器的位宽。  ·SYSCON3中的CLKCTL用来在18MHz、37MHz、49MHz和74MHz中选择一种作  为系统工作频率。  与系统运行紧密相关的其他寄存

3、器如表2所示,对它们进行正确设置,就可以启用  SDRAM、LCD或者串行通信口。  表2ARM的其他重要寄存器列表数据手册上是这么说的:INTPND寄存器中的26个位对应着每一个中断源。当某个中断产生时,INTPND中相应的pending位就会置1,说明该中断还未被处理。中断服务程序中必须清除该pending位,从而使系统能够及时响应下一次中断。INTPND是一个只读寄存器,清除pending位的方式是向I_ISPC/F_ISPC的相应位写入“1”。在多个中断同时发生时,INTPND将所有发生的中断pending位都置1。虽然中断请求可以通过INTMSK寄存器屏蔽,但是如果被屏蔽的中断发生

4、了,INTPND中的pending位仍然会被置1。但是为什么三星的中断例子里面是这样:void__irqEint4567Isr(void){  which_int=rEXTINPND;  rEXTINPND=0xf;//clearEXTINPNDreg.  rI_ISPC=BIT_EINT4567;//clearpending_bit}void__irqEint2Isr(void){  rI_ISPC=BIT_EINT2;//clearpending_bit  which_int=9;}void__irqtimer_Int(void){//clearpending_bit  rI_ISPC=

5、BIT_TIMER0;  uart_printf("*");}我觉得很奇怪,按照手册上说的应该为:void__irqtimer_Int(void){//clearpending_bit  rI_ISPC

6、=BIT_TIMER0;  uart_printf("*");}如果有几个中断发生,优先级高的直接赋值不是就把优先级低的中断给清除了吗?

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。