如何屏蔽CH573的全局中断?

有个时序操作 不想被打断 想屏蔽中断不到1us 试了下面的代码 一调用就死机 请问正确的应该如何搞?


/*

 * uint32_t hw_interrupt_disable(void);

 */

    .globl hw_interrupt_disable

hw_interrupt_disable:

    csrrci a0, mstatus, 8

    ret


/*

 * void hw_interrupt_enable(uint32_t level);

 */

    .globl hw_interrupt_enable

hw_interrupt_enable:

    csrw mstatus, a0

    ret


用的时候是这个代码

void CS_CLK_CYCLE()

{

    uint32_t irq_reg = hw_interrupt_disable();

    CS_CLK_HIGH;

    CS_CLK_LOW;

    hw_interrupt_enable(irq_reg);

}


image.png
关闭你开启的中断即可,函数在riscv.h


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