微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > 请教各位版主和高手:中断的现场保护和恢复现场

请教各位版主和高手:中断的现场保护和恢复现场

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

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

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

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

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top