在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 9628|回复: 11

MIPS中怎样保存中断状态?

[复制链接]
发表于 2007-7-19 01:22:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
文档中说,MIPS中当有外部中断发生时,中断状态会保存在Cause寄存器的IP[5:2]中。
但中断持续时间通常很短, 比如说一个时钟周期,那么,IP[7:2]中的对应值 也是持续一个时钟周期么?
如果只持续一个时钟周期,中断处理程序启动后IP[7:2]已经为0,无法查询是那个引脚触发中断。
如果IP[7:2]在中断触发后保持,那么什么时候清除这些触发位呢?IP[7:2]在文档中说是为只读寄存器位,软件无法写入。
发表于 2007-8-9 11:00:08 | 显示全部楼层
我记不太清楚了,粗略回答一下,希望有帮助。
中断信号应该一直维持有效,直到中断服务程序主动去清楚中断源,这样IP值就变为0了。
发表于 2008-6-7 17:12:45 | 显示全部楼层
我觉得也应该是中断处理程序退出前将对应的标志位清除吧
发表于 2008-6-18 06:48:59 | 显示全部楼层
shuo de taihao le
发表于 2009-8-30 14:26:43 | 显示全部楼层
但是有中断嵌套怎么办呢?
如果cause寄存器为只读的,那么如何保持原来的中断源呢?
发表于 2009-9-3 19:31:41 | 显示全部楼层
支持
顶一下
很有用
发表于 2009-9-11 11:57:40 | 显示全部楼层
同问,谢谢
发表于 2010-1-27 19:58:48 | 显示全部楼层
你看看MIPS资料就知道了。MIPS中端都保存在存储器中
发表于 2010-1-29 11:23:14 | 显示全部楼层
文档中说,MIPS中当有外部中断发生时,中断状态会保存在Cause寄存器的IP[5:2]中。
但中断持续时间通常很短, 比如说一个时钟周期,那么,IP[7:2]中的对应值 也是持续一个时钟周期么?
如果只持续一个时钟周期,中断处理程序启动后IP[7:2]已经为0,无法查询是那个引脚触发中断。
如果IP[7:2]在中断触发后保持,那么什么时候清除这些触发位呢?IP[7:2]在文档中说是为只读寄存器位,软件无法写入

MIPS的中断保存,我只知道在外部中断模式(EIC)情况下的流程:
中断控制器采样到中断请求之后,发出中断请求RIPL到MIPS(si_int是6bit的优先级0-63),MIPS将请求的优先级与Status寄存器中的IM[7:2](IPL)比较,如果RIPL>IPL,则MIPS响应新的中断请求,并自动将RIPL值保存到Cause寄存器中的IP[7:2]中,你需要自己用软件将这个值更新到Status寄存器的IM[7:2],用于后面的中断比较,并且保证Status寄存器中的IM[7:2]是当前正在执行的中断服务程序对应的优先级,否则,中断嵌套可能会发生错误。最后,中断处理完成,Cause寄存器IP[7:2]会继续保持它最后一次响应(ACK)的中断优先级值,你需要将Status寄存器中的IM[7:2]清0.
发表于 2010-4-10 19:56:12 | 显示全部楼层
先将cause寄存器的值保存到栈中,对每一个中断按优先级来处理
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-22 00:44 , Processed in 0.025179 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表