一种基于FreeRTOS的CPU使用率测算方法及原理介绍
时间:11-13
来源:互联网
点击:
void EndIdleMonitor(void)
{
if( xTaskGetCurrentTaskHandle() ==xIdleHandle ) //如果是从空闲任务切出
{
/* Store the handle to the idle task. */
osCPU_IdleSpentTime =xTaskGetTickCountFromISR() - osCPU_IdleStartTime; //计算此次空闲任务花费多长时间
osCPU_TotalIdleTime += osCPU_IdleSpentTime;//空闲任务所占时间进行累加
}
}
这两个函数是调度器钩子函数,在调度器进行任务切进和切出时分别回调,StartIdleMonitor()函数记录切换到空闲任务时的时间点,EndIdleMonitor()则在推出空闲任务时计算此次空闲任务花费多长时间,并累加到osCPU_TotalIdleTime,即空闲任务总共占用的时间片。
uint16_t osGetCPUUsage(void)
{
return (uint16_t)osCPU_Usage; //直接返回全局变量osCPU_Usage,即CPU使用率
}
全局变量osCPU_Usage保存的就是CPU的使用率,它是在操作系统的tick钩子函数中每隔1000个tick就被重新计算一次。
4 结论
通过此方法可以用来评估STM23 MCU的运行性能。
FreeRTOSCPU使用 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)