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

第9课 任务创建、删除和API函数

第9课 任务创建、删除和API函数

任务创建和删除本质是调用FreeRTOS的API函数

API函数描述
xTaskCreate()动态方式创建任务
xTaskCreateStatic()静态方式创建任务
xTaskDelete()删除任务
  • 动态创建任务:

任务的任务控制块以及任务的栈空间所需的内存,均由FreeRTOS自动从系统管理的堆中分配(自动)

  • 静态创建任务:

任务的任务控制块以及任务的栈空间所需的内存,需要用户分配提供(人为)

2、实现动态创建任务的流程

  1. 将宏configSUPPORT_DIYAMIC_ALLOCATION配置为1
  2. 定义入口参数
  3. 编写任务函数

此函数创建的任务会立刻进入就绪态,由任务调度器运行

3、实现静态创建任务的流程

  1. 将宏configSUPPORT_DIYAMIC_ALLOCATION配置为1
  2. 定义空闲任务&定时器任务的任务堆栈及TCB
  3. 实现两个接口函数
  • vApplicationGetldleTaskMemory()
  • vApplicationGetTimerTaskMemory()
  1. 定义函数入口参数
  2. 编写任务函数

此函数创建的任务会立刻进入就绪态,由任务调度器运行

4、任务删除函数

被删除的任务将从就绪任务列表、阻塞态任务列表、挂起态任务列表和事件列表中移除

注意:
1.当传入的参数为NULL,则代表删除任务自身(当前正在运行的任务)
2.空闲任务会负责释放被删除任务中由系统分配的内存,但是由用户在任务删除前申请的内存;对于静态任务由用户在删除前由用户在任务被删除前提前释放内存,否则将导致内存泄漏

删除任务流程

1、获取所要删除任务的控制块
2、将被删除任务,移除所在列表
3、判断所需要删除的任务
4、更新下个任务的阻塞时间


http://www.kler.cn/a/154140.html

相关文章:

  • Cherno OpenGL(28 ~ 33)
  • 利用Python爬虫获取淘宝店铺详情
  • 在 Spark RDD 中,sortBy 和 top 算子的各自适用场景
  • PyTorch使用教程-深度学习框架
  • 后仿真中的GLS测试用例的选取规则
  • 关于 Oracle Database Express Edition 的功能和安装
  • Ubuntu 22.04安装Go 1.21.4编译器
  • Spring Boot统一异常处理 Spring拦截器
  • c++模板集合
  • 输出SearchFacesResponse对象的JSON格式字符串回包乱码解决方案
  • 工业机器视觉megauging(向光有光)使用说明书(十一,轻量级的visionpro)
  • 一个暂存文件
  • supervisor管理启动重启,Java,Go程序Demo
  • C语言KR圣经笔记 4.2返回非整数的函数
  • Mysq8l在Centos上安装后忘记root密码如何重新设置
  • 使用策略模式彻底消除if-else
  • 代币化:2024年的金融浪潮预示着什么?
  • TOP-K问题和向上调整算法和向下调整算法的时间复杂度问题的分析
  • Redis部署-主从模式
  • 【Vulnhub 靶场】【CEREAL: 1】【困难】【20210529】
  • 如何查看当前conda可供安装的所有pytorch版本
  • 智慧工地平台源码,支持多端展示:PC端、手机端、平板端,实现数据同步
  • iview弹窗提交问题优化
  • 安卓开发学习---kotlin版---笔记(一)
  • Mongodb使用killCursors停止运行的cursor
  • JOSEF 快速中间继电器 KZJ-4H-L DC220V 导轨安装