当前位置: 首页 > 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

步骤

任务删除函数

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

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

http://www.xdnf.cn/news/53641.html

相关文章:

  • 电源芯片的关键性能指标与分析
  • netty中对TLS支持详解
  • 状态管理最佳实践:GetX框架深度应用
  • Tradingview日内交易策略分享-89%日内交易胜率
  • 【网工第6版】第4章 无线通信网
  • awk命令——功能强大的文本处理工具
  • adb启动没有成功响应解决方法
  • 【去哪儿网】登录滑块逆向算法AES加密分析(逆天滑块轨迹)
  • 柱状图QCPBars
  • Linux系统之部署Dillinger个人文本编辑器
  • vulnhub five86系列靶机合集
  • Windows 10 登录界面隐藏账号
  • DSP28335入门学习——第一节:工程项目创建
  • 使用BQ76PL455和STM32的SAE电动方程式电动汽车智能BMS
  • 聊聊Spring AI Alibaba的FeiShuDocumentReader
  • qwen 32B 模型配置文件参数解释;48 个堆叠的解码器层是什么意思; `max_window_layers`的作用; 定义 `device_map`
  • 节点流和处理流基本使用
  • Python 一等函数( 高阶函数)
  • 【题解-OpenJudge】和为给定数
  • 【人工智能】Agent未来市场与技术潜力分析
  • Linux守护进程
  • 生成对抗网络(Generative adversarial network——GAN)
  • 【数据库】索引
  • ADVB协议
  • 软件安装,systemctl命令,软连接
  • 辅助函数构造题目(缓慢更新,遇到更道)
  • 4 Matplotlib 文字图例
  • HCIP第三次作业
  • (undone) 吴恩达版提示词工程 2. 指南
  • 【OS】深入理解Linux的五种IO模型