关于CH32V307 mstatus寄存器
关于CSR寄存器中的mstatus寄存器,我们在使用的时候主要需要关注位3MIE位,位7MPIE位,位12:11MPP,位14:13FS,各个位解释如下:
位MIE:用于控制打开或者关闭全局中断
当该MIE域的值为1时,表示机器模式下所有的中断全局打开。
当该MIE域的值为0时,表示机器模式下所有的中断全局关闭。
位MPIE:MPIE域的值被更新为异常发生前MIE域的值。MPIE域的作用是在异常结束之后,能够使用MPIE的值恢复出异常发生之前的MIE值。
位MPP:MPP的值被更新为异常发生前的模式。MPP域的作用是在异常结束之后,能够使用MPP的值恢复出异常发生之前的工作模式。
位FS:FS 域用于描述和维护浮点单元状态,所以该域只有在含有硬件浮点功能的青稞 V4F 微处理器上才有意义。当其值为 0 时,表示浮点单元为关闭状态,且如果此时使用浮点指令,将触发异常;若其值为 1 或 2,当执行了浮点指令后,该域会被更新为 3。若用户在使用 V4F 微处理器时,不期望使用硬件浮点功能,可在机器模式下,手动清除该两位,以关闭硬件浮点并降低功耗。
针对CH32V103以及CH32V307等MCU用户模式以及机器模式下对mstatus状态寄存器的配置
CH32V103:
用户模式下:mstatus的值为0x88
机器模式下:mstatus的值为0x1888
CH32V307:
用户模式下:mstatus的值为0x6088
机器模式下:mstatus的值为0x7888