学习笔记——FreeRTOS任务的创建(动态方法)

学习了任务的相关知识后,在MDK5中以STM32F407为开发板尝试任务的创建和删除。

任务创建有两种方式分别为动态创建和静态创建,分别通过调用vTaskcreat()和vTaskcreat_static()来创建。其区别是动态创建任务的堆栈由系统分配,而静态创建任务的堆栈由用户自己传递。

 

学习笔记——FreeRTOS任务的创建(动态方法)

                                                                            动态创建任务的原型

 

其中各个参数:pxTaskCode                         任务函数(由用户自己编写的函数,一般为一个无限循环) 

                          pcName                               任务名(用于追踪和调试,最大长度不超过configMAX_TASK_NAME_LEN)

                          usStackDepth                      任务堆栈大小(注意⚠️:申请到的堆栈大小为参数的4倍,通过宏定义得到)

                          pvParameters                      传递给任务的参数(一般为NULL)

                          uxPriotiry                             任务优先级(最大和最小不可取,通过宏定义得到)

                          pxCreatedTask                    任务句柄(任务句柄,任务创建成功以后会返回此任务的任务句柄,这个句柄其实就是 任务的任务堆栈。此参数就用来保存这个任务句柄。其他 API 函数可能会使 用到这个句柄。)

                         

返回值:

pdPASS                       创建成功

errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY        任务创建失败,因为堆内存不足!