-
嵌入式操作系统ucos的学习要点复习要点.doc下载
资源介绍
1.嵌入式实时操作系统的特点与常用的几种嵌入式操作系统。
实时性,可裁剪性。
ucos-Ⅱ RTLinux ARM-Linux KURT TimeSys Linux Mach
商业常见
VxWorks QNX pSOS Windows CE
2.掌握uC/OS-Ⅱ操作系统中的任务的存储结构与任务控制块主要成员变量的作用、任务的程序结构、任务的调度过程、任务状态的转换过程、任务的创建过程。任务级的切换与中断级的切换。
一.任务的存储结构P74
前一个任务控制块的Ptr
后一个任务控制块的Ptr
指向任务的Ptr
指向堆栈的Ptr
任务的优先级别
............................
任务的代码:
void mytask(void * )
{.........
For( ; ; )
{......}
}
任务的堆栈:
.......................
系统在运行一个任务是,先按优先级找到任务控制块,在任务堆栈中找到任务代码的指针。
任务控制块是系统管理任务的依据。
任务控制块-------保存任务的属性
任务的代码-------任务的执行部分
任务的堆栈-------保存任务的工作环境
二.任务控制块主要成员变量的作用P78
不同任务 TCB成员变量个数不是固定的。
其中 OSTCBStat 用来存放任务当前状态。
其中 OSTCBDly 用来存放任务等待时限(节拍数)。
其中 OSTCBPrio 用来存放任务的优先级。
所有任务控制块分为2条链表:空闲任务块链表和任务块链表。
空闲任务块是uC/OS-Ⅱ的全局数据结构
OSInit()创建空闲任务控制块链表的步骤:1先在RAM中建立一个OS_TCB结构类型的OSTCBTb1[]使数组每个元素都是一个任务控制块,然后利用OS_TCB结构中的OSTCBTNext和OSTCBPrev连起来构成一个链表。
为了加快对任务控制块的访问速度:除了任务控制块链表创建成双向链表外在uC/OS-Ⅱ的uCOS-Ⅱ.H中还定义了一个OS_TCB*类型的数组OSTCBTb1[]专门用来存放指向各任务控制块的指针。
删除一个任务的实质:把任务的控制块从任务控制块链表中删除,并把它归还给任务控制块链表。但是任务的代码还在内存中没被删除。
任务的程序结构
任务的调度过程
在就绪任务表中寻找优先级最高的就绪任务置为运行态,然后中止当前正在运行的任务,从而运行刚刚那个置为运行态的任务
若 OSLockNesting当前的值不为0则 禁止调度
任务状态的转换过程
任务的创建过程
先检测任务的优先级是否合法
然后检测该优先级是否被占用
然后保留该优先级
然后初始化任务堆栈
然后获得任务控制块并初始化
然后任务计数器+1
最后调度
否则放弃任务
任务级的切换与中断级的切换
OSIntCtxSw() -- 中断级任务切换函数与OSCtxSw() -- 任务级切换函数的区别:
OSIntCtxSw()与OSCtxSw()的后半部分相同,而OSIntCtxSw()缺少的断点保护,则在中断子程序中完成。但是两者都完成两任务的切换: OSCtxSw() 完成两个不同任务间的切换; OSIntCtxSw()则是在一定条件下,在中断结束后,原被中断的程序与更高优先级的任务之间的切换。
掌握五种任务的通信与同步的方法。对应的事件控制块与信号量集标志组的结构。并比较这五种任务的通信与同步的方法在请求、发送过程中的各自特点。
C/OS-Ⅱ操作系统初始化所须完成的的五件事:初始化几个重要的全局变量、数组OSTCBPrioTbl[ ]、就绪表、五个链表(空任务控制块、空事件控制块、空队列控制块、空信号量集标志组、空内存控制块)、创建空闲任务。或有条件创建统计任务。
中断及中断服务程序。定时中断服务及时钟节拍服务函数OSTimTick()的作用
CPU相应中断的条件:1至少有一个中断源向CPU 发出信号
2系统允许信号且未对此信号屏蔽。
钟节拍服务函数OSTimTick()的作用:1把用来记录时间进程的计数器OSTime+1 2遍历任务控制块链表中所有任务控制块,吧各个任务控制块中用来存放任务延时的OSTCBDly-1,并使该项为0,同时又不是被挂起的任务进入就绪状态。
6.掌握创建、请求与发送一个信号量与消息邮箱的程序流程。
7.熟练应用信号量与消息邮箱实现任务的通信与同步的程序设计。一个应用程序的基本框架。
8.了解C/OS-Ⅱ移植的一般原则。
C/OS-Ⅱ移植的条件:1在程序中可以开关中断2处理器支持中断并能产生定时中断3处理器支持中断且容纳一定数据的硬件堆栈4处理器有将堆栈指针和其他CPU存储器存储读取到堆栈的指令。
9.了解一个完整的基于C/OS-Ⅱ内核的操作系统的组成。
- 上一篇: 华中科技大学操作系统实验
- 下一篇: Windows7使用总结 - 77个小知识