当前位置: 首页 > news >正文

书店网页设计图片免费seo网站优化

书店网页设计图片,免费seo网站优化,专门做金融培训的网站有哪些,wordpress跳过广告插件1、FreeRTOS任务相关API函数 函数描述uxTaskPriorityGet()查询某个任务的优先级vTaskPrioritySet()改变某个任务的任务优先级uxTaskGetSystemState()获取系统中任务状态vTaskGetInfo()获取某个任务信息xTaskGetApplicationTaskTag()获取某个任务的标签(Tag)值xTaskGetCurrentT…

1、FreeRTOS任务相关API函数

函数描述
uxTaskPriorityGet()查询某个任务的优先级
vTaskPrioritySet()改变某个任务的任务优先级
uxTaskGetSystemState()获取系统中任务状态
vTaskGetInfo()获取某个任务信息
xTaskGetApplicationTaskTag()获取某个任务的标签(Tag)值
xTaskGetCurrentTaskHandle()获取当前正在运行的任务的任务句柄
xTaskGetHandle()根据任务名字查找某个任务的句柄
xTaskGetIdleTaskHandle()获取空闲任务的任务句柄
uxTaskGetStackHighWaterMark()获取任务的堆栈的历史剩余最小值,FreeRTOS 中叫做“高 水位线”
eTaskGetState()获取某个任务的壮态,这个壮态是 eTaskState 类型
pcTaskGetName()获取某个任务的任务名字
xTaskGetTickCount()获取系统时间计数器值
xTaskGetTickCountFromISR()在中断服务函数中获取时间计数器值
xTaskGetSchedulerState()获取任务调度器的壮态,开启或未开启
uxTaskGetNumberOfTasks()获取当前系统中存在的任务数量
vTaskList()以一种表格的形式输出当前系统中所有任务的详细信 息
vTaskGetRunTimeStats()获取每个任务的运行时间
vTaskSetApplicationTaskTag()设置任务标签(Tag)值。
SetThreadLocalStoragePointer()设置线程本地存储指针
GetThreadLocalStoragePointer()获取线程本地存储指针

2、任务相关API函数的使用

        使用每个API函数的时候,都右键转到定义位置,如下图:

        然后查看函数的使用条件,比如这个函数要使用的话必须将宏 INCLUDE_uxTaskPriorityGet 置1;

        然后以同样的操作转到这个宏的位置将其置1。然后再开始调用API函数

        如下为几个常用API函数的使用:

	uint8_t i=0;UBaseType_t priority_num=0;UBaseType_t task_num=0;UBaseType_t task_num2=0;TaskStatus_t * status_array=0;TaskStatus_t * status_array2=0;TaskHandle_t task_handle=0;UBaseType_t task_stack_min=0;eTaskState task_state=0;char pcWriteBuffer[300];//获取任务优先级priority_num = uxTaskPriorityGet( task2_handler );printf("task2的任务优先级=%ld\r\n",priority_num);//设置任务优先级vTaskPrioritySet( task2_handler,6 );priority_num = uxTaskPriorityGet( task2_handler );printf("task2的任务优先级=%ld\r\n",priority_num);//获取系统任务数量task_num = uxTaskGetNumberOfTasks();printf("系统任务数量=%ld\r\n",task_num);//获取系统所有任务的任务状态信息status_array=pvPortMalloc(sizeof(TaskStatus_t)*task_num);task_num2 = uxTaskGetSystemState(status_array,task_num,NULL);printf("任务名\t\t任务优先级\t\t任务编号\r\n");for(i=0;i<task_num2;i++){printf("%s\t\t%ld\t%ld\r\n",status_array[i].pcTaskName,status_array[i].uxCurrentPriority,status_array[i].xTaskNumber);}//获取指定任务的任务状态status_array2=pvPortMalloc(sizeof(TaskStatus_t));vTaskGetInfo(task2_handler,status_array2,pdTRUE,eInvalid);printf("任务名:%s\r\n",status_array2->pcTaskName);printf("任务优先级:%ld\r\n",status_array2->uxCurrentPriority);printf("任务编号:%ld\r\n",status_array2->xTaskNumber);printf("任务状态:%d\r\n",status_array2->eCurrentState);//根据任务名获取任务句柄task_handle = xTaskGetHandle("task2");printf("任务句柄为:%#x\r\n",(int)task_handle);printf("任务句柄为:%#x\r\n",(int)task2_handler);//查询某个任务的运行状态task_state = eTaskGetState(task2_handler);printf("task2的任务状态为%d\r\n",task_state);//获取系统中任务信息vTaskList(pcWriteBuffer);printf("%s\r\n",pcWriteBuffer);

3、任务时间统计API函数 vTaskGetRunTimeStats()

void vTaskGetRunTimeStats( char *pcWriteBuffer )

        该函数与获取系统任务信息类似,参数是一个数组用来存放任务信息。如下代码是统计系统任务的运行时间并打印出来。

