引言:
FreeRTOS是一款迷你型实时操作系统内核,功能包括:任务管理、时间管理、信号量、消息队列、内存管理等功能,可基本满足较小系统的需要。相对于uc/os-II等商业操作系统,FreeRTOS完全免费,具有源码公开、可移植、可裁剪、任务调度灵活等特点,可以方便地移植到各种MCU上运行。
1.下载源码
解压后如图所示
主要用到FreeRTOS下的Source目录拷贝到工程目录下,然后删除portable文件夹下面除Common,MemMang,GCC以外的文件夹,再删除GCC目录下除RISCV的文件夹。最后所得工程结构如图所示。
2.打开工程
右键工程文件,然后属性,添加头文件路径
编译,根据报错信息修改源文件。
3.新建任务
xTaskCreate是FreeRTOS中用于创建任务的函数。它的函数原型如下:
BaseType_t xTaskCreate(TaskFunction_t pxTaskCode,
const char * const pcName,
const configSTACK_DEPTH_TYPE usStackDepth,
void * const pvParameters,
UBaseType_t uxPriority,
TaskHandle_t * const pxCreatedTask);
参数说明:
pxTaskCode:任务函数的指针,即任务的入口函数。
pcName:任务的名称,用于调试和识别任务。
usStackDepth:任务堆栈的深度,以字节为单位。
pvParameters:传递给任务函数的参数。
uxPriority:任务的优先级,数值越高表示优先级越高。
pxCreatedTask:用于获取新创建任务的句柄。
这里创建两个任务,一个是0.5s闪烁一个1s闪烁
编译下载,将GPIOA的Pin0和Pin1引脚连接led就可以观察到现象了
|