任务——μ/COS-II读书笔记
2.1 任务的基本概念
任务种类:
1.用户任务:解决应用问题。(由应用程序设计者编写)
2.系统任务:为应用程序提供某种服务。(由系统提供)
任务组成:
1.任务控制块:保存任务属性。
2.任务堆栈:保存任务工作环境。
3.任务程序代码
任务链表:多个任务链接而成。
2.1.1 任务的状态
1.睡眠状态:任务没有被配备任务控制块或剥夺了任务控制块时的状态。
2.就绪状态:任务被配备了任务控制块且在任务就绪表中进行了登记的状态。
3.运行状态:任何时刻只能有一个任务处于运行状态。
4.等待状态:之前在运行的任务,现在需要等待一段时间 或 需要等待一个事件发生 再运行时的状态。
5.中断服务状态:正在运行的任务响应中断申请去执行中断服务程序的状态。
任务状态转换图:
2.1.2 用户任务代码的一般结构
1. 用户任务代码的一般结构
μC/OS-II任务的代码结构是一个带有临界段的无限循环。(在运行OS_ENTER_CRITICAL() 和 OS_EXIT_CRITICAL()来控制任务何时响应中断,何时屏蔽中断。)
2. 用户应用程序的结构
void MyTask1(void *pdata) //定义用户任务1
{
for(;;)
{
......
}
}
void MyTask(void * pdata) //定义用户任务2
{
for(;;)
{
......
}
}
void MyTask3(void * pdata) //定义用户任务3
{
for(;;)
{
......
}
}
void main()
{
......
OSInit(); //初始化μC/OS-II
......
OSTaskCreate(MyTask1,......); //创建用户任务1
OSTaskCreate(MyTask2,......); //创建用户任务2
OSTaskCreate(MyTask3,......); //创建用户任务3
......
OSStart(); //启动任务
......
}
主函数main()只负责创建和启动用户任务,而由操作系统调度运行用户任务。
2.1.3 系统任务
μC/OS-II定义了两个为应用程序服务的系统任务:空闲任务(每个应用程序必须使用) 和 统计任务(每秒计算一次CPU在单位时间内被使用的时间,把计算结果以百分比的形式存放在变量OSC-PUUsage中。 应用程序根据实际需要选择使用)。
1. 空闲任务
2. 统计任务
要使用统计任务需要:
1.把定义在系统头文件OS_CFG.H中的系统配置常数OS_TASK_STAT_EN设置为1。
2.在创建统计任务之前调用函数OSStatInit()对统计任务进行初始化。
2.1.4 任务的优先权及优先级别
例:若应用程序的优先级别为28个,则该应用程序最多安排26个任务。(优先级26自动赋给统计任务,优先级27自动赋给空闲任务)
任务——μ/COS-II读书笔记相关推荐
- 《演说之禅》I amp; II 读书笔记
最近入手了<演说之禅>与<演说之禅设计篇>.两本非常贵的书,感觉还是非常不错的.虽然个人认为不如之前看的那本<给大家看得设计书>,不过还是值得一读. 两本书一起弄读 ...
- bootstrap_blue_print_volume ii 读书笔记
why reuse the wheel each time 1.使用按钮,在鼠标悬停时进行细微的更改(可以稍微调整下颜色,将颜色变暗或者冲击色),并且给你的主色调不同的颜色. 2.通过把重要的链接做成 ...
- Java 核心技术卷 II(第 8 版) – 读书笔记 – 第 1 章(下)
22.一旦获得了一个 Charset,就可以在 Java 的 Unicode 和指定的编码格式之间进行转化,下面以 GBK 和 Unicode 之间做为例子. 从 Unicode 到 GBK: imp ...
- 《Master Opencv...读书笔记》非刚性人脸跟踪 II
上一篇博文中,我们了解了系统的功能和模块,明确了需要采集哪些类型的样本点及利用类的序列化的保存方式.这次将介绍几何约束模块,通过统计形态分析法(Statistical Shape Analysis, ...
- Maltab在数学建模中的应用(第二版)——读书笔记上
Maltab在数学建模中的应用(第二版)--读书笔记上 1.MATLAB与数据文件的交互 1.1数据拟合 1.2数据拟合实例 1.3数据可视化 1.4层次分析法 2.规划问题的MATLAB求解(多约束 ...
- 《javascript面向对象编程指南》读书笔记
<javascript面向对象编程指南>读书笔记 <javascript面向对象编程指南>读书笔记 第一章 面向对象的JavaScript 第二章 基本数据类型与流程控制 变量 ...
- μC-/OS II(一) PC编译环境的搭建
这个系列博文是关于对<嵌入式实时操作系统 μC-/OS II>(第二版)的学习笔记 μC-/OS II (一) PC编译器环境的搭建 1.关于编译器 采用Borland C++ 4.5作 ...
- 考试全程指导读书笔记1 -Chap1 信息系统基础
考试全程指导读书笔记 1 Chap1 信息系统基础 1.1 霍尔提出的系统方法的三维结构体系:霍尔三维结构 逻辑维.时间维.知识维组成的立体空间结构: 逻辑维:7个步骤:明确问题.系统指标设计.系 ...
- 《勋伯格和声学》读书笔记(八):转调
前言 本文包含<勋伯格和声学>第六章--转调的相关读书笔记.如果说上一篇文章中所讨论的终止式的目的是明确一个调性,将有可能与相邻调式产生混淆的其他可能调式排除在外,那么转调的过程就需要首先 ...
- 《python 程序设计》读书笔记
<python 程序设计>读书笔记 笔者对于csdn博客的运用还是不太熟练,希望大家能够见谅.以后会不断提升写作的手法.这篇博客是我在学习python程序设计时候的笔记.我也是选择学习了大 ...
最新文章
- html圆圈里面问号,html,css实现问号提示信息
- mysql输入select now()_mysql 中select now(); 是怎么执行的?没有指定FROM tablename?
- 打包后放在服务器上二级目录找不到解决办法
- 腾讯云Centos升级python2到python3
- 华为交换机RRPP配置实验
- 6款程序员不得不爱的bootstrap模板
- 收发邮件服务器错误,邮件系统收发邮件报错汇总——错误代码550
- python的else_Python3 if...elseif...else语句
- JavaWeb中的问题 ---- Servlet和Jsp
- iOS导航栏的正确隐藏方式
- 保姆教程 | YOLOv5在建筑工地中安全帽佩戴检测的应用
- 2017年的博客之路开始---下一个十年
- 一个人的“野蛮”战争——周鸿祎奋斗记
- 软件工程大作业——设计阶段
- 程序通过命令行获取操作系统名称+版本+CPU名称等各种信息
- html判断符号,html js 格式验证标点符号
- data augment
- chrome inspect联调android手机webview和web h5遇坑
- OIM Training Lab 1
- js的animate函数