ch573F如何开关全局中断

移植RT-Thread到ch573平台时出现了问题,对mstatus进行读取写入操作时触发了HardFault。指令为

rt_hw_interrupt_disable:

csrri a0,mstatus,8

ret

估计可能是无法寻址到这个寄存器,通过查看ch32v307——RTT成品移植,发现通过sm("csrrw %0, mstatus, %1":"=r"(value):"r"(0x7800));

进行的操作。又了解到各个不同的单片机的这个地址不一样,我没找到可以参考手册。请解答

asm("csrrw %0, mstatus, %1":"=r"(value):"r"(0x7800));缺了一个a


您好,开关总中断参考代码:

uint32_t irq_status;    //用于保留中断值


void FlashDisableAllirq()

{

    SYS_DisableAllIrq(&irq_status);

   return ;

}


void FlashEnableAllirq()

{

    SYS_RecoverIrq(irq_status);

    return ;

}



只有登录才能回复,可以选择微信账号登录