void task2( void * pvParameters )
{u8 key=0;while(1){key=KEY_Scan(0);if(key==KEY1_PRES){vTaskGetRunTimeStats(pcWriteBuffer);printf("任务名\t\t\t运行时间\t运行所占百分比\r\n");printf("%s\r\n",pcWriteBuffer);}vTaskDelay(100);}
}

        使用该函数需要注意的点:

        1、需要将宏 configGENERATE_RUN_TIME_STATS 置1;

        2、需要将宏 configUSE_STATS_FORMATTING_FUNCTIONS 置1;

        3、在将1完成后需要实现 portCONFIGURE_TIMER_FOdR_RUN_TIME_STATS() 宏和 portGET_RUN_TIME_COUNTER_VALUE() 宏;

        portCONFIGURE_TIMER_FOdR_RUN_TIME_STATS() 用来初始化用于配置任务运行时间统计的时基定时器,时基定时器的精度必须高于系统时钟节拍精度的10到100倍。系统时钟节拍如果是1ms,时基定时器节拍就得在10us到100us之间。

        portGET_RUN_TIME_COUNTER_VALUE() 用于获取定时器计数的计数值。

         定时器使用stm32的内部定时器3,在 ConfigureTimeForRunTimeStats() 中初始化定时器并配置为每10us中断一次,然后在中断服务函数中将 FreeRTOSRunTimeTicks++,从而达到计时的目的。宏的实现如下代码:

timer.c:

#include "timer.h"
#include "led.h"
#include "led.h"
#include "usart.h"volatile unsigned long long FreeRTOSRunTimeTicks;//初始化TIM3使其为FreeRTOS的时间统计提供时基
void ConfigureTimeForRunTimeStats(void)
{//定时器3初始化,定时器时钟为72M,分频系数为72-1,所以定时器3的频率//为72M/72=1M,自动重装载为10-1,那么定时器周期就是10usFreeRTOSRunTimeTicks=0;TIM3_Int_Init(10-1,72-1);	//初始化TIM3
}//通用定时器3中断初始化
//这里时钟选择为APB1的2倍,而APB1为36M
//arr:自动重装值。
//psc:时钟预分频数
//这里使用的是定时器3!
void TIM3_Int_Init(u16 arr,u16 psc)
{TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //时钟使能//定时器TIM3初始化TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值	TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割:TDTS = Tck_timTIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据指定的参数初始化TIMx的时间基数单位TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE ); //使能指定的TIM3中断,允许更新中断//中断优先级NVIC设置NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;  //TIM3中断NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 4;  //先占优先级4级NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;  //从优先级0级NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能NVIC_Init(&NVIC_InitStructure);  //初始化NVIC寄存器TIM_Cmd(TIM3, ENABLE);  //使能TIMx					 
}//定时器3中断服务函数
void TIM3_IRQHandler(void)
{if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET) //溢出中断{FreeRTOSRunTimeTicks++;}TIM_ClearITPendingBit(TIM3,TIM_IT_Update);  //清除中断标志位
}

timer.h:

#ifndef __TIMER_H
#define __TIMER_H
#include "sys.h" void ConfigureTimeForRunTimeStats(void);
extern volatile unsigned long long FreeRTOSRunTimeTicks;
void TIM3_Int_Init(u16 arr,u16 psc);
void TIM5_Int_Init(u16 arr,u16 psc);
#endif
http://www.hkea.cn/news/49573/

相关文章:

  • 网站站群建设方案知名网页设计公司
  • 广州网站建设公司哪家好专业的seo搜索引擎优化培训
  • 外国人做汉字网站seo搜索排名影响因素主要有
  • 外贸五金网站建设网站制作优化排名
  • 义乌网站建设多少钱网络平台营销
  • 怀仁有做网站的公司吗磁力搜索引擎2023
  • 建站行业都扁平化设计合肥网站推广公司哪家好
  • 做企业网站织梦和wordpress哪个好百度指数查询工具app
  • 郑州网站服务公司优化神马排名软件
  • 茶叶网站建设的优势南宁seo外包平台
  • 高古楼网站 做窗子北京seo技术交流
  • 南阳建设网站制作网络最有效的推广方法
  • 纯静态网站seoseo排名优化北京
  • 开封网站建设哪家好指数计算器
  • 网站开发 架构石家庄seo关键词排名
  • 可以免费做商业网站的cms百度seo霸屏软件
  • 哪家网站建设专业快速建站教程
  • 坪山网站建设行业现状优化seo方案
  • 做网站需要架构师吗网站平台有哪些
  • 网站建设丿选择金手指15凡科建站官网
  • 可以做外国网站文章武汉企业seo推广
  • 天津网站建设公司最好太原做网站哪家好
  • 网站代下单怎么做百度指数数据分析平台入口
  • 淘宝做动效代码的网站seo的优化方向
  • 番禺建网站公司网站搜索工具
  • 安徽万振建设集团网站长春网站推广公司
  • 网站怎么制作 推广seo超级外链工具免费
  • 中小学网站建设探讨东莞seo整站优化火速
  • php是网站开发的语言吗企业网站的作用
  • 网站站外优化怎么做企业推广app