注意,在 CLINT 内存映射中没有用于特定中断的启用位,因为这些中断的启用位于每个中断的 mie CSR 和 mstatus.mie CSR 位中,它全局启用所有机器中断. 相关寄存器 MSIP Registers 机器模式软件中断是通过写入内存映射控制寄存器 msip 来生成的。 msip 寄存器是一个 32 位宽的 WARL 寄存器,其中高 31 位绑定为 0。
首先,CLINT中包含每个核心的msip(Machine Software Interrupt Pending)寄存器;接着,发送核(即发起中断...
比如某家芯片设计公司设计的SOC芯片使用的是RISC-V CPU,他们设计的SOC IP中断请求信号(UART,IIC,SPI,TIMER等)只能连在PLIC或者CLIC上,而不能连在CLINT上, 因为CLINT是core上的中断控制器。 总结: 通常使用RISC-V CPU的芯片设计公司在设计中低端芯片时,会使用CLINT+CLIC搭配方式,等价于ARMcortex-M系列的NVIC;在...
MSIP表示m模式核间中断,此位只读,其状态反应的是CLINT中对应的核间中断设置寄存器最低位的状态,设置CLINT核间中断设置寄存器最低位为1则产生核间中断,置0则清除核间中断。 MTIP表示m模式定时中断,此位只读,其状态通过设置CLINT中对应的mtimecmp寄存器来清零。 MEIP表示m模式中断控制器中断,此位只读,其状态通过具...
基地址(CLINT_BASE): CLINT寄存器的基地址,通常定义为 0x2000000L。 MSIP 寄存器(Machine Software Interrupt Pending Registers): 每个硬件线程(hart)都有一个MSIP寄存器,用于触发软件中断。 地址从 CLINT_BASE 开始,每个寄存器占用4字节。 例如,MSIP[0] 的地址是 CLINT_BASE + 04,MSIP[1] 的地址是 CLINT_...
作为CLINT来说,软件中断只需要向CLINT的MSIP0或者SSIP0寄存器的最高位写1即可,处理完中断后,将其置为0,这样就能够清除掉软件中断的标志位。 定时器中断 作为riscv内核特有的中断,其用法就是往MTIMECMP或者STIMECMP中写特定的值,当mtime达到该值时产生中断,此时继续填写特定的tick就可以继续产生下个中断,反复如此,...
CLINT下只有3种寄存器 在SiFive U54-MC Core Complex中寄存器布局如下,每个hart一个msip,每个hart一个mtimecmp,各核共用一个mtime。 MSIP 通过写入内存映射控制寄存器msip而产生机器模式软件中断。msip寄存器是一个32位宽的WARL寄存器,其中LSB反映在mip寄存器的msip位中。msip寄存器中的其他位被硬连线为零。复位时...
位mip.MSIP 和mie.MSIE 是机器级软件中断的中断挂起和中断允许位。 MSIP 在mip中是只读的,通过访问内存映射控制寄存器写入,远程 harts 使用这些寄存器来提供 M-mode 处理器间中断。 hart 可以使用相同的内存映射控制寄存器写入自己的 MSIP 位。 如果实现了 S-mode,位mip.SEIP 和mie.SEIE 是 S-mode 外部中断...
This section describes the functionality of the memory-mapped registers in the CLINT. 本节描述了CLINT(Core Local Interruptor)中内存映射寄存器的功能。 9.6.1 MSIP Register Machine mode software interrupts are generated by writing to the memory-mapped control register msip. Each msip register is a...
5.14.3 CLINT模块生成计时器中断和软件中断 72 5.14.4 PLIC管理多个外部中断 73 第6章 开源蜂鸟E203 MCU SoC外设介绍 77 6.1 蜂鸟E203 MCU SoC外设总述 77 6.2 PLIC 78 6.3 CLINT 78 6.4 LCLKGEN 78 6.4.1 LCLKGEN简介 78 6.4.2 LCLKGEN寄存器列表 78 6.5 HCLKGEN 79 6.5.1 HCLKGEN简介 79 6.5.2 ...