本帖最后由 XIVN1987 于 2024-4-16 13:45 编辑
之前一直以为 mstatus.MIE 可以用作中断的全局总开关,,仔细看了 spec 才发现并不能
根据下面这说法,,如果程序正在用户模式执行,,然后来了中断,,即使 mstatus.MIE == 0,也会切换到机器模式去执行中断处理函数。。
所以 RISC-V spec 里面并没有一个全局关闭中断的方法,,
下面这段也来自 spec,,描述更加清晰
虽然 spec 是这样规定的,,但是可能很多 RSIC-V MCU 设计中会直接用 mstatus.MIE 作为中断全局总开关,,这虽然没有严格遵守 spec,,但也不影响 MCU 的正常功能
|