接着以WCH沁恒微电子的赤菟V103(CH32V103)和赤菟V307(CH32V307)两款RISC-V内核芯片来详细说下针对RISC-V平台,移植实时操作系统的注意点。
今天聊下移植RTOS时RISC-V内核时单片机任务栈保存哪些内容。
上一章中列举了所有的寄存器,当需要切换任务时刻的寄存器值,除x0恒为0,其他的寄存器无法预知其值,切换时均需要保存(gp寄存器编译好后,固定不变,理论上可以不操作,为保持一致性和完整性,一并保存),如果使用浮点,还应该包括浮点寄存器。每个RTOS均会定义一个和上下文保存相关的结构体,以rt-thread为例,可以看到如下图1的数据结构定义。
图1 上下文保存结构体