SHPG 发表于 2022-6-23 12:26:01

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

求助: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中的中断向量跳转代码:
#defineNEW_RESET_VECTOR      0x0800
#defineNEW_INTERRUPT_VECTOR    0x0804
#define _str(x)#x
#define str(x)_str(x)
asm("psectintentry,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));   
页: [1]
查看完整版本: 求助:PIC16F15376的bootloader跳转App异常,谢谢!