问题遇到的现象和发生背景
RISC-V中想禁止与允许中断
问题相关代码,请勿粘贴截图
结果网上查到的结果是如下的内容
禁止中断
#define disable_irq() do {asm volatile ("csrr mstatus, 0x0");} while(0)
使能中断:
0x8表示mstatus的第3bit,即MIE字段,设置为1表示使能全局中断
#define enable_irq() do {asm volatile ("csrr mstatus, 0x8");} while(0)
这CSRR指令是什么?为什么不直接用CSRRSI或者CSRRCI进行位操作呢?