打印
[PIC®/AVR®/dsPIC®产品]

求助:PIC16F15376的bootloader跳转App异常,谢谢!

[复制链接]
881|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
eepo|  楼主 | 2022-6-23 12:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 pzsh 于 2022-6-25 15:30 编辑

求助:PIC16F15376的bootloader跳转App异常,谢谢!
情况描述:
开发环境:MPLAB X IDE 5.45.
bootloader的ROM空间0-0x7FF。
App的ROM空间0x800-0x3FFF。
App单独运行不加offset时正常。

bootloader+App,bootloader结束可以正常跳转App,但是App运行到"使能中断",程序就复位了。
如果App中不使能中断,App程序可以持续运行。


下面是bootloader中的中断向量跳转代码:
#define  NEW_RESET_VECTOR        0x0800
#define  NEW_INTERRUPT_VECTOR    0x0804
#define _str(x)  #x
#define str(x)  _str(x)
asm("psect  intentry,global,class=CODE,delta=2");
asm("pagesel " str(NEW_INTERRUPT_VECTOR));
asm("GOTO " str(NEW_INTERRUPT_VECTOR));


下面是bootloader运行结束跳转代码:
    STKPTR = 0x1F;
     BSR = 0;
     asm("pagesel " str(NEW_RESET_VECTOR));
     asm("goto  "  str(NEW_RESET_VECTOR));   

使用特权

评论回复
沙发
yiyigirl2014| | 2022-6-24 21:36 | 只看该作者
官方提供的有参考吧,看看。

使用特权

评论回复
板凳
pzsh| | 2022-6-25 15:29 | 只看该作者
记得这里有贴过很多bootlaoder的例子和教程

使用特权

评论回复
地板
eepo|  楼主 | 2022-6-28 09:10 | 只看该作者
谢谢楼上两位的回复,问题解决了,和XC8版本有关。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

8

帖子

0

粉丝