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

做网站学习什么网站开发视频压缩上传

做网站学习什么,网站开发视频压缩上传,源码论坛网站,wordpress加支付文章目录 09. FreeRTOS时间片调度与任务相关函数1. FreeRTOS时间片调度2. 任务状态查询API函数3. 任务时间统计API函数 09. FreeRTOS时间片调度与任务相关函数 1. FreeRTOS时间片调度 时间片调度简介#xff1a; 时间片调度实验流程#xff1a; 核心代码#xff1a; 开… 文章目录 09. FreeRTOS时间片调度与任务相关函数1. FreeRTOS时间片调度2. 任务状态查询API函数3. 任务时间统计API函数 09. FreeRTOS时间片调度与任务相关函数 1. FreeRTOS时间片调度 时间片调度简介 时间片调度实验流程 核心代码 开始任务函数 void start_task(void* pvParamter) {taskENTER_CRITICAL(); // 进入临界区 xTaskCreate((TaskFunction_t ) task1, //指向任务函数的指针(char * ) task1, //任务名称(configSTACK_DEPTH_TYPE) TASK1_TASK_STACK_SIZE, //任务堆栈大小,字节为单位(void * ) NULL, //传递给任务函数的参数(UBaseType_t ) TASK1_TASK_PRIO, //任务优先级(TaskHandle_t * ) task1_task_handler //任务句柄任务控制块);xTaskCreate((TaskFunction_t ) task2, //指向任务函数的指针(char * ) task2, //任务名称(configSTACK_DEPTH_TYPE) TASK2_TASK_STACK_SIZE, //任务堆栈大小,字节为单位(void * ) NULL, //传递给任务函数的参数(UBaseType_t ) TASK2_TASK_PRIO, //任务优先级(TaskHandle_t * ) task2_task_handler //任务句柄任务控制块); vTaskDelete(NULL);taskEXIT_CRITICAL(); // 退出临界区 }任务1函数 void task1(void* pvParamter) {uint32_t task1_num 0;while(1){taskENTER_CRITICAL();printf(task1正在运行!!!%d\r\n,task1_num);taskEXIT_CRITICAL(); delay_ms(10); } }任务2函数 void task2(void* pvParamter) {uint32_t task2_num 0;while(1){taskENTER_CRITICAL();printf(task2正在运行!!!%d\r\n,task2_num);taskEXIT_CRITICAL(); delay_ms(10); } }实验结果 2. 任务状态查询API函数 函数描述uxTaskPriorityGet()获取任务优先级vTaskPrioritySet()设置任务优先级uxTaskGetNumberOfTasks()获取系统中任务的数量uxTaskGetSystemState()获取所有任务状态信息vTaskGetInfo()获取指定单个的任务信息xTaskGetCurrentTaskHandle()获取当前任务的任务句柄xTaskGetHandle()根据任务名获取该任务的任务句柄uxTaskGetStackHighWaterMark()获取任务的任务栈历史剩余最小值eTaskGetState()获取任务状态vTaskList()以“表格”形式获取所有任务的信息vTaskGetRunTimeStats()获取任务的运行时间 uxTaskPriorityGet()函数 函数解释 代码实现 //1.查询任务的优先级 UBaseType_t priority_num 0; priority_num uxTaskPriorityGet(task1_task_handler); printf(1.任务1的任务优先级为%ld\r\n\n, priority_num);实验结果 vTaskPrioritySet()函数 函数解释 代码实现 //2.设置任务的优先级 vTaskPrioritySet(task2_task_handler,30); priority_num uxTaskPriorityGet(task2_task_handler); printf(2.任务2的任务优先级为%ld\r\n\n, priority_num);实验结果 uxTaskGetNumberOfTasks() 函数 函数解释 代码实现 //3.获取任务的数量 UBaseType_t task_num 0; task_num uxTaskGetNumberOfTasks(); printf(3.当前的任务数量为%ld\r\n\n, task_num);实验结果 uxTaskGetSystemState()函数 函数解释 代码实现 //4.获取所有任务的状态信息 UBaseType_t task_num2 0; TaskStatus_t * status_array 0; uint8_t i 0; status_array mymalloc(SRAMIN,sizeof(TaskStatus_t *) * task_num); task_num2 uxTaskGetSystemState( status_array,task_num, NULL);for(i 0;i task_num2; i) {printf(4.%d 任务名%s \r\n, i1, status_array[i].pcTaskName);printf(4.%d 当前任务优先级%ld \r\n, i1, status_array[i].uxCurrentPriority);printf(4.%d 任务编号%ld \r\n, i1, status_array[i].xTaskNumber); } printf(\n);实验结果 vTaskGetInfo()函数 函数解释 代码实现 //5.获取单个任务的状态信息 TaskStatus_t * status_array2 0; status_array2 mymalloc(SRAMIN,sizeof(TaskStatus_t *)); vTaskGetInfo(task2_task_handler, status_array2, pdTRUE, eInvalid); printf(5.任务名:%s\r\n, status_array2-pcTaskName); printf(5.当前任务优先级%ld\r\n, status_array2-uxCurrentPriority); printf(5.任务编号%ld\r\n, status_array2-xTaskNumber); printf(5.任务状态%d\r\n\n, status_array2-eCurrentState);实验结果 xTaskGetCurrentTaskHandle()函数 函数解释 代码实现 实验结果 xTaskGetHandle()函数 函数解释 代码实现 //6.获取任务句柄 TaskHandle_t task_handle 0; task_handle xTaskGetHandle(task1); printf(6.任务句柄%#x\r\n, (int)task_handle); printf(6.task的任务句柄%#x\r\n\n, (int)task1_task_handler);实验结果 uxTaskGetStackHighWaterMark()函数 函数解释 代码实现 //7.获取指定任务的任务栈历史最小剩余堆栈 UBaseType_t task_stack_min 0; task_stack_min uxTaskGetStackHighWaterMark(task2_task_handler); printf(7.task2历史剩余最小堆栈为%ld\r\n\n, task_stack_min);实验结果 eTaskGetState()函数 函数解释 代码实现 //8.查询任务的运行状态 eTaskState task_status 0; task_status eTaskGetState(task2_task_handler); printf(8.当前task2的运行状态为%d\r\n\n, task_status);实验结果 vTaskList()函数 函数解释 代码实现 //9.以表格形式获取系统中任务的信息 char task_buff[300]; vTaskList(task_buff); printf(9.\r\n); printf(%s\r\n\n, task_buff);实验结果 3. 任务时间统计API函数 vTaskGetRunTimeStats()函数 函数解释 代码实现 任务中实现 while(1) {key key_scan(0);if(key KEY0){vTaskGetRunTimeStats(task_buff);printf(%s\r\n, task_buff);}vTaskDelay(10); }FreeRTOSConfig.h文件 /* 运行时间和任务状态统计相关定义 */ #define configGENERATE_RUN_TIME_STATS 1 // 1: 使能任务运行时间统计功能, 默认: 0 #if configGENERATE_RUN_TIME_STATS #include ./BSP/TIMER/btim.h #define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() ConfigureTimeForRunTimeStats() extern uint32_t FreeRTOSRunTimeTicks; #define portGET_RUN_TIME_COUNTER_VALUE() FreeRTOSRunTimeTicks #endif #define configUSE_TRACE_FACILITY 1 // 1: 使能可视化跟踪调试, 默认: 0 #define configUSE_STATS_FORMATTING_FUNCTIONS 1 // 1: configUSE_TRACE_FACILITY为1时会编译vTaskList()和vTaskGetRunTimeStats()函数, 默认: 0 btim.c文件 //定义变量FreeRTOSRunTimeTicks uint32_t FreeRTOSRunTimeTicks;/*时基定时器初始化*/ void ConfigureTimeForRunTimeStats() {btim_tim6_int_init(10-1, 720-1); //10us中断一次FreeRTOSRunTimeTicks 0; }/*定时器6中断初始化*/ void btim_tim6_int_init(uint16_t psc, uint16_t per) {g_tim6_handle.Instance TIM6;g_tim6_handle.Init.Prescaler psc;g_tim6_handle.Init.Period per;HAL_TIM_Base_Init(g_tim6_handle);//使能更新中断并启动计数器HAL_TIM_Base_Start_IT(g_tim6_handle); }/*定时器6中断服务函数*/ void TIM6_IRQHandler() {//处理基本定时器中断事件HAL_TIM_IRQHandler(g_tim6_handle); }/*定时器溢出中断回调函数*/ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {if (htim-Instance TIM6){FreeRTOSRunTimeTicks;}}定时器程序运行流程 实验结果
http://www.w-s-a.com/news/261488/

