尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
freertos任务创建和删除api函数(正点原子笔记)
1.任务的创建和删除本质就是调用FreeRTOS的API函数xTaskCreate() //动态创建任务 xTaskCreateStatic() //静态创建任务 vTaskDelete() //删除任务动态创建xTskcreate()任务控制块TCB、任务栈内存全部是有freertos自有堆自动分配也就是在FreeRTOSConfig.h头文件这个宏定义动态创建所需的内存会在这个堆区中分配。//系统所有总的堆大小 #define configTOTAL_HEAP_SIZE ((size_t)(10*1024))静态创建xTskcreateStatic()TCB缓冲区、任务栈数组全部由用户提前自定义分配不占用FreeRTOS的堆空间占用芯片全局的RAM。动态创建任务函数BaseType_t xTaskCreate ( TaskFunction_t pxTaskCode, /* 指向任务函数的指针 */ const char * const pcName, /* 任务名字最大长度configMAX_TASK_NAME_LEN */ const configSTACK_DEPTH_TYPE usStackDepth, /* 任务堆栈大小注意字为单位 */ void * const pvParameters, /* 传递给任务函数的参数 */ UBaseType_t uxPriority, /* 任务优先级范围0 ~ configMAX_PRIORITIES - 1 */ TaskHandle_t * const pxCreatedTask /* 任务句柄就是任务的任务控制块 */ )返回值pdPASS任务创建成功errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY堆内存不足创建失败使用前需要将FreeRTOSConfig.h中的动态分配内存宏定义开启//支持动态内存申请 #define configSUPPORT_DYNAMIC_ALLOCATION 1底层执行流程1.从 FreeRTOS 堆中申请两块独立内存任务栈空间 TCB 任务控制块空间2.对 TCB 结构体所有成员赋值栈顶指针、优先级、任务名、链表节点等3.初始化任务栈预先写入任务函数入口地址模拟任务第一次运行的上下文4.将当前 TCB 挂载到系统就绪任务链表任务进入就绪态等待调度器调度5.将 TCB 地址赋值给任务句柄供外部 API 操作该任务。TCB控制块tcb是每个任务的专属身份证一个任务对应唯一一块tcbtypedef struct tskTaskControlBlock { volatile StackType_t * pxTopOfStack; // 栈顶指针任务切换保存/恢复上下文核心 ListItem_t xStateListItem; // 就绪/阻塞/挂起链表挂载节点 ListItem_t xEventListItem; // 等待信号量、队列时挂载事件链表 UBaseType_t uxPriority; // 任务优先级数值越大优先级越高 StackType_t * pxStack; // 任务栈内存起始地址 char pcTaskName[configMAX_TASK_NAME_LEN]; // 任务名称 // 省略延时计数、内核标记等条件编译成员 } tskTCB;静态创建任务函数TaskHandle_t xTaskCreateStatic ( TaskFunction_t pxTaskCode, const char * const pcName, const uint32_t ulStackDepth, void * const pvParameters, UBaseType_t uxPriority, StackType_t * const puxStackBuffer, // 用户自定义任务栈数组 StaticTask_t * const pxTaskBuffer // 用户自定义TCB存储缓冲区 );返回值NULL用户传入内存非法创建失败非空指针任务句柄TCB 地址创建成功。使用前需要配置静态分配宏#define configSUPPORT_STATIC_ALLOCATION 1同时必须实现两个系统接口给空闲任务、定时器任务提供静态内存vApplicationGetIdleTaskMemory()提供空闲任务 TCB 与栈内存vApplicationGetTimerTaskMemory()提供软件定时器任务 TCB 与栈内存。任务删除函数void vTaskDelete(TaskHandle_t xTaskToDelete);入口参数是待删除任务句柄传入null代表删除当前运行任务自身使用前配置删除功能宏定义#define INCLUDE_vTaskDelete 1底层执行逻辑通过任务句柄找到对应的TCB将该任务从就绪、阻塞、挂起、事件全部链表中移除删除其他任务时直接释放动态分配的TCB、栈内存存回freertos堆区删除自身任务时尽标记为待删除内存回收交给空闲任务完成之后刷新系统阻塞链表超时时间避免调度异常
RELATED

相关推荐

Spring Boot 应用对接 Prometheus 监控指南

Spring Boot 应用对接 Prometheus 监控指南

Spring Boot 应用对接 Prometheus 监控指南 本文档介绍如何将 Spring Boot 应用接入 Prometheus 监控体系,分无认证和 Basic Auth 认证两种情况说明。一、技术栈组件用途Micrometer指标采集门面Spring Boot Actuator暴露监控端点Prometheus指标采集 时序数据库Graf…

📅 2026/8/23 1:46:21
hubuild中的uniapp项目运行在Android Studio平板模拟器中

hubuild中的uniapp项目运行在Android Studio平板模拟器中

1.下载Android Studio2.打开设备管理器打开后如图打开后这个列表是空的,我的是已经添加了,点击左上角加号,左侧选择Tablet,就是平板的意思,右侧随便选一个,第三个是我自己自定义添加的,是点击左…

📅 2026/8/23 1:46:28
C语言基础:字符数组

C语言基础:字符数组

一维字符数组应用 : 存储字符串。1.定义:类型 数组名[整形常量]; 整形常量 数组的容量,表示可以储存多少个字符 类型 char c语言规定,字符串必须使用\0 作为结束标准。 如果你要在数组中储存一个 hello , hello\0 共计6个…

📅 2026/8/23 1:46:28
MORE NEWS

更多资讯

📰

TiXL 导出独立可执行文件(Player)完整指南:从编辑器到一键分发

TiXL 导出独立可执行文件(Player)完整指南:从编辑器到一键分发 【免费下载链接】t3 TiXL is an open source software to create realtime motion graphics. 项目地址: https://gitcode.com/GitHub_Trending/t3/t3 TiXL(T3…

📰

2026年服务好的在线文档编辑中台厂商综合评测

在线文档编辑中台厂商服务能力评价维度当前企业数字化转型进程持续深入,在线文档编辑中台已经成为支撑企业跨部门协作、业务系统集成、数据安全管控的核心办公基础设施。不同厂商的服务能力差异直接影响项目落地效率、使用体验和后续运维成本,建立统一的…

📰

CANN pyasc 算子开发:asc.language.basic.set_atomic_type 原子操作数据类型设置接口详解

CANN pyasc 算子开发:asc.language.basic.set_atomic_type 原子操作数据类型设置接口详解 【免费下载链接】pyasc 本项目为Python用户提供算子编程接口,支持在昇腾AI处理器上加速计算,接口与Ascend C一一对应并遵守Python原生语法。 项目地…

📰

微信聊天记录导出完整指南:用 WeChatMsg 免费把历史对话转成 Word、CSV 和年度聊天报告

微信聊天记录导出完整指南:用 WeChatMsg 免费把历史对话转成 Word、CSV 和年度聊天报告 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitco…

📰

OCC WebGL案例编译指南:FreeType静态库配置与链接实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

深圳光影教育AIGC小班培训,从提示词到出图全流程,适合设计师转型

随着AIGC技术的快速落地,AI内容创作已经从行业概念变成了商业市场的刚需,无论是图文设计、短视频制作还是短剧生产,都在通过AIGC技术降低创作成本、提升产出效率。据相关行业数据显示,国内AIGC相关岗位人才缺口已经超过百万&#…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