打印
[单片机芯片]

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

[复制链接]
3363|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
引言:
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就可以观察到现象了

使用特权

评论回复
沙发
tpgf| | 2024-5-7 14:22 | 只看该作者
如何根据报错信息来修改相应的源文件呢

使用特权

评论回复
板凳
wakayi| | 2024-5-7 15:07 | 只看该作者
如果不设置任务的优先级的话 就是按照先后顺序来执行吧

使用特权

评论回复
地板
xiaoqizi| | 2024-5-7 20:12 | 只看该作者
在小型单片机上 这个系统 也能跑的比较流畅

使用特权

评论回复
5
wowu| | 2024-5-7 20:44 | 只看该作者
任务优先级的范围由什么来决定呢

使用特权

评论回复
6
renzheshengui| | 2024-5-7 21:16 | 只看该作者
一个系统能同时跑多少个任务和什么参数有关系呢

使用特权

评论回复
7
paotangsan| | 2024-5-7 21:48 | 只看该作者
对于简单的程序来说 跑系统 还有其先进性吗

使用特权

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

本版积分规则

23

主题

132

帖子

0

粉丝