相关文章:

  • 网站开发 成都广水网站设计
  • 音乐网站建设目标合同管理系统
  • jq网站特效插件如何知道网站是否被k
  • 自己的网站怎么接广告网站搭建收费
  • 宁波大型网站制作建立一个网站 优帮云
  • 大连零基础网站建设教学电话有哪些比较好的做ppt好的网站
  • 哪个网站做logo设计我的建筑网
  • php电子商务网站开发沂源手机网站建设公司
  • html和php做网站哪个好3gcms企业手机网站整站源码asp
  • 网站建设网页设计案例云南建设厅网站删除
  • 杏坛网站制作太原做网站要多少钱呢
  • 做新闻类网站还有市场吗东莞黄页网广告
  • 地方网站做外卖专业做互联网招聘的网站有哪些
  • 网站推广公司兴田德润紧急网页升级紧急通知
  • 厦门做网站哪家强企业网站网页设计的步骤
  • 普拓网站建设济南行业网站建设
  • 燕郊 网站开发网站里的地图定位怎么做
  • 门户网站建设招标互联网创业项目概述
  • 用什么做网站比较好市场调研公司是做什么的
  • 电商网站充值消费系统绍兴网站优化
  • 深圳网站建设公司联虚拟币交易网站开发
  • 专业网站设计建设公司抖音代运营公司排名前十强
  • 做网站架构肃北蒙古族自治县建设局网站
  • 推广网站怎么建经济研究院网站建设方案
  • 网站建设商家淘宝客自建网站做还是用微信qq做
  • django做网站效率高吗涉县移动网站建设报价
  • 做外贸网站注册什么邮箱能够做渗透的网站
  • 购物网站 怎么做织梦网站会员功能
  • 北京市网站开发公司郑州联通网站备案
  • 温岭专业营销型网站建设地址wordpress小程序怎么不用认证审核