中断-CH32V103如何关闭全局中断

发布时间 2023-09-20 15:11:26作者: WCH_CH32

CH32V103相较于其他RISCV芯片,无法关闭全局中断。目前EVT源码工程中只预留了关闭单个线中断的函数,如下图所示:

实现CH32V103关闭全局中断的操作方式如下:

1、替换使用特定的起始文件和core_riscv.h文件,因博客无法上传附件,可在此链接下获取:https://www.wch.cn/bbs/thread-109625-1.html;

2、需关闭或者使能芯片的全局中断时,调用core_riscv.h中的__disable_irq()、__enable_irq()函数即可;

需要注意的是CH32V103 关闭总中断-需要在机器模式下操作 CSR 寄存器 mstate,故替换了上面的起始文件后,芯片会一直工作在机器模式下。

机器模式相较于正常的用户模式具有最高的权限,该模式下可以访问所有的控制和状态寄存器,同时也能访问所有的物理地址区域。而用户模式权限较低,只能访问限定的CSR寄存器。