社交网站开发 转发,上海58同城官网,网站怎样绑定域名,网站建设中的图片1.FreeRTOS系统时钟节拍
FreeRTOS的系统时钟节拍计数器是全局变量xTickCount#xff0c;一般来源于系统的SysTick。在STM32F1中#xff0c;SysTick的时钟源是72MHz/89MHz#xff0c;如下代码#xff0c;RELOAD 9MHz/1000-1 8999#xff0c;所以时钟节拍是1ms。
portNV…1.FreeRTOS系统时钟节拍
FreeRTOS的系统时钟节拍计数器是全局变量xTickCount一般来源于系统的SysTick。在STM32F1中SysTick的时钟源是72MHz/89MHz如下代码RELOAD 9MHz/1000-1 8999所以时钟节拍是1ms。
portNVIC_SYSTICK_LOAD_REG ( configSYSTICK_CLOCK_HZ / configTICK_RATE_HZ ) - 1UL;系统节拍处理——SysTick_Handler中断过程
判断OS是否运行运行才可以启动正常调度屏蔽所有中断xTaskIncrementTick()处理系统节拍并决定是否进行任务切换 处理系统时钟节拍xTickCount 处理阻塞任务列表判断阻塞任务是否超时超时则切换为就绪若xTickCount溢出则调换阻塞状态列表 处理时间片调度切换至同一优先级的下一个任务只标记可能被高优先级打断开启所有中断
2.延时函数介绍 相对延时 vTaskDelay()指每次延时都是从执行函数vTaskDelay()开始直到延时指定的时间结束 绝对延时xTaskDelayUntil()指将整个任务的运行周期看成一个整体适用于需要按照一定频率运行的任务 中止任务延时xTaskAbortDelay()用于终止处于阻塞态任务的阻塞 (1)为任务主体也就是任务真正要做的工作 (2)是任务函数中调用vTaskDelayUntil()对任务进行延时 (3)为其他任务在运行
3.延时函数解析vTaskDelay()
进入延时调用vTaskDelay()此时将该任务移除就绪列表并添加到阻塞列表中解除延时在SysTick中断中判断阻塞时间是否到达如果到了就从阻塞列表移除添加到就绪列表