单片机GD32F3X0 STM32的中断总开关汇编代码

 

__asm void disableAllInt(void)
{
    CPSID I
    BX    LR      
}

__asm void enableAllInt(void)
{
    CPSIE I
    BX    LR
}

 

__asm void MSR_MSP(uint32_t addr)
{
    MSR MSP, r0             //set Main Stack value
    BX r14
}


void iap_boot_loader(unsigned int addr)
{
    if(((*(volatile uint32_t *)addr) & 0x2ff00000) == 0x20000000)
    {
        disableINT();
        disableAllInt();
        jump2app = (iapfun)*(volatile uint32_t *)(addr + 4);
        MSR_MSP(*(volatile uint32_t *)addr);
        jump2app();
    }
}

 

 

 

在别人代码中看到,觉得需要记录一下。

 

posted on 2022-04-04 13:06  chaina_家长  阅读(606)  评论(0编辑  收藏  举报