全部博文(1493)
分类: 嵌入式
2013-03-11 12:19:31
中断:
1.60个请求源;
快速中断只有一个,所以不存在优先级。
通过总裁机制决定后,会写入INTPND.
2.920t有两种中断模式:FIQ或IRQ,所有中断源在中断请求时决定使用 哪种类型;
3.两个中断挂起寄存器:源挂起寄存器(SRCPND,申请中断也要置一)和中断挂起寄存器(INTPND);=== (挂起寄存器都要写1清零)经过总裁,响应中断那位自动置一,若又要重新响应,则又要重新手动写1.,SRCPND和INTPND两个都一样。若不写一清零的话,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.入口地址。使PC去R8那边执行。所以有中断则跳到对应的中断处理函数执行。