恩施做网站公司,网络工程干什么的,网页翻译俄文,北京南站在几环本节主要学习以下内容#xff1a;
1#xff0c;任务创建和删除的API函数#xff08;熟悉#xff09;
2#xff0c;任务创建和删除#xff08;动态方法#xff09;#xff08;掌握#xff09;
3#xff0c;任务创建和删除#xff08;静态方法#xff09;#xf…本节主要学习以下内容
1任务创建和删除的API函数熟悉
2任务创建和删除动态方法掌握
3任务创建和删除静态方法掌握
4课堂总结掌握
一、任务创建和删除的API函数(熟悉)
任务的创建和删除本质就是调用FreeRTOS的API函数 API函数 描述 xTaskCreate() 动态方式创建任务 xTaskCreateStatic() 静态方式创建任务 vTaskDelete() 删除任务 动态创建任务任务的任务控制块以及任务的栈空间所需的内存均由FreeRTOS从FreeRTOS管理的堆中分配静态创建任务任务的任务控制块以及任务的栈空间所需的内存需要用户分配提供
1.1 动态创建任务函数
configMAX_TASK_NAME_LEN 默认为16
pvParameters, 传递给任务函数的参数 默认为NULL
uxPriority, 任务优先级范围0 ~ configMAX_PRIORITIES - 1 configMAX_PRIORITIES 为32 返回值 描述 pdPASS 任务创建成功 errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY 任务创建失败 任务控制块的堆空间不足。
1.2 实现动态创建任务流程
此函数创建的任务会立刻进入就绪态由任务调度器调度运行在就绪态中找到优先级最高的任务去执行。 扩展任务控制块究竟是什么通俗来讲就是任务的身份证保留了任务的一些特征。下面为任务控制块结构体成员的简介
任务栈栈顶在任务切换时的任务上下文保存、任务恢复息息相关注意每个任务都有属于自己的任务控制块类似身份证。
1.3 静态创建任务函数 返回值 描述 NULL 用户没有提供相应的内存任务创建失败 其他值 任务句柄任务创建成功 1.4 静态创建任务使用流程 此函数创建的任务会立刻进入就绪态由任务调度器调度运行
1.5 任务删除函数 形参 描述 xTaskToDelete 待删除任务的任务句柄 用于删除已被创建的任务被删除的任务将从就绪态任务列表、阻塞态任务列表、挂起态任务列表和事件列表中移除
注意
1、当传入的参数为NULL则代表删除任务自身当前正在运行的任务2、空闲任务会负责释放被删除任务中由系统分配的内存但是由用户在任务删除前申请的内存 则需要由用户在任务被删除前提前释放否则将导致内存泄露
1.6 删除任务流程 二、任务创建和删除动态方法掌握
1、实验目的学会 xTaskCreate( ) 和 vTaskDelete( ) 的使用
2、实验设计将设计四个任务start_task、task1、task2、task3
四个任务的功能如下
start_task用来创建其他的三个任务只执行一次执行结束后调用vTaskDelete将自己删除task1实现LED0每500ms闪烁一次task2实现LED1每500ms闪烁一次task3判断按键KEY0是否按下按下则删掉task1
代码明天上传
麻烦各位一键三连