[单片机芯片]

【CH32X035评估板测评】FreeRTOS多任务

[复制链接]
2619|6
手机看帖
扫描二维码
随时随地手机跟帖
新曲难觅旧知音|  楼主 | 2023-10-7 22:34 | 显示全部楼层 |阅读模式
引言:
FreeRTOS是一款迷你型实时操作系统内核,功能包括:任务管理、时间管理、信号量、消息队列、内存管理等功能,可基本满足较小系统的需要。相对于uc/os-II等商业操作系统,FreeRTOS完全免费,具有源码公开、可移植、可裁剪、任务调度灵活等特点,可以方便地移植到各种MCU上运行。
1.下载源码
解压后如图所示
Snipaste_2023-10-07_21-54-34.png
主要用到FreeRTOS下的Source目录拷贝到工程目录下,然后删除portable文件夹下面除Common,MemMang,GCC以外的文件夹,再删除GCC目录下除RISCV的文件夹。最后所得工程结构如图所示。
bbb.png


2.打开工程
右键工程文件,然后属性,添加头文件路径
ccc.png
编译,根据报错信息修改源文件。

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:用于获取新创建任务的句柄。
eee.png


qqq.png
这里创建两个任务,一个是0.5s闪烁一个1s闪烁
编译下载,将GPIOA的Pin0和Pin1引脚连接led就可以观察到现象了

使用特权

评论回复
tpgf| | 2024-5-7 14:22 | 显示全部楼层
如何根据报错信息来修改相应的源文件呢

使用特权

评论回复
wakayi| | 2024-5-7 15:07 | 显示全部楼层
如果不设置任务的优先级的话 就是按照先后顺序来执行吧

使用特权

评论回复
xiaoqizi| | 2024-5-7 20:12 | 显示全部楼层
在小型单片机上 这个系统 也能跑的比较流畅

使用特权

评论回复
wowu| | 2024-5-7 20:44 | 显示全部楼层
任务优先级的范围由什么来决定呢

使用特权

评论回复
renzheshengui| | 2024-5-7 21:16 | 显示全部楼层
一个系统能同时跑多少个任务和什么参数有关系呢

使用特权

评论回复
paotangsan| | 2024-5-7 21:48 | 显示全部楼层
对于简单的程序来说 跑系统 还有其先进性吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

125

帖子

0

粉丝