RISC-V MCU移植RTOS系列教程(一)

ARM上移植实时操作系统大家可能比较熟悉,且例程较多,对于RISC-V内核的单片机,可能相对比较陌生。下面结合WCH沁恒微电子的赤菟V103(CH32V103)和赤菟V307(CH32V307)两款RISC-V内核芯片来详细说下针对RISC-V平台,移植实时操作系统的注意点。

之所以选择赤菟V103和赤菟V307两个芯片主要是其极具代表性:首先,直观上其外设的使用方法和我们之前熟悉的F103,F107等是兼容的,这样降低了我们使用和移植时的难度,基于WCH提供的外设库,我们以前上层的代码甚至于不用修改可直接使用。其次,赤菟V103是WCH RISC-V青稞内核家族中的青稞V3A内核,V307为青稞V4F内核,青稞V3内核支持RV32IMAC指令集,即除支持RISC-V基本的32位整数指令集外,还支持硬件乘除法,原子指令,压缩指令。青稞V4F在青稞V3A的基础上增加了单精度硬件浮点,并且其性能也比青稞V3A高。除此所有的青稞V4内核还支持自定义压缩指令-XW扩展,包括以下指令c.lbu/c.lhu/c.sb/c.sh/c.lbusp/c.lhusp/c.sbsp/c.shsp。

这里需要注意的是一般情况下,移植RTOS的时需要关闭硬件压栈,因为在切换任务时,我们希望自己控制出栈入栈的内容。但是针对青稞V4F核,CSR 0x804中有增加控制位(bit5)GIHWSTKNEN(全局中断和硬件压栈关闭使能),可以进中断时置位该位,关闭中断和硬件压栈,我们手动保存当前线程栈&#x

你可能感兴趣的:(RISC-V,MCU,单片机,risc-v,mcu,stm32)