UCOSii 查看MCU使用率实现过程

来源:互联网 发布:mac怎么查看压缩文件 编辑:程序博客网 时间:2024/05/16 16:04

1.确定 OS_TASK_STAT_EN 为1 。

      OS_TASK_STAT_EN 在 os_cfg.h 文件中。

2. main()主函数中确保首先调用了函数OSInit()。

      因为OSInit()会调用 OS_InitTaskStat()函数。

      OS_InitTaskStat(),用创建统计任务,它是我们所需要的。

3.在一个用户任务中设置玩Systick后,手动调用 OSStatInit();

      因为OSStatInit()函数,负责初始化统计任务的各计数值。
4.将mcu 使用率值OSCPUUsage 串口打印输出或者显示输出等。
     OSCPUUsage是一个全局 unsigned char 变量,以百分比形式显示,CPU使用率。

以下举例:
1.确定 OS_TASK_STAT_EN 为1 。这个在文件os_cfg.h中查看一下就可以,不是1就设置为1。

 


2.main()主函数中确保首先调用了函数OSInit()。

      OSInit()会调用 OS_InitTaskStat()函数。

       可以进入OS_InitTaskStat()函数查看如何创建统计任务的。

3.在一个用户任务中设置玩Systick后,手动调用 OSStatInit();

      因为OSStatInit()函数,负责初始化统计任务的各计数值。
void main(void){/** 1. Initialize "uC/OS-II, The Real-Time Kernel" */        OSInit();  ///** 2. Create task */u32Result = OSTaskCreateExt(UserTask, NULL, \&gaTaskStkInit[TASK_STK_SIZE_INIT-1], TASK_PRI_INIT, TASK_PRI_INIT, \gaTaskStkInit, TASK_STK_SIZE_INIT, NULL, OS_TASK_OPT_STK_CLR);__enable_irq();/** 3. Start multitasking (i.e. give control to uC/OS-II) */    OSStart();}
static void UserTask(void* pArg){ int8u u8Err = B_ERR; RCC_ClocksTypeDef RCC_Clocks;
 SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK); RCC_GetClocksFreq(&RCC_Clocks); SysTick_Config(RCC_Clocks.HCLK_Frequency / 1000); 
 pArg = pArg;   
 //统计任务初始化 OSStatInit();
}

4.将mcu 使用率值OSCPUUsage 串口打印输出或者显示输出等

这个就不举例说明了。


具体原理可以参见:OSStatInit();  OS_InitTaskStat();函数

以及参见:张连聘老师的讲解 http://blog.csdn.net/zhanglianpin/article/details/6326752

0 0
原创粉丝点击