打印

PIC18的bootloader引导APP正常,但可能跑飞?

[复制链接]
1592|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
beijk|  楼主 | 2023-6-16 12:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
硬件:        单片机:PIC18F25K80
情况:
        1. bootloader单独跑没有问题;APP单独跑也没问题。
        2. 将bootloader的hex文件,loadables到app工程,并将app的cod offset为0x0C00,成功进入app模式。
问题:
        由bootloader引导app模式,存在程序跑飞的情况(中断已不响应)。有时候能正常运行半小时,有时仅能正常运行几十秒。

bootloader部分代码:
unsigned char isBootloader __at(0x00AA);
// Bootloader中的中断
void interrupt low_priority  InterruptISR_Low(void)
{
    if(0 == isBootloader)
    {
        asm ("pagesel  " str (APP_LOW_VECTOR));
        asm ("goto   " str (APP_LOW_VECTOR));
    }
    else
        lowPriorityISR();
}

void main()
{
        ...初始化
        if(0 == isBootloader)
         {
                STKPTR = 0x00; // 清除 返回堆栈指针
                BSR = 0x00;
                asm ("pagesel " str(APP_RESET_VECTOR));
                asm ("goto " str(APP_RESET_VECTOR));
        }
        ...
}



使用特权

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

本版积分规则

7

主题

18

帖子

1

粉丝