xTaskCreate()

头文件:task.h

portBASE_TYPE xTaskCreate ( pdTASK_CODE pvTaskCode, //指向任务的实现函数的指针。效果上仅仅是函数名

               const portCHAR * const pcNane, //具有描述性的任务名。FreeRTOS 不会使用它。

               unsigned portSHORT usStackDepth, //指定任务堆栈的大小

               void *pvParameters, //指针用于作为一个参数传向创建的任务 unsigned portBASE_TYPE uxPriority, 任务运行时的优先级    

                xTaskHandle *pvCreatedTask //用于传递任务的句柄,可以引用从而对任务进行其他操作。

               )

  说明: 1. 这里的任务是指一个永远不会退出的C 函数,通常是一个死循环。

     2. pcNane 其只是单纯地用于辅助调试。应用程序可以通过定义常量 config_MAX_TASK_NAME_LEN 来定义任务名的最大长度——包括’\0’结束符。如果传入的 字符串长度超过了这个最大值,字符串将会自动被截断

     3. usStackDepth 这个值指定的是栈空间可以保存多少个字(word),而不是多少个字节(byte)。栈空间 大小为usStackDepth*4(bytes)。

     4. uxPriority 优先级的取值范围可以从最低优先级0 到最高优先级(configMAX_PRIORITIES–1)。

返回: 1. pdPASS 表明任务创建成功,准备运行。

   2. errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY 由于内存堆空间不足,FreeRTOS 无法分配 足够的空间来保存任务结构数据和任务栈,因此无法创建任务。

时间: 2024-12-13 19:15:12

xTaskCreate()的相关文章

FreeRTOS学习笔记2

FreeRTOS函数原型解析: portBASE_TYPE xTaskCreate( pdTASK_CODE pvTaskCode, const signed portCHAR * const pcName,              unsigned portSHORT usStackDepth,              void *pvParameters,              unsigned portBASE_TYPE uxPriority,.              xTas

学习笔记-RTOS任务创建

任务的创建 1  任务需要 RAM 来保存与任务有关的状态信息(任务控制块) 2  需要一定的 RAM 来作为任务堆栈 xTaskCreate()就会从FreeRTOS的堆中分配,必须提供内存管理文件 默认使用heap_4.c 3 宏 configSUPPORT_DYNAMIC_ALLOCATION 必须为 1 4 函数 xTaskCreateStatic()创建的话这些 RAM 就需要用户来提供了 configSUPPORT_STATIC_ALLOCATION设置为1 5 任务调度器启动前还是

学习RTOS基础知识笔记1

支持前导0指令的CPU configUSE_PORT_OPTIMISED_TASK_SELECTION 设置为 1 考虑到 RAM 的消耗,宏 configMAX_PRIORITIES 最好设置为一 个满足应用的最小值 RTOS最高优先级configMAX_PRIORITIES-1 configUSE_TIME_SLICING 定义为 1 多个任务可以共用一个优先级,数量不限 处于就绪态的优先级相同的任务就会使用时间片轮转调度器获取运行时间 创建任务: 1 xTaskCreate()或 xTas

FreeRTOS高级篇11---空闲任务分析

当RTOS调度器开始工作后,为了保证至少有一个任务在运行,空闲任务被自动创建,占用最低优先级(0优先级). xReturn = xTaskCreate( prvIdleTask, "IDLE",configMINIMAL_STACK_SIZE, (void * ) NULL, (tskIDLE_PRIORITY | portPRIVILEGE_BIT ), &xIdleTaskHandle); 空闲任务是FreeRTOS不可缺少的任务,因为FreeRTOS设计要求必须至少有一个

FreeRTOS学习笔记5-静态方式创建任务函数

配置完成后的进行任务创建,使用静态方式创建任务时需要使将宏 configSUPPORT_STATIC_ALLOCATION设置为 1,即使用静态内存.还需要将函数 vApplicationGetIdleTaskMemory()和 ApplicationGetTimerTaskMemory()进行实现.通过这两个函数来给空闲任务 和定时器服的任务堆 栈和任务控制块分配内存.在maiinc.c中进行定义.定义静态的任务堆栈和任务控制块内存,然后将这些内存传递给函数参数.最后创建空闲任务和定时器任务的

FreeRTOS系列第11篇---FreeRTOS任务控制

FreeRTOS任务控制API函数主要实现任务延时.任务挂起.解除任务挂起.任务优先级获取和设置等功能. 1.相对延时 1.1函数描述 void vTaskDelay( portTickTypexTicksToDelay ) 调用vTaskDelay()函数后,任务会进入阻塞状态,持续时间由vTaskDelay()函数的参数xTicksToDelay指定,单位是系统节拍时钟周期.常量portTICK_RATE_MS 用来辅助计算真实时间,此值是系统节拍时钟中断的周期,单位是毫秒.在文件FreeR

FreeRTOS系列第9篇---FreeRTOS任务概述

1. 任务和协程(Co-routines) 应用程序可以使用任务也可以使用协程,或者两者混合使用,但是任务和协程使用不同的API函数,因此在任务和协程之间不能使用同一个队列或信号量传递数据. 通常情况下,协程仅用在资源非常少的微处理器中,特别是RAM非常稀缺的情况下.目前协程很少被使用到,因此对于协程FreeRTOS作者既没有把它删除也没有进一步开发. 所以本系列文章以后不会对协程过多描述,包括其API函数. 1.1任务的特性 简而言之:使用RTOS的实时应用程序可认为是一系列独立任务的集合.每

FreeRTOS 查询任务 剩余的栈空间的 方法

From:http://www.cnblogs.com/suozhang/p/5301054.html 1.官方文档提供了   函数  用来查询  任务 剩余   栈 空间,首先是看官方的文档解释(某位大神 翻译 的 官方 文档.) 参数解释:     xTask:被查询任务的句柄——欲知如何获得任务句柄,详情请参见API 函数xTaskCreate()的参数pxCreatedTask.如果传入 NULL 句柄,则任务查询的是自身栈空间的高水线. 返回值: 任务栈空间的实际使用量会随着任务执行和

FreeRtos——单任务

在之前的移植工作准备好之后,我们需要调用freertos提供给我们的API函数实现操作系统地运行.首先,第一个函数: 任务函数任务是由 C 语言函数实现的.唯一特别的只是任务的函数原型,其必须返回 void,而且带有一个 void 指针参数.void ATaskFunction( void *pvParameters );任务函数原型每个任务都是在自己权限范围内的一个小程序.其具有程序入口,通常会运行在一个死循环中,也不会退出. /********************************