IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> FreeRTOS使用心得(一) -> 正文阅读

[嵌入式]FreeRTOS使用心得(一)

FreeRTOS使用心得(一)

1、创建任务
整套FreeRTOS系统其实很简单,只需要创建不同的任务,然后启动就可以了。
所以在使用FreeRTOS前,首先得先了解任务的创建方式,具体函数如下:
xTaskCreate(xTask_Start,“Start_Task”,1024,NULL,3,&xHandle_Start);
参数说明:
xTask_Start : 任务入口函数的指针,通过该指针来标识要运行的任务函数。任务必须实现永不返回(即连续循环),或者应该使用 vTaskDelete 函数终止。
“Start_Task” :任务的描述性名称。这主要是为了方便调试。由 configMAX_TASK_NAME_LEN 定义的最大长度 - 默认为 16。
1024 :指定为字节数的任务堆栈的大小。使用时根据实际单片机字节大小修改数值
NULL :将用作正在创建的任务的参数的指针。当多个组件需要调用同一个任务时,使用该标识进行区分,正常单任务使用可直接置NULL。
3 :任务应该运行的优先级。包含 MPU 支持的系统可以通过设置优先级参数的位 portPRIVILEGE_BIT 来选择在特权(系统)模式下创建任务。例如,要创建优先级为 2 的特权任务,应将 uxPriority 参数设置为 ( 2 | portPRIVILEGE_BIT )。数值越高优先级越大,最高值根据配置文件来定义。
xHandle_Start :用于传回一个句柄,通过该句柄可以引用创建的任务。对任务进行删除或者引用时,可以通过直接操作句柄的方式来操作任务。例如删除开始任务时,就可以直接调用句柄:vTaskDelete(xHandle_Start);
2、管理任务
任务创建成功后,就可以创建开始任务管理所有任务(也可以直接创建,但任务较多时会导致主函数内容过于杂乱,所以直接使用开始任务函数创建),或者使用其他函数将任务分离出来也行。

TaskHandle_t xHandle_Start=NULL;
xTaskCreate(xTask_Start,"Start_Task",1024,NULL,3,&xHandle_Start);

任务创建完成后,放入初始化代码中就可以了。(arduino放入setup后,STM32放入main函数while之前,ESP32放入app_main函数while之前)。
创建开始任务函数实现,在该函数内创建其他需要使用的任务。

void xTask_Start()
{
     //在此任务中创建其他任务
     TaskHandle_t xHandle_1=NULL;
     xTaskCreate(xTask_1,"task1",1024,NULL,1,&xHandle_1); //任务一
      TaskHandle_t xHandle_2=NULL;
     xTaskCreate(xTask_2,"task2",1024,NULL,2,&xHandle_2); //任务二
      TaskHandle_t xHandle_3=NUL	L;
     xTaskCreate(xTask_3,"task3",1024,NULL,3,&xHandle_3); //任务三
     vTaskDelete(xTask_Start);//删除任务函数
}
//实现创建的任务
void xTask_1()
{
	for(;;)
	{
	
	vTaskDelay(1000);
	}
}
void xTask_2()
{
	for(;;)
	{
	
	vTaskDelay(1000);
	}
}

void xTask_3()
{
	for(;;)
	{
	
	vTaskDelay(1000);
	}
}
  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-10-16 19:48:03  更:2021-10-16 19:49:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:40:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码