乘简 发表于 2026-5-28 10:03:40

请教在写自己IAP15W4K61S4升级程序时的一个问题

在IAP15W4K61S4的示例程序中,userisp程序,是没有用到任何中断的,所以里面有isr.asm能编译通过,但在我自己的工程中,因为我想在userisp中全能串口以中断方式接收数据,那么编译就报地址重叠错误了

那么问题来了,如何写代码,从而实现在userapp,与userisp中都能使用中断呢???

因为我想实现两套中断,如果是在userisp中运行的代码,那么跳转到0x203开始的中断向量表,如果是在userapp中运行,则跳转到0x1000开始的中断向量表。。。

Ayb_ice 发表于 2026-5-28 10:36:01

共用一个位变量,根据位变量决定跳转位置,此跳转代码都在BOOT中

Ayb_ice 发表于 2026-5-28 11:19:26

Ayb_ice 发表于 2026-5-28 10:36
共用一个位变量,根据位变量决定跳转位置,此跳转代码都在BOOT中

JNB,AJMP,LJMP3+2+3不是正好吗

Ayb_ice 发表于 2026-5-28 11:20:22

就算不够,你先跳转某个位置再判断也可以

Ayb_ice 发表于 2026-5-28 13:30:17

Ayb_ice 发表于 2026-5-28 11:20
就算不够,你先跳转某个位置再判断也可以

        JB g_bBootFlag,BOOT_INT
        LJMP        200BH        ;APP中断
BOOT_INT:
        AJMP        000BH        ;BOOT中断

乘简 发表于 2026-5-29 10:40:58

放出代码,,,

ISP_INT   EQU   0203H               ; ISP中断向量表地址
APP_INT   EQU   1000H               ; APP中断向量表地址
ISP_MODE    EQU   2FH.0                                ; 需要在C中写义变量unsigned char bdata isp_mode _at_ 0x2f;// 位变量

MAPISR      MACRO   ADDR
            CSEG    ATADDR
                        JB      ISP_MODE, $+5       ;isp_mode为1则跳转到app中断向量
                        AJMP    ISP_INT + ADDR
            LJMP        APP_INT + ADDR
            ENDM

            MAPISR0003H
            MAPISR000BH
            MAPISR0013H
            MAPISR001BH
            MAPISR0023H
            MAPISR002BH
            MAPISR0033H
            MAPISR003BH
            MAPISR0043H
            MAPISR004BH
            MAPISR0053H
            MAPISR005BH
            MAPISR0063H
            MAPISR006BH
            MAPISR0073H
            MAPISR007BH
            MAPISR0083H
            MAPISR008BH
            MAPISR0093H
            MAPISR009BH
            MAPISR00A3H
            MAPISR00ABH
            MAPISR00B3H
            MAPISR00BBH
            MAPISR00C3H
            MAPISR00CBH
            MAPISR00D3H
            MAPISR00DBH
            MAPISR00E3H
            MAPISR00EBH
            MAPISR00F3H
            MAPISR00FBH
            MAPISR0103H
            MAPISR010BH
            MAPISR0113H
            MAPISR011BH
            MAPISR0123H
            MAPISR012BH
            MAPISR0133H
            MAPISR013BH
            MAPISR0143H
            MAPISR014BH
            MAPISR0153H
            MAPISR015BH
            MAPISR0163H
            MAPISR016BH
            MAPISR0173H
            MAPISR017BH
            MAPISR0183H
            MAPISR018BH
            MAPISR0193H
            MAPISR019BH
            MAPISR01A3H
            MAPISR01ABH
            MAPISR01B3H
            MAPISR01BBH
            MAPISR01C3H
            MAPISR01CBH
            MAPISR01D3H
            MAPISR01DBH
            MAPISR01E3H
            MAPISR01EBH
            MAPISR01F3H
            MAPISR01FBH
            END

页: [1]
查看完整版本: 请教在写自己IAP15W4K61S4升级程序时的一个问题