您的位置:首页 > 健康 > 美食 > 南昌网站建设优化公司排名_微信公众帐号开发_搜索引擎营销的五大特点_百度搜索

南昌网站建设优化公司排名_微信公众帐号开发_搜索引擎营销的五大特点_百度搜索

2024/10/5 13:06:26 来源:https://blog.csdn.net/m0_51319492/article/details/142454615  浏览:    关键词:南昌网站建设优化公司排名_微信公众帐号开发_搜索引擎营销的五大特点_百度搜索
南昌网站建设优化公司排名_微信公众帐号开发_搜索引擎营销的五大特点_百度搜索

FreeRTOS-任务查询及延时函数

  • 下面是一些FreeRTOS任务状态查询及运行时间统计的API函数
uxTaskPriorityGet();			//获取任务优先级
vTaskPrioritySet();				//设置任务优先级
uxTaskGetNumberOfTasks();		//获取系统中任务的数量
uxTaskGetSystemState();			//获取所有任务状态信息
vTaskGetInfo();					//获取指定单个的任务信息
xTaskGetCurrentTaskHandle();	//获取当前任务的任务句柄
xTaskGetHandle();				//根据任务名获取该任务的任务句柄
uxTaskGetStackHighWaterMark();	//获取任务的任务栈历史剩余最小值
eTaskGetState();				//获取任务状态
vTaskList();					//以表格形式获取所有任务的信息
vTaskGetRunTimeStats();			//获取任务的运行时间
  • 获取任务优先级
#define INCLUDE_uxTaskPriorityGet		1//宏置1
UBaseType_t uxTaskPriorityGet(const TaskHandle_t xTask);			//获取任务优先级  形参:任务句柄 NULL表示自身	返回值:整数 任务优先级数值
  • 设置任务优先级
#define INCLUDE_vTaskPrioritySet		1//宏置1
void vTaskPrioritySet(TaskHandle_t xTask,UBaseType_t uxNewPriority);			//设置任务优先级  形参:任务句柄 NULL表示自身	 需要设置的任务优先级
  • 获取系统任务数量
UBaseType_t uxTaskGetNumberOfTasks();		//获取系统中任务的数量
//返回值 系统中任务的的数量
  • 获取所有任务信息
UBaseType_t uxTaskGetSystemState(TaskStatus_t* const pxTaskStatusArray,const UBaseType_t uxArraySize,configRUN_TIME_COUNTER_TYPE*const pulTotalRunTime);			//获取所有任务状态信息
//形参:指向TaskStatus_t结构体数组首地址  接收信息的数组大小  系统运行总时间
//返回值:获取信息的任务数量
  • 获取单个任务的状态信息
#define configUSE_TRACE_FACILITY		1//宏置1
void vTaskGetInfo(TaskHandle_t xTask,TaskStatus_t* pxTaskStatus,BaseType_t	xGetFreeStackSpace,eTaskState eState);					//获取指定单个的任务信息
//形参:指定获取信息的任务句柄	接收任务信息的变量		任务栈历史剩余最小值		任务状态
  • 获取当前任务的任务句柄
#define INCLUDE_xTaskGetCurrentTaskHandle  1//宏置1
TaskHandle_t xTaskGetCurrentTaskHandle()//获取当前任务句柄
//返回值:当前任务句柄
  • 根据任务名获取该任务的任务句柄
#define INCLUDE_xTaskGetHandle  1//宏置1
TaskHandle_t xTaskGetHandle(const char* pcNameToQuery);				//根据任务名获取该任务的任务句柄
//形参:任务名  返回值:任务句柄
  • 获取任务的任务栈历史剩余最小值
  • 当你获取到剩余最小值很小时,说明快要溢出,需要加大
#define INCLUDE_uxTaskGetStackHighWaterMark  1//宏置1
UBaseType_t uxTaskGetStackHighWaterMark(TaskHandle_t xTask);	//获取任务的任务栈历史剩余最小值
//形参:任务句柄		返回值:任务栈的历史剩余最小值
  • 获取任务运行状态
  • 任务状态:0表示运行态
#define INCLUDE_eTaskGetState		1//宏置1
eTaskState eTaskGetState(TaskHandle_t xTask)//获取任务运行状态
//形参:任务句柄		返回值:任务状态
  • 以表格形式获取任务状态信息
  • 主要获取的内容有:Name(任务名)、State(任务状态信息BRSD)、Priority(任务优先级)、Stack(堆栈历史最小剩余大小)、Num(任务编号)
#define configUSE_TRACE_FACILITY 1;
#define config_STATS_FORMATTING_FUNCTIONS	1;//宏置1
void vTaskList(char* pcWriteBuffer);					//以表格形式获取所有任务的信息
//形参:接收任务的缓存指针
  • 统计任务运行时间
  • 会获取到任务的Task(任务名称)、Abs Time(任务实际运行的总时间)、%Time(占总时间的百分比)
#define configGENERATE_RUN_TIME_STAT 1;
#define portCONFIGURE_TIMER_FOR_RUNTIME_STATE()		function;//初始化时基定时器,其精度需要高于系统时钟节拍的10-100倍
#define portGET_RUN_TIME_COUNTER_VALUE()		function//用于获取该功能时基硬件定时器计数的计数值
#define configUSE_STATS_FORMATTING_FUNCTIONS 1;//宏置1
void vTaskGetRunTimeStats(char* pcWriteBuffer);			//获取任务的运行时间
//形参:缓存指针
  • 在FreeRTOS中存在两个延时函数
vTaskDelay();//相对延时:每次延时都是从执行函数vTaskDelay()开始,进入阻塞态,直到延时指定的时间结束
xTaskDelayUntil();//绝对延时:将整个任务的运行周期看成一个整体,适用于需要按照一定比例频率运行的任务

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com