问答

汇集网友智慧,解决技术难题

21ic问答首页 - 求助:PIC16F15376的bootloader跳转App异常

求助:PIC16F15376的bootloader跳转App异常

eepo2022-06-23
本帖最后由 pzsh 于 2022-6-25 15:31 编辑

求助: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));   
回答 +关注 15
1349人浏览 5人回答问题 分享 举报
5 个回答

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