10.6-uC/OS-III内部任务(统计任务 OS_StatTask())
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())的更多相关文章
- uc/os iii移植到STM32F4---IAR开发环境
也许是先入为主的原因,时钟用不惯Keil环境,大多数的教程都是拿keil写的,尝试将官方的uc/os iii 移植到IAR环境. 1.首先尝试从官网上下载的官方移植的代码,编译通过,但是执行会报堆栈溢 ...
- uC/OS - III 移植 IAR平台
关于移植uC/OS-III 网上已经有很多教程了此处只是做个记录 首先下载源码然后解压得到下面的文件: 然后在模版工程里新建各种文件夹: 最后全部都添加进工程: OK了,编译一下,惊呆了,竟然 0错误 ...
- uC/OS II原理分析及源码阅读(一)
uC/OS II(Micro Control Operation System Two)是一个可以基于ROM运行的.可裁减的.抢占式.实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,是和 ...
- 【原创】uC/OS II 任务切换原理
今天学习了uC/OS II的任务切换,知道要实现任务的切换,要将原先任务的寄存器压入任务堆栈,再将新任务中任务堆栈的寄存器内容弹出到CPU的寄存器,其中的CS.IP寄存器没有出栈和入栈指令,所以只能引 ...
- 基于μC/OS—III的CC1120驱动程序设计
基于μC/OS—III的CC1120驱动程序设计 时间:2014-01-21 来源:电子设计工程 作者:张绍游,张贻雄,石江宏 关键字:CC1120 嵌入式操作系统 STM32F103ZE ...
- 【小梅哥SOPC学习笔记】NIOS II处理器运行UC/OS II
SOPC开发流程之NIOS II 处理器运行 UC/OS II 这里以在芯航线FPGA学习套件的核心板上搭建 NIOS II 软核并运行 UCOS II操作系统为例介绍SOPC的开发流程. 第一步:建 ...
- 在STM32F401上移植uC/OS的一个小问题 [原创]
STM32F401xx是意法半导体新推出的Cortex-M4内核的MCU,相较于已经非常流行的STM32F407xx和STM32F427xx等相同内核的MCU而言,其特点是功耗仅为128uA/MHz, ...
- uc/os 任务删除
问题描述: uc/os 任务删除 问题解决: uc/os任务删除流程图 具体代码 注: 如上是关中断,以及取消优先级对应的就绪标志 关中断代码为: 取消就绪标志,实际上是将就绪表中指定 ...
- uc/os任务创建
问题描述: uc/os中任务创建 问题解决: 创建一个任务,任务从无到有.任务创建函数分两种, 一种是基本的创建函数OSTaskCreate, 另一种是扩展的任务创建函数OSTaskCrea ...
- uC/OS 的任务调度解析 (转)
uC/OS 的任务调度解析 1.任务调度器启动之后(初始化,主要是TCB的初始化),就可以创建任务,开始任务调度了,实际上第一个任务准确的说不是进行任务切换,而是进行启动当前最高优先级任务.uC/OS ...
随机推荐
- debian系列下c++调用mysql, linux下面安装mysql.h文件
mysql.h的报错还没有解决,你们不用看了,等我解决了吧还不知道什么时候 先用c吧 #include <stdio.h> #include <stdlib.h> #inclu ...
- PHP最全笔记(三)(值得收藏,不时翻看一下)
/* [数组函数] *///统计计算count 计算数组中的单元数目或对象中的属性个数array_count_values 统计数组中所有的值出现的次数array_product ...
- ABBYY OCR技术教电脑阅读缅甸语(下)
文本行检测到之后,我们开始寻找单词和字母之间的间隙,这一次,我们运用了水平直方图,将大的间隙假设为单词之间的空隙,小的间隙理解为字母之间的空隙,检测缅甸文本中的空隙几乎没有出现问题,不像泰语,几乎没有 ...
- HTTPS与证书
HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息.它使用安全套接字层( ...
- Android使用Fragment实现TabHost效果
现在Fragment的应用真的是越来越广泛了,之前Android在3.0版本加入Fragment的时候,主要是为了解决Android Pad屏幕比较大,空间不能充分利用的问题,但现在即使只是在手机上, ...
- 【netcore入门】在Windows IIS上部署.NET Core 2.1项目
部署之前先检查下面2个先决条件是否满足 1.安装了 IIS 模块 win7 在 控制面板→程序和功能→打开或关闭Windows功能→勾选Internet 信息服务(Internet Informati ...
- VMWARE虚拟机不显示主机共享的文件夹解决办法
执行如下命令重新配置,不用重启. #sudo vmware-config-tools.pl
- js积累点
window.opener.parent.frames['taskAnswerInfoForm'].location=newUrl;//可以使该frame的页面跳转.不需要再写xxx.location ...
- robot framework ——关键字run keyword if 如何在一个条件下接多个执行语句,以及如何写复杂条件句
曾一度疯狂搜索run keyword if 的用法,帖子是挺多的,可惜,没有一个我想要的.现在我终于把我想要的用法,收集好了,在此总结下. 1.曾经天真的以为 run keyword if +条件 ...
- pycharm 下的djiango使用
创建工程可以在虚拟环境下运行,创建工程后使用命令 在python 下的命令窗口(Terminal) python3 manage.py startapp django_web (或者 python3替 ...