打印

bootloader中断向量表怎么重映射

[复制链接]
2080|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
heweibig|  楼主 | 2021-9-11 21:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PIC24F的片子,在bootloader程序和app程序中都有中断,那在切换到app程序中时怎么重映射中断向量表呢

使用特权

评论回复
沙发
juventus9554| | 2021-9-11 21:20 | 只看该作者
可以先参考一下16bit的bootloader,使用MCC可以直接选择要REMAP的中断到Applicaiton。
https://www.microchip.com/SWLibraryWeb/product.aspx?product=16-bit-Bootloader

使用特权

评论回复
板凳
xxrs| | 2021-9-11 21:22 | 只看该作者
也可以参考AN1157
https://www.microchip.com/wwwAppNotes/AppNotes.aspx?appnote=en533906

使用特权

评论回复
地板
heweibig|  楼主 | 2021-9-11 21:23 | 只看该作者
你可以大概讲解一下app中断向量表跳转过程吗,看AN1157我的个人理解是,bootloader的gld文件中先写好bootloader和app的中断向量表,然后在app程序中调用中断时按地址调用,一种是按void __attribute__((__interrupt__,address(0x3000 + 0x0EC),__no_auto_psv__)) _USB1Interrupt(void)调用,另一种是按void __attribute__ ((address(0x3000 + 0x0EC))) ISRTable()进行跳转的。

使用特权

评论回复
5
huangchui| | 2021-9-11 21:25 | 只看该作者
简单的理解就是bootloader将自己的IRQ向量表中要转出去的IRQ,放一个GOTO xxx汇编指令,这个xxx就是Application IRQ的入口地址,所以Bootloader需要知道Application的IRQ表的地址(MCC支持图形化配置相关的地址),这个方法并不需要改gld文件,也是新的16bit bootloader的实现方式。当然如果MCU支持AIVT也可以用直接切中断向量表,这个在application中切就可以了(https://microchipdeveloper.com/faq:2702)

下面是讲解16bit interrupt的文档可以参考。
https://microchipdeveloper.com/16bit:exceptions
http://ww1.microchip.com/downloads/en/DeviceDoc/39707a.pdf

使用特权

评论回复
6
heweibig|  楼主 | 2021-9-11 21:27 | 只看该作者
我用过切换AIVT的方法 ,但是app的中断还是没起来

使用特权

评论回复
7
huangchui| | 2021-9-11 21:36 | 只看该作者
boot的主程序是这样的:

使用特权

评论回复
8
heweibig|  楼主 | 2021-9-11 21:38 | 只看该作者
int main(void)

{

    bool Init;

    INTCON2bits.ALTIVT = 1;

    SYSTEM_Initialize();

    if(_RB5 == 1)  //button press

    {

        INTCON2bits.ALTIVT = 0;

        __asm__("goto 0x3000");

    }

    Init = Initialize();



    while(1)

    {   

        if (Init)

        ProcessCommand();

        else

        {

        }

    }

    return 1;

}

使用特权

评论回复
9
heweibig|  楼主 | 2021-9-11 21:40 | 只看该作者
在我的boot程序里导入不带中断的app程序运行是正常的

使用特权

评论回复
10
heweibig|  楼主 | 2021-9-11 21:43 | 只看该作者
换了带中断的程序就不运行了

使用特权

评论回复
11
heweibig|  楼主 | 2021-9-11 21:46 | 只看该作者

唉,还是没有什么结果,算了,多谢大家啦

使用特权

评论回复
12
semonwong| | 2022-7-4 10:29 | 只看该作者
你好,有结果了吗??我现在也是这个问题

使用特权

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

本版积分规则

869

主题

13089

帖子

7

粉丝