这样即可保证RTOS下,硬件压栈可正常使用,保证RTOS下的中断响应速度。 今天聊下需要移植RTOS时RISC-V内核单片机需要保存的寄存器。 RISC-V寄存器如下图1所示,其中x0-x31为整形寄存器,f0-f31为浮点寄存器(青稞V3没有浮点寄存器)。所有带caller的寄存器,当发生中断时需要保存,值得注意的是,WCH的硬件压栈保存的寄存器仅...
这样即可保证RTOS下,硬件压栈可正常使用,保证RTOS下的中断响应速度。 今天聊下需要移植RTOS时RISC-V内核单片机 需要保存的寄存器。 RISC-V寄存器如下图1所示,其中x0-x31为整形寄存器,f0-f31为浮点寄存器(青稞V3没有浮点寄存器)。 所有带caller的寄存器,当发生中断时需要保存,值得注意的是,WCH的硬件压栈保存的寄存器...
今天聊下需要移植RTOS时RISC-V内核单片机需要保存的寄存器。 RISC-V寄存器如下图1所示,其中x0-x31为整形寄存器,f0-f31为浮点寄存器(青稞V3没有浮点寄存器)。所有带caller的寄存器,当发生中断时需要保存,值得注意的是,WCH的硬件压栈保存的寄存器仅仅保存整数的16个caller saved 寄存器。正常一个中断函数的寄存器保存我...
而对于没有此功能的赤菟V103来说,移植操作系统时不能打开硬件压栈。 图2 软中断切换上下文过程 对于其他的RTOS也是大同小异,例如鸿蒙LiteOS_M中有个g_losTask全局变量,其是个结构体,内部为两个任务控制块类型的指针,分别为*runTask指向当前运行的任务,newTask指向要切换的新任务,腾讯的TencentOS_Tiny中亦有两个...
今天聊下需要移植RTOS时RISC-V内核单片机需要保存的寄存器。 RISC-V寄存器如下图1所示,其中x0-x31为整形寄存器,f0-f31为浮点寄存器(青稞V3没有浮点寄存器)。所有带caller的寄存器,当发生中断时需要保存,值得注意的是,WCH的硬件压栈保存的寄存器仅仅保存整数的16个caller saved寄存器。正常一个中断函数的寄存器保存我们...
接着以WCH沁恒微电子的赤菟V103(CH32V103)和赤菟V307(CH32V307)两款RISC-V内核芯片来详细说下针对RISC-V平台,移植实时操作系统的注意点。 今天聊下移植RTOS时RISC-V内核时单片机任务栈保存哪些内容。 上一章中列举了所有的寄存器,当需要切换任务时刻的寄存器值,除x0恒为0,其他的寄存器无法预知其值,切换时均...
RISC-V MCU移植RTOS系列教程(二) 接着以WCH沁恒微电子的赤菟V103(CH32V103)和赤菟V307(CH32V307)两款RISC-V内核芯片来详细说下针对RISC-V平台,移植实时操作系统的注意点。 今天聊下移植RTOS时RISC-V内核时单片机任务栈保存哪些内容。 上一章中列举了所有的寄存器,当需要切换任务时刻的寄存器值,除x0恒为0,...
【为RISC-V MCU移植RTOS系列干货教程】- 6.RTOS启动后第一个任务执行的地方与汇编实现(下) 174 -- 10:19 App 【为RISC-V MCU移植RTOS系列干货教程】- 5.RTOS启动后第一个任务执行的地方与汇编实现(中) 465 -- 11:52 App 【为RISC-V MCU移植RTOS系列干货教程】-14.RISC-V链接脚本实战 404 -- 11:28...
实时操作系统大家应该不陌生,常见的uCOS,FreeRTOS,RT-Thread,LiteOS-M等等,其基本的思路都是一样的,需要一个定时器用于系统时间片的实现,一个中断用于任务切换。想要其能够在一个MCU上成功的跑起来,需要弄清除一下几个事情:(1) 进中断需要保存哪些内容。从之前的描述中,应该知道,对于risc-v内核来...