当前位置: 首页 > news >正文

基于尚硅谷FreeRTOS视频笔记——16—FreeRTOS的任务创建和删除

动态创建任务函数

简介

BaseType_t xTaskCreate:x表示定义出来的类型。Task表示在Task.c文件中。

1.TaskFunction_t   pxTaskCode:任务的地址。

2.const char * const pcName:任务的别名,就是外号。但要注意,最大长度受configMAX_TASK_NAME_LEN 来控制。

3.const configSTACK_DEPTH_TYPE usStackDepth, :任务堆栈大小,默认单位4字节 

所以最小为128*4字节

32位平台:4字节

16位平台:2字节

4. void * const pvParameters传递给任务函数的参数

5. UBaseType_t uxPriority任务优先级,范围:0 ~ configMAX_PRIORITIES - 1

 6.TaskHandle_t * const pxCreatedTask  :任务句柄,就是任务的任务控制块 。这是指向任务控制块的指针。

什么是任务控制块,如同身份证,包含自己的各种信息。

同样,任务控制块包含这个任务的优先级,大小等,就是任务身份证。

步骤

查找

内部实现

TCB简介

静态任务创建

简介

不同点:

  StackType_t * const puxStackBuffer, /* 任务堆栈,一般为数组,由用户分配 */

    StaticTask_t * const pxTaskBuffer   /* 任务控制块指针,由用户分配 */
因为静态创建需要我们自己分配空间,所以不同TCB

步骤

任务删除函数

需要注意的是,空闲任务会负责释放被删除任务中由系统分配的内存,但是由用户在任务删除前申请的内存,则需要由用户在任务被删除前提前释放,否则将导致内存泄露。

如同你去别人家干活(创建任务),然后借了一个工具(申请内存),当活干完后(删除任务),需要将工具还回(删除申请的内存)

相关文章:

  • Redis入门
  • C#森林中的兔子(力扣题目)
  • mysql中的group by用法详解
  • Linux学习——Linux进程间通信(IPC)聊天程序实践
  • NHANES指标推荐:RFM
  • 恒源云常用命令
  • 【HDFS入门】HDFS故障排查与案例分析:从日志分析到实战解决
  • 清理C盘组合拳:最高释放空间80GB+
  • WebSocket启用备忘
  • Matlab 步进电机传递函数模糊pid
  • Yocto项目实战教程‑第6章‑Poky‑镜像菜谱‑机器配置文件‑发行版配置文件‑QEMU
  • 2025 第十六届蓝桥杯Java B组
  • 二进制枚举算法
  • 嵌入式学习——虚拟机通信
  • 零基础上手Python数据分析 (19):Matplotlib 高级图表定制 - 精雕细琢,让你的图表脱颖而出!
  • xss4之cookie操作
  • 前端知识深度学习
  • 认识MCP Function Calling AI Agent
  • 每日一题算法——链表相交
  • 21.Chromium指纹浏览器开发教程之触摸屏点指纹定制
  • 建行原副行长章更生被开除党籍:靠贷吃贷,大搞权钱交易
  • 外交部答澎湃:愿同阿曼在国际和地区事务中加强沟通协调
  • 五一节,和人民照相馆一起找回“拍照”的仪式感
  • 夜读丨秦腔里的乡魂
  • 吉祥航空去年净利增超17%,海航实控人方威退出前十大股东
  • 助力中国足球未来,香港赛马会鼎力支持U15国少选拔队赴英训练