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. mongodb查询数据库中某个字段中的值包含某个字符串的方法

    正则表达式最能解决: 例如: db.getCollection(.*$/}) 这里主要是注意正则表达式要写对,该转义的注意转义,否则报错.

  2. A股ROE连续3年超过15%的股票排名

    R连续3年,12个季度的滚动ROE,都超过15%的股票排名,个股滚动ROE = 最近4个季度的归母净利润 / ((期初归母净资产 + 期末归母净资产) / 2). 查看更多ROE连续3年超过15%的股 ...

  3. word中替换【换行符】与【回车符】

  4. 【代码审计】XYHCMS V3.5任意文件删除漏洞分析

      0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ...

  5. 【死磕jeesite源码】Jeesite配置定时任务

    一.主要是注意XML文件中设置3个地方和类文件中配置 第一步配置: 第二步配置:注解扫描 第三步配置:开启任务 类中注解配置:如下 @Service 或者Component @Lazy(false) ...

  6. ORM正向和反向查询

    表结构 from django.db import models # Create your models here.class Publisher(models.Model): id = model ...

  7. Jenkins Docker安装及Docker build step插件部署配置

    生产部署环境:A:192.168.1.2 B:192.168.1.3  两台服务器系统均是Centos 7.3 , Docker版本都1.12.6 Jenkins安装操作步骤: 1.在A服务器上使用命 ...

  8. Oracle客户端的安装与远程连接配置

    在继续Oracle客户端的安装之前,需要分析一下Oracle客户端与数据库服务器之间的连接机制. 一.Oracle客户端与服务器端的通讯机制 1.Oracle Net协议 如下图所示,Oracle通过 ...

  9. tensorflow的variable的eval()和read_eval()有什么不同

    eval()返回的数值标量 read_eval()返回的是这个变量的tensor,类型是read 直接上代码: def tensoflow_test(): t = tf.Variable(initia ...

  10. 手把手教你用Spring Cloud和Docker构建微服务

    什么是Spring Cloud? Spring Cloud 是Pivotal提供的用于简化分布式系统构建的工具集.Spring Cloud引入了云平台连接器(Cloud Connector)和服务连接 ...