1.这个任务能够统计总的CPU使用率(0到100%),每个任务的CPU使用率( 0到100%),每个任务的堆栈使用量。
2.统计任务在uC/OS-III中是可选的,当设置OS_CFG.H中的OS_CFG_STAT_TASK_EN为1时,统计任务的代码会被包含在程序中。当然, 统计任务的优先级和它的任务堆栈大小在OS_CFG_APP.H中配置。
3.最好在main()中只创建的一个任务,通常叫做AppTaskStat(),当使能了统计任务时,就必须在AppTaskStat任务中首先调用OSStatTaskCPUUsageInit()。如列表5-5所示。在调用OSStart()之前,用户的启动代码只能创建一个任务,而是由这个任务创建其它任务。

( 1). CPU进入main()函数中。
( 2) .main()函数调用OSInit()初始化uC/OS-III。假定在OS_CFG_APP.H中设置OS_CFG_STAT_TASK_EN为1, 使能统计任务。通过uC/OS-III返回的错误代号检测系统初始化是否成功。
( 3).创建一个叫做AppTaskStart()的任务。创建这个任务的时候,给它一个相当高的优先级(不要用优先级0,因为这是为uC/OS-III保留的)。
uC/OS-III允许用户在调用OSStart()之前创建任意个任务。然而,当用到统计任务统计CPU的使用率时,调用OSStart()之前只能创建一个任务。
( 4).调用OSStart(),让uC/OS-III开始运行优先级最高的任务,根据例子,这个任务是AppTaskStart()。在这个时候,已经有五个任务被创建了: OS_IdleTask(), OS_TickTask(), OS_StatTask(),OS_TaskTmr(), AppTaskStart()。
( 5).这个任务应该先设置和开启时基中断,初始化用于时基时钟的硬件定时器, 设置其中断的速率。( 编译时设置OS_CFG_APP.H中的OS_CFG_STAT_TASK_RATE)。另外, Micrium提供的例子工程中包含了基本的板级支持包BSP。 BSP初始化了CPU很多方面的也包括uC/OS-III需要的周期时间源。如果需要,用户可以在开启任务中调用BSP_Init()初始化BSP服务。
( 6). 调用OSStatTaskCPUUsageInit()。 当没有其它应用任务运行时,经过1/OS_CFG_STAT_TASK_RATE秒后OSStatTaskCtr的计数值就是OSStatTaskCtr的最大值,它意味着CPU的空闲时的工作速率。
( 7).然后在AppTaskStart()创建其它的应用任务。

