PowerPC的外部中断处理教案.pptx

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PowerPC的外部中断处理;异常 异常是e500mc核产生的,它是同步产生的(可以预知的),如非法指令,或访问存储器时出现TLB Miss等情况。 中断 中断是e500mc核外部引脚产生的中断,由PIC送进来的,它是异步产生的(无法预知的),主要有:int#, cint#, mcp# 。;MSR(Machine State Register)寄存器。用于设置e500mc的当前使用状态,初始化CPU时第一个设置的寄存器。CE(Critical Enable,第46位),ME(Machine Check Enable,第51位),DE(Debug Interrupt Enable,第54位)。用于使能和关闭Critical异常,Machine check异常和Debug异常。EE(External Enable,第48位)。为1时使能外部中断,为0时屏蔽外部中断。PR(第49位)。为0表示处理器在内核模式,为1表示处理器在用户模式。IS,DS(第58,59位)。e500mc支持两个地址空间——0和1。IS为0表示当前程序使用指令空间0,为1表示当前程序使用指令空间1;DS为0表示当前程序使用数据空间0,为1表示当前程序使用数据空间1。;中断向量是指中断或者异常程序的入口地址。一系列的中断向量号构成中断向量表。对于e500mc内核,中断处理程序的入口地址为虚拟地址。Linux PowerPC使用e500mc内核的地址空间0保存这些虚拟地址。这也是为什么要清除PR,IS,DS位的原因。 在e500mc内核中,使用IVPR和IVORx寄存器共同确定中断和异常程序的入口地址。 中断入口地址的计算方法: IVPR[32-47] || IVPORn[48-59] || 0b0000;e500mc内核的中断向量表 ;MSK: 若置1,此中断源的中断被无视. A: 若置1,此中断源有中断发生 P: 若置1, active-high; 若置0, active-low. S: 若置1,此中断是水平触发。若置0,此中断是边界触发 PRIORITY: 优先级0-15。15是最高优先级,0时相当于无视此中断。 VECTOR: 硬件中断号。中断发生后处于pengding时,此字段被写在IACK中。;CTPR(Processor Current Task Priority Register)寄存器。该寄存器存放当前CPU中运行任务的级别。;M位为0,表示当前中断控制器PIC被旁路,此时IRQ0引脚监测到的中断信息将直接送入到CPU。;该寄存器用来存放当前中断源的硬件中断号,是e500mc内核外部中断处理的一个重要寄存器。当处理器对此寄存器进行读操作时,将启动外部中断响应周期。;SRR0 (Save/Restore Register 0) 64 bit,用于异常发生时保存引起异常指令的地址(异常)或其下一条指令的地址(中断)。保存过程硬件自动做执行 rfi 从异常返回时,处理器会跳转到 SRR0 保存的地址处继续执行。 SRR1(Save/Restore Register 1) 32 bit,用于异常发生时硬件自动保存 MSR (Machine Status Register)。 执行 rfi 从异常返回时,处理器会将 SRR1 值恢复入 MSR。 EOI(End of Interrupt Register) 该寄存器只有“EOI CODE”字段有效,对此字段写入0b0000将结束当前中断的处理。;捕捉到外部中断信号#cint,#int。 保存被中断程序的返回地址到SRR0寄存器中。 保存MSR寄存器到SRR1中,如果是地址异常还会保存错误地址到DEAR寄存器中。 保留MSR寄存器中的CE,DE,ME位,其余全部清除。因此,e500mc在处理外部中断时,还可以被Critical中断,调试中断和Machine Check中断重入。 清除PR,IS,DS位。此时,处理器运行在内核模式。 根据IVPR和IVOR4寄存器获得中断向量,进行中断程序执行。 中断程序执行结束后,使用rfi指令返回。rfi指令从SRR1寄存器恢复MSR寄存器,从SRR0寄存器中获得中断的返回地址。;? 2011 虹信通信;处理器的内部或外部中断源有效时,会将相应的中断信号传递到中断控制器PIC中,此时,中断控制器PIC会进行以下操作。 处理器首先使用IPR寄存器暂存所有有效的内部及外部中断源。 随后中断控制器PIC会对暂存在IPR寄存器中的中断源进行处理,并将中断优先级别最高的中断源通过IS传递到IRR寄存器中。此时IRR寄存器保存这个优先级别最高的中断源的硬件中断号和中断优先级别。 如果在IRR寄存器中的存放中断源,其优先级高于CTPR和ISR寄存器中存

文档评论(0)

502992 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档