异常,是e500核产生的,它是同步产生的(可以预知的),如非法指令,或访问存储器时出现TLB Miss等情况
中断,是e500核外部引脚产生的中断,由PIC送进来来的,它是异步产生的(无法预知的),
主要有:int#, cint#, mcp#
分别对应一般中断,critical中断和machine check中断。
下面是简图
讯享网
一、中断的开关
中断的开关由寄存器MSR来控制的
CE:if set 1,Critical input and watchdog timer interrupts are enabled.
EE:if set 1,External input, decrementer, fixed-interval timer and performance monitor interrupts are enabled
ME:if set 1, Machine check interrupts are enabled.
DE:if set 1,Debug interrputs are enabled if DBCR0[IDM] = 1.
MSR[EE] 这个bit很重要,中断的使能要靠它。
注意:当发生中断后,MSR[EE]会自动置0屏蔽所有其他的中。
如果在MSR[EE]置1前,又来了一个中断
1.此中断是 边沿触发 的,那么此中断丢失。此种中断就是电平变化,一次就没了
2.此中断时水平触发的,此中断不会丢失。此种中断的电平会一直active,直到硬件处理它
二、中断向量
每个中断都有自己的中断向量,通过它能计算出中断handler的指令地址。
指令地址的计算方法:
IVPR[32-47] || IVOR n [48-59] || 0b0000
这样就得到一个32个bit地址。
IVOR n 是一系列寄存器,有下面一张表:
有2个中断向量对程序员来说比较亲切:
一个是 IVOR4 用来处理外部中断和内部SOC中断
一个是 IVOR8 用来处理系统调用
随便找一个,比如IVOR10,在uboot下验证。查看uboot-1.1.4/cpu/mpc85xx/start.S
185 /* Setup interrupt vectors 设置IVPR寄存器*/
186 lis r1,TEXT_BASE@h
187 mtspr IVPR, r1
197 li r1,0x0500
198 mtspr IVOR4,r1 /* 4: External interrupt */
。。。省略
205 li r1,0x0900
206 mtspr IVOR8,r1 /* 8: System call */
207 /* 9: Auxiliary processor unavailable(unsupported) */
208 li r1,0x0a00
209 mtspr IVOR10,r1 /* 10: Decrementer */
。。。省略
看board/pq37pc/pq37pc_8560/config.mk 里有
TEXT_BASE = 0xFF
所以 IVPR = 0xFFF80000
IVOR10 = 0x00000a00
计算 IVPR[32-47] || IVPOR10[48-59] || 0b0000 得 0xFFF80a00
检查uboot的符号表文件System.map,验证一下
14 fff80900 t SystemCall
15 fff80970 t _back
16 fff809cc t _end_back
17 fff80a00 t Decrementer
18 fff80b00 t IntervalTimer
19 fff80c00 t WatchdogTimer
至于 Decrementer符号处调用那个函数,也是在uboot-1.1.4/cpu/mpc85xx/start.S文件里定义
572 STD_EXCEPTION(0x0a00, Decrementer, timer_interrupt)
573 STD_EXCEPTION(0x0b00, IntervalTimer, UnknownException)
574 STD_EXCEPTION(0x0c00, WatchdogTimer, WatchdogHandle)
STD_EXCEPTION宏 和 CRIT_EXCEPTION宏 具体咋操作,待看.....
在include/ppc_asm.tmpl 中定义 #define STD_EXCEPTION(n, label, hdlr) \
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/54003.html