UCOSii 查看MCU使用率实现过程

本文介绍如何在uC/OS-II系统中配置和监测CPU使用率,包括设置必要的宏定义、调用初始化函数及统计任务的创建过程。通过实际代码示例,帮助读者理解实现步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.youkuaiyun.com/zhanglianpin/article/details/6326752

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值