4382|3

68

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教各位版主和高手:中断的现场保护和恢复现场 [复制链接]

我得程序在进中断和出中断时利用堆栈进行现场保护和回复现场上,可是如果我加了这两部分,程序不能进入中断或只能进一次中断,而且在中断返回时程序会跑飞,如果不加入这两部分,程序运行的很顺畅,我觉的问题在我的堆栈上面,请教各位老师和高手帮我分析一下原因好么?我应该从哪里检查程序呢?谢谢各位!

最新回复

如果进行现场保护,应该是把数据压入堆栈,为什么要采用出栈的POPD*+呢? 恢复现场也是,应该是把堆栈的数据弹回原来的寄存器,按理说应该是用出栈指令,怎么反而用了进栈的PSHD*呢?麻烦您赐教!谢谢!  详情 回复 发表于 2007-9-12 00:04
点赞 关注

回复
举报

195

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
在我的程序里只有堆栈用到了AR7,其它的地方都没有用,怎么会产生冲突呢?我用ST1,ST0试了一下,发现在保护现场时,ST1和ST0的值都能存入堆栈,但是在返回的时候就出现错误
另外我还有各问题,在保护现场和恢复现场中分别有
GISR3:                                               
                                                                        MAR      *,AR6
                POPD    *+
                                ………………
TIME2_ISR:              ………………
                          ………………
       
GISR3_EXIT:
                mar         *,AR6
                                ……………………
                             PSHD *                                       
                CLRC INTM                       
                RET

POPD *+和PSHD*,这两句话我一直不明白是什么意思,是做什么用的,请一起指教一下好么?谢谢啦!
 
 
 

回复

92

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
8个AR是不是也应该保存呢?
另外我在很多保护现场和回复现场中看到,在保护现场中用POPD *+,在恢复现场中用到PSHD *,我一直都没有弄明白这两句到底是什么意思呢?
 
 
 

回复

56

帖子

3

TA的资源

一粒金砂(初级)

4
 
如果进行现场保护,应该是把数据压入堆栈,为什么要采用出栈的POPD*+呢?
恢复现场也是,应该是把堆栈的数据弹回原来的寄存器,按理说应该是用出栈指令,怎么反而用了进栈的PSHD*呢?麻烦您赐教!谢谢!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表