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

接着以WCH沁恒微电子的赤菟V103(CH32V103)和赤菟V307(CH32V307)两款RISC-V内核单片机来详细说下针对RISC-V平台,移植实时操作系统的注意点。

今天聊下移植RTOS时RISC-V内核时单片机切换至第一个任务

以RT-Thread为例,rt-thread和其他RTOS有点区别的是其gcc下的入口函数定义为entry,而main函数则可以被初始化为线程之一,图1为rt-thread的详细的启动流程。rt-thread定义一个rt_thread类型的全局指针rt_current_thread,用于实时获取当前运行的线程。从图9可知,硬件启动后进rtthread_startup,其开始进行了必要的初始化,如系统滴答定时器、堆、串口、调度器、定时器、main线程、空闲idle线程等等,最后执行了rt_system_scheduler_start后转交调度器执行。其内容如下图2所示。

RISC-V MCU移植RTOS系列教程(三)_第1张图片

图1 rt_thread启动流程

RISC-V MCU移植RTOS系列教程(三)_第2张图片

图2 调度器启动


由图2可知,其会查找优先级较

你可能感兴趣的:(RISC-V,MCU,单片机,嵌入式硬件,c语言)