uc/os II读书笔记(2)
来源:互联网 发布:淘宝电动车加热手套 编辑:程序博客网 时间:2024/06/06 08:57
1.大多数嵌入式操作系统主要提供三项服务:
①内存的管理分配(主要是动态内存的管理),通过操作系统提供的内存分配函数和内存释放函数实现。
②多任务管理,嵌入式实时操作系统会提供良好的任务调度机制来控制多任务,实现实时性。
③外围设备管理,这些外围设备都是系统中各个任务可能用到的资源。
2.uC/OS-II是由Jean J.Labrosse在1992年编写的一个嵌入式多任务实时操作系统,该操作系统是用C语言和汇编语言编写的,其中绝大部分是C语言编写,少部分与处理器密切相关的用汇编语言编写。uC/OS-II与处理器相关的代码移植时需要修改。
第二章
uC/OS II中的任务
一、任务的基本概念
1.uC/OS II中,同大任务分解成的小任务对应的程序实体就叫“任务”,也叫线程,是一个用来解决用户问题的C函数和与之关联的一些数据结构构成的实体.
2.uC/OS II的任务由三部分组成:
①任务的程序代码(任务的执行部分)
②任务的堆栈(保存任务工作环境)
③任务控制块(用于保存任务属性)
3.uC/OS II 的两种任务分类:
用户任务:由应用程序设计者编写的任务,用于解决应用问题.
系统任务:系统提供的任务,为应用程序提供某种服务.
UC/OS II最多可对64个任务进行管理。
4.任务的状态
5.用户任务代码
从函数看出函数的参数是void型指针,目的是为了传递各种不同类型的参数甚至函数。
在运行OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()之间的代码段时不会响应中断,这段代码称为临界段。
6.用户任务
OSTaskCreate()是操作系统uC/OS II用于创建任务的函数,OSStart()是操作系统uC/OS II提供的启动任务的函数,任务启动后由操作系统管理。
7.系统任务
(1)空闲任务(OSTaskIdle):每个应用程序都必须使用,为了避免在某个时间段CPU在没有用户任务执行时处于空闲状态,操作系统提供了一个空闲任务。
(2)统计任务(OSTaskStart):每秒计算一次单位时间内CPU被使用的时间,用来了解CPU的利用率,若使用该任务则必须把定义在系统头文件0S_CFG.H中的系统配置常数OS_TASK_START_EN置1,并在创建统计任务前调用函数OSStartInit().
8.任务的优先级
通常一个应用程序的任务数小于64,uC/OS II把任务的优先级分为64个级别,数字越大优先级越低。用户根据需要在头文件OS_CFG.H中通过对表示最低优先级别的常数OS_LOWEST_PRIO赋值说明程序中优先级别的个数,也就限制了任务数不能超过OS_LOWEST_PRIO + 1个。
二、任务的堆栈
1.堆栈就是存储器中满足“先进后出”原则的连续的存储空间,每个任务都应配有自己的堆栈,任务堆栈是任务的重要组成部分。
2.任务堆栈的创建:在头文件os_cpu.h中定义了一数据类型OS_STK,创建堆栈。当调用函数OSTaskCreate()来创建任务时,将用数据类型OS_STK定义的数组指针传给该函数则可将该堆栈与相应的任务联系起来。
3.堆栈的增长方向分两种,向上增长型堆栈和向下增长型堆栈,这随系统的处理器的不同而有所不同。
4.任务控制块:用来记录堆栈的指针、任务的当前状态、任务的优先级别等一些与任务管理有关的属性的表格。
- uc/os II读书笔记(2)
- uc/OS-II读书笔记
- uc/os II读书笔记(1)
- uc/OS-II读书笔记二
- uC/OS-II (2)
- uC/OS-II学习笔记(2)
- uc/os-II 分析(2)
- uC/OS-II内核架构解析(2)---uC/OS-II基本介绍
- 【专题】uC/OS-II内核架构解析(2)---uC/OS-II基本介绍
- uC/OS-II内核架构解析(2)---uC/OS-II基本介绍
- UC/OS-II学习 2
- UC/OS II事件管理(2)之信号量管理
- uc/os-ii 实验6:消息邮箱(2)
- 嵌入式实时操作系统uc/os-ii 原理及应用 读书笔记
- uC/OS – II中的任务_读书笔记_2
- uC/OS – II中的任务_读书笔记_3
- uC/OS-II的中断和时钟_读书笔记_4
- uC/OS-II事件控制块2
- http://www.cnblogs.com/exmyth/p/4555814.html
- XML基本语法
- 自组织网络(Ad hoc)
- python xlsxwriter创建excel图表
- poj 1088 滑雪(beta)
- uc/os II读书笔记(2)
- Leetcode-34. Search for a Range
- POJ-2736 Housewife Wind(树链剖分)
- VHDL快速入门一
- 2016弱校联盟十一专场10.3 C.We don't wanna work!(集合操作)
- 运行结果展示方法
- 独立编址与统一编址
- 机房收费系统——组合窗体
- C++primer 顺序容器(1)