疯狂的芯

  • 硬件
  • 软件
  • 随记
  • 折腾
  1. 首页
  2. 软件
  3. 正文

CH32V103无法进行全局中断控制的解决办法

2024年1月22日

CH32V103默认无法使用全局中断。需要替换core_riscv.h和startup_ch32v10x.S两个文件。

core_riscv.h文件位于工程目录的Core文件夹下。

startup_ch32v10x.S文件位于工程目录的Startup文件夹下。

core_riscv.h文件中修改的内容

core_riscv.h中新增了关于全局中断控制函数的定义,具体新增的代码片段如下:

RV_STATIC_INLINE void __enable_irq()
{
  __asm volatile ("csrw mstatus, %0" : : "r" (0x1888) );
}

RV_STATIC_INLINE void __disable_irq()
{
  __asm volatile ("csrw mstatus, %0" : : "r" (0x1800) );
}

startup_ch32v10x.S文件中修改的内容

startup_ch32v10x.S文件修改的内容主要是mstatus寄存器的赋值变化,原赋值为0x88,更改为0x1888。

原代码片段如下:

/* enable all interrupt */
li t0, 0x88
csrs mstatus, t0
la t0, _vector_base
ori t0, t0, 1
csrw mtvec, t0

修改后的代码片段如下:

/* enable all interrupt */
li t0, 0x1888
csrs mstatus, t0
la t0, _vector_base
ori t0, t0, 1
csrw mtvec, t0
标签: CH32V103 全局中断
最后更新:2024年1月22日

疯狂的芯

这个人很懒,什么都没留下

打赏 点赞
下一篇 >
最新 热点 随机
最新 热点 随机
高云FPGA开发软件资源利用率在哪看? 光耦APY215S输出端不闭合或者闭合后缓慢断开的原因 GJB1032A-2020《电子产品环境应力筛选方法》概述 TLFM20S-EVM开发板PS和PL联合开发且程序运行在DDR中的工程搭建 TLFM20S-EVM开发板PS和PL联合开发工程搭建 电阻的额定电压、最高电压、最大过载电压
TLFM20S-EVM开发板PS和PL联合开发且程序运行在DDR中的工程搭建GJB1032A-2020《电子产品环境应力筛选方法》概述光耦APY215S输出端不闭合或者闭合后缓慢断开的原因高云FPGA开发软件资源利用率在哪看?
CH32V103无法进行全局中断控制的解决办法 封装基本知识 Coding平台、TortoiseGit和Git三者搭配使用 TLFM20S-EVM开发板PS和PL联合开发且程序运行在DDR中的工程搭建 高云FPGA开发软件资源利用率在哪看? 月球摄影
标签聚合
电阻 GJB1032A-2020 最高电压 PS和PL联合开发 TLFM20S-EVM VIVADO PROCISE 最大过载电压

COPYRIGHT © 2025 疯狂的芯. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

苏ICP备14059515号