10.6-uC/OS-III内部任务(统计任务 OS_StatTask())的更多相关文章

  1. uc/os iii移植到STM32F4---IAR开发环境

    也许是先入为主的原因,时钟用不惯Keil环境,大多数的教程都是拿keil写的,尝试将官方的uc/os iii 移植到IAR环境. 1.首先尝试从官网上下载的官方移植的代码,编译通过,但是执行会报堆栈溢 ...

  2. uC/OS - III 移植 IAR平台

    关于移植uC/OS-III 网上已经有很多教程了此处只是做个记录 首先下载源码然后解压得到下面的文件: 然后在模版工程里新建各种文件夹: 最后全部都添加进工程: OK了,编译一下,惊呆了,竟然 0错误 ...

  3. uC/OS II原理分析及源码阅读(一)

    uC/OS II(Micro Control Operation System Two)是一个可以基于ROM运行的.可裁减的.抢占式.实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,是和 ...

  4. 【原创】uC/OS II 任务切换原理

    今天学习了uC/OS II的任务切换,知道要实现任务的切换,要将原先任务的寄存器压入任务堆栈,再将新任务中任务堆栈的寄存器内容弹出到CPU的寄存器,其中的CS.IP寄存器没有出栈和入栈指令,所以只能引 ...

  5. 基于μC/OS—III的CC1120驱动程序设计

    基于μC/OS—III的CC1120驱动程序设计 时间:2014-01-21 来源:电子设计工程 作者:张绍游,张贻雄,石江宏 关键字:CC1120   嵌入式操作系统   STM32F103ZE   ...

  6. 【小梅哥SOPC学习笔记】NIOS II处理器运行UC/OS II

    SOPC开发流程之NIOS II 处理器运行 UC/OS II 这里以在芯航线FPGA学习套件的核心板上搭建 NIOS II 软核并运行 UCOS II操作系统为例介绍SOPC的开发流程. 第一步:建 ...

  7. 在STM32F401上移植uC/OS的一个小问题 [原创]

    STM32F401xx是意法半导体新推出的Cortex-M4内核的MCU,相较于已经非常流行的STM32F407xx和STM32F427xx等相同内核的MCU而言,其特点是功耗仅为128uA/MHz, ...

  8. uc/os 任务删除

    问题描述:     uc/os 任务删除 问题解决: uc/os任务删除流程图 具体代码 注:     如上是关中断,以及取消优先级对应的就绪标志 关中断代码为: 取消就绪标志,实际上是将就绪表中指定 ...

  9. uc/os任务创建

    问题描述:      uc/os中任务创建 问题解决: 创建一个任务,任务从无到有.任务创建函数分两种, 一种是基本的创建函数OSTaskCreate, 另一种是扩展的任务创建函数OSTaskCrea ...

  10. uC/OS 的任务调度解析 (转)

    uC/OS 的任务调度解析 1.任务调度器启动之后(初始化,主要是TCB的初始化),就可以创建任务,开始任务调度了,实际上第一个任务准确的说不是进行任务切换,而是进行启动当前最高优先级任务.uC/OS ...

随机推荐

  1. 极速打包【shell版】

    同步发表至 http://avenwu.github.io/2014/12/16/fast_apk_release/ 前言 前阵子无意间看到美团的技术文章,一口气读了几篇java.android相关的 ...

  2. centos7 修改root密码方式

    1 - 在启动grub菜单,选择编辑选项启动 2 - 按键盘e键,来进入编辑界面 3 - 找到Linux 16的那一行,将ro改为rw init=/sysroot/bin/sh 4 - 现在按下 Co ...

  3. [PHP] 03 - Form & Input

    PHP 完整表单实例 一.表单示范 二.对应代码 <!DOCTYPE HTML> <html> <head> <meta charset="utf- ...

  4. 【代码审计】QYKCMS_v4.3.2 前台存储型XSS跨站脚本漏洞分析

      0x00 环境准备 QYKCMS官网:http://www.qykcms.com/ 网站源码版本:QYKCMS_v4.3.2(企业站主题) 程序源码下载:http://bbs.qingyunke. ...

  5. SpringBoot(十四)-- 整合Swagger2

    1.pom依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-s ...

  6. Sysfs文件系统接口调试

    首先需要初始化操作: s32 gtp_sysfs_init(void) { s32 ret ; debug_kobj = kobject_create_and_add("gtp", ...

  7. C#利用反射实现两个类的对象之间相同属性的值的复制

    http://blog.csdn.net/u013093547/article/details/53584591 今天在拷贝对象的时候,看着代码实在是有点烦,一堆一样的代码,还是找找有没有直接反射拷贝 ...

  8. VS2017 配置ImageMagick

    以下配置仅供参考,我配置完了怎样都用不了... 直接下载源码使用VS进行编译. 源码下载地址:http://imagemagick.org/script/install-source.php#wind ...

  9. iOS - 标准时间与时间戳相互转换

    做倒计时后台传的不是时间戳,是时间然后需要与系统时间对比得出时间戳进行倒计时显示 #pragma mark -- 倒计时 // 倒计时时间 NSString* timeStr = task.recei ...

  10. mysql的安装和配置

    1.mydql的安装 重装wind7系统之后,mysql软件自动卸载了.现在学习需要使用mysql,还是要安装mysql.我首先通过下载安装包的方式安装,按照教程,但是出现缺失.dll文件,我下载安装 ...