有对PICC比较有研究的朋友吗?偏移的功能程序中,如果中断服务函数中有if判断,则程序会跑

2020-02-10 08:50发布

最近在写boot,PIC16F886,分别将功能和引导分两个project编译,再手工将两个.hex合到一起。当然功能程序编译的时候会offset

调试过程中发现了一个问题,进入中断后,编译出的汇编代码会将PC的高位字节清零。如果中断函数中有if判断(PIC16系列只有一个中断向量,使用超过一种中断时,都要判断中断标志位,确定是何种中断),就会有汇编的goto语句,此时我的功能代码是offset之后的,goto之后就飞掉了(不偏移则不会飞掉)

很晕,不太理解PICC的这种行为,请教一下有经验的朋友
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
sbsyr
2020-02-10 17:35
pic16 系列的page和bank是一定要注意的,goto前设置一下到你的程序所在page. 返回是也是回到page0和bank0.至于为什么是这样,由当年的环境决定. pic24则没有这些问题.

一周热门 更多>