Chinaunix首页 | 论坛 | 博客
  • 博客访问: 807059
  • 博文数量: 321
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 936
  • 用 户 组: 普通用户
  • 注册时间: 2013-02-23 11:25
文章分类

全部博文(321)

文章存档

2017年(1)

2016年(10)

2015年(61)

2014年(187)

2013年(62)

分类: 嵌入式

2013-03-07 22:45:50

中断:

1.60个请求源;

快速中断只有一个,所以不存在优先级。

通过总裁机制决定后,会写入INTPND.


2.920t有两种中断模式:FIQIRQ,所有中断源在中断请求时决定使用 哪种类型;

3.两个中断挂起寄存器:源挂起寄存器(SRCPND,申请中断也要置一)和中断挂起寄存器(INTPND);=== (挂起寄存器都要写1清零)经过总裁,响应中断那位自动置一,若又要重新响应,则又要重新手动写1.SRCPNDINTPND两个都一样。若不写一清零的话,INTPND一直为1,则系统会一直认为有中断产生

4.INTMASK中断屏蔽位,要disable 0.,若MASK置一,则SRCPND会置一,但是INTMASK不能置一。

5.中断优先级可设置改变,手册P355,所有FIQ只能有一个。

6.开SUBSRCPND,要先开SRCPND

7.中断原理:如KEY属于外部中断,如有按键按下,则跳到中断向量表,0x000000018,这是由硬件部分决定中断向量表的。跟踪启动代码,入口地方安装中断向量表b HandlerIRQ,,该中断向量表要放在0x00.....地址中,使有异常的时候过来执行。跳到对应的宏。通过MACRO那段代码,可以使PC指向它HandlerIRQ执行它的内容,而HandleIRQ里面存放的内容是IsrIRQ。即跳到IsrIRQ,通过INTOFFSET(在手册查)可知道是哪个中断产生.R9即存放偏移地址,知道是要哪个中断来执行。因为我们pISR_EINT8_23 = (unsigned int)Eint11_19.R8是放中断处理函数入口地址,即Eint11_19.入口地址。使PCR8那边执行。所以有中断则跳到对应的中断处理函数执行。

阅读(2116) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~