恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Day1 任务的创建和删除

  • 首页
  • 资讯中心
  • /
  • Day1 任务的创建和删除

相关资讯

遗传算法优化分位数回归双向LSTM预测模型解析 2026/9/12 19:55:24
CMSIS-4不是库而是静态接口规范:ARM Cortex-M嵌入式开发的地基约束 2026/9/12 19:55:24
【用户成果】山西大学Carbon :高铁酸钾 + 30 秒超快焦耳热制备玉米芯基超级电容碳 2026/9/12 19:55:24

最新资讯

小型语言模型(SLM)技术解析与应用实践
BSP工程师如何转型嵌入式系统架构师
Playnite 启动参数 5 个实用技巧:让游戏库管理器启动更快、告别卡顿
口岸政务窗口双屏翻译机落地应用指南
LED点阵屏
5 分钟搭好 go2rtc:把摄像头变成低延迟 Web 直播的完整指南

今日推荐

MATLAB仿生优化框架:长鼻浣熊算法多策略融合实现
【JAVA毕设源码分享】基于 JavaWeb 的校园一卡通管理系统的设计与实现 基于 JavaWeb 的校园卡业务管理系统(程序+文档+代码讲解+一条龙定制)
【JAVA毕设源码分享】基于 Java 的图书馆借阅管理平台的搭建与实现 基于 Java 的图书馆综合管理系统(程序+文档+代码讲解+一条龙定制)

本周热门

超人会飞不算本事:系统稳定依赖清晰规则与边界设计
超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论
基于CNN的调制信号识别:MATLAB实现时频图分类实战

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

Day1 任务的创建和删除

发布时间:2026/9/12 20:00:24
Day1 任务的创建和删除 跟着正点原子整理了一些笔记一、任务控制块 TCBtskTaskControlBlock每个任务都有独立 TCB相当于任务的身份证内核靠 TCB 管理任务typedef struct tskTaskControlBlock { volatile StackType_t * pxTopOfStack; /* 任务栈栈顶必须是TCB第一个成员上下文切换保存恢复用 */ ListItem_t xStateListItem; /* 任务状态列表项 */ ListItem_t xEventListItem; /* 任务事件列表项 */ UBaseType_t uxPriority; /* 任务优先级数值越大优先级越高 */ StackType_t * pxStack; /* 任务栈起始地址 */ char pcTaskName[configMAX_TASK_NAME_LEN];/* 任务名字 */ …… /* 其余省略 */ } tskTCB;二、动态创建任务xTaskCreate()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 /* 任务句柄操作任务的标识 */ );使用步骤上层调用宏configSUPPORT_DYNAMIC_ALLOCATION配置为1定义函数入口参数编写任务函数函数内部实现申请堆栈内存 TCB 任务控制块内存TCB 结构体成员赋值添加新任务到就绪列表创建后任务直接进入就绪态等待调度器调度运行三、静态创建任务xTaskCreateStatic()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任务控制块缓冲区地址 );使用步骤宏configSUPPORT_STATIC_ALLOCATION配置为1定义空闲任务 定时器任务 的任务堆栈及 TCB实现 2 个接口函数vApplicationGetIdleTaskMemory()vApplicationGetTimerTaskMemory()定义函数入口参数编写任务函数内部实现TCB 结构体成员赋值添加新任务到就绪列表对比小结·动态内核自动申请任务控制块内存简单内存碎片风险TaskHandle_t * const pxCreatedTask // 任务句柄操作任务的标识·静态用户预先分配任务控制块内存无 mallocStackType_t * const puxStackBuffer //栈缓冲区数组地址StaticTask_t * const pxTaskBuffer //TCB任务控制块缓冲区地址四、任务删除vTaskDeletevoid vTaskDelete(TaskHandle_t xTaskToDelete);功能将任务从就绪、阻塞、挂起、事件列表全部移除。重要注意点参数为NULL删除当前正在运行的任务自己内存释放规则空闲任务负责释放系统分配的内存用户自己 malloc 申请的内存必须在任务删除前手动释放否则内存泄漏使用步骤宏INCLUDE_vTaskDelete配置为1传入任务句柄NULL 代表删除自身内部执行流程根据任务句柄找到待删除任务的 TCBNULL 代表删自己将任务从所有关联链表就绪 / 阻塞 / 挂起 / 事件移除判断任务类型删除自身加入等待删除列表内存由空闲任务后续释放删除别的任务直接释放内存任务计数 - 1更新下一个任务的阻塞超时时间防止被删任务刚好是下一个超时任务

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号