ESP8266 RTOS中的FreeRTOS相关函数

Posted praybb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ESP8266 RTOS中的FreeRTOS相关函数相关的知识,希望对你有一定的参考价值。

  1. 优先级
    数值越大优先级越高
    SDK低层优先级:pp task(13) ets timer线程(12)lwip task(10)freeRtos timer(2)idle(0)
    可供用户线程使用的优先级为1~9,请勿修改 freeRTOSconfig.h
  2. 状态:
  • 运行态
  • 就绪态
  • 阻塞态
  • 挂起态
  1. 任务创建
头文件:task.h
portBASE_TYPE xTaskCreate(pdTASK_CODE pvTaskCode,
const portCHAR * const pcName,
unsigned portSHORT usStackDepth,
void *pvParameters,
unsigned portBASE_TYPE uxPriority,
xTaskHandle *pvCreatedTask
);
/*
 pvTaskCode :指向任务的实现函数的指针,效果上仅仅是函数名。
 pcName : 具有描述性的任务名,FreeRTOS不会使用它。
 usStackDepth :指定任务堆栈的大小
 pvParameters :指针用于作为一个参数传向创建的任务
 uxPriority   :任务运行时的优先级
 pvCreatedTask:用于传递任务的句柄,可以引用从而对任务进行其它操作
*/
  1. 任务的延时
  • 相对延时
void vTaskDelay{portTickType xTicksToDelay}
  • 绝对延时(精准延时)
void vTaskDelayUntil( portTickType *pxPreviousWakeTime, portTickTypexTimeIncrement );
  1. 任务删除
void vTaskDelete( xTaskHandle pxTask )//传递NULL将删除自己
  1. 任务实现
ATaskFunction(void *pvParameters){
int iVariableExample =0;
for(;;)
{
}
vTaskDelete(NULL);
}
  1. 任务优先级
unsigned portBASE_TYPE uxTaskPriorityGet(xTaskHandle pxTask)
pxTask 需要处理的任务,当传递NULL时,将返回调用该任务的优先级
void vTaskPrioritySet(xTaskHandle pxTask,unsigned PortBASE_TYPE uxNewPriority)
pxTask 需要处理的任务,当传递NULL时,将设置调用该任务的优先级
uxNewPriority 任务需要设置的优先级
  1. 任务挂起
void vTaskSuspend(xTaskHandle pxTaskToSuspend)
pxTaskToSuspend 处理需要挂起的任务,传递NULL将挂起调用此函数的任务
void vTaskResume(xTaskHandle pxTaskToResume)
pxTaskToResume 就绪任务的句柄
  1. FreeRTOS内核规定的几个内存管理函数:
    void *pvPortMalloc(size_t xSize):内存申请函数
    void vPortFree(void *pv) :内存释放函数
    void vPortInitialiseBlocks(void) :初始化内存堆函数
    size_t xPortGetFreeHeapSize(void) :获取当前未分配的内存堆大小
    size_t xPortGetMinimumEverFreeHeapSize(void):获取未分配的内存堆历史最小值

以上是关于ESP8266 RTOS中的FreeRTOS相关函数的主要内容,如果未能解决你的问题,请参考以下文章

ESP8266的RTOS版本ota在线升级基本流程及备忘

乐鑫esp8266学习rtos3.0笔记:分享在 esp8266 C SDK如何通过外部写入参数,程序里面实现动态获取参数。

乐鑫esp8266学习rtos3.0笔记:分享在 esp8266 C SDK如何通过外部写入参数,程序里面实现动态获取参数。

乐鑫esp8266学习rtos3.0笔记:分享在 esp8266 C SDK如何通过外部写入参数,程序里面实现动态获取参数。

ESP8266 SDK开发: 开发环境搭建(NONOS 2.2.0)

28-ESP8266 SDK开发基础入门篇--编写TCP 客户端程序(官方API版,非RTOS版)