文档介绍:淮阴工学院
《DSP技术与应用》课程设计报告
选题名称: uCOS-II多任务实验
系(院): 计算机工程学院
专业: 计算机科学与技术
班级: 计算机1073
姓名: 学号:
指导教师:
学年学期: 2009 ~ 2010 学年第 2 学期
2010 年 5 月 30 日
摘要:
多任务是操作系统的一项基本功能。在DSP系统上引入操作系统后,我们可以非常方便的使用它的多任务功能。实时嵌入式操作系统uCOS-II是基于优先级的抢占式实时多任务操作系统,包含了实时内核、任务管理、时间管理、任务间通信同步和内存管理等功能。μC/OS-II 共有 64 个优先级,优先级的高低按编号从 0(最高)到 63(最低)排序。通过定义系统常量 OS_LOWEST_PRIO 的值来限制优先级编号的范围,当最低优先级为定为 18(共 19 个不同的优先级)时,定义如下:defineOS_LOWEST_PRIO18 μC/OS-II 实时操作系统总是将最低优先级OS_LOWEST_PRIO 分配给“空闲任务”,将次低优先级 OS_LOWEST_PRIO-1 分配给“统计任务”。
关键词:µC/OS-Ⅱ操作系统;DSP仿真器;汇编语言;多任务内核;任务优先级
目 录
1 多任务描述 1
2 ΜC/OS-Ⅱ操作系统 1
µC/OS-Ⅱ简介 1
µC/OS-Ⅱ工作原理 1
3 基础知识 2
STaskCreate() 2
任务控制块(Task Control Blocks,OS_TCBs) 2
4 软件设计 3
程序设计 3
5 周期性执行任务 6
6优先级安排 6
任务的优先级资源 6
优先级安排原则 7
总结 8
参考文献 9
1 多任务描述
多任务是操作系统的一项基本功能。在DSP系统上引入操作之后,我们可以非常方便的使用它的多任务功能,多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务之间的通讯。内核提供的基本服务是任务切换。只所以使用实时内核可以大大简化应用系统的设计,是因为实时内核允许将应用分成若干个任务,由实时黑河来管理它们。内核本身也增加了应用程序的格外负荷,代码空间增加ROM的用量,内核本身的数据结构增加了RAM的用量,内核本身对CPU的占用时间一般在2到5个百分点之间。µC/OS-Ⅱ有一个精巧的内核调度算法,实时内核精小,实行效率高,算法巧妙,代码空间很少
2 µC/OS-Ⅱ操作系统
µC/OS-Ⅱ简介
μc/os-ii是由jean 。最早这个系统叫做μc/os,后来经过近10年的应用和修改,在1999年jean ;μc/os-ii,并在2000年得到了美国联邦航空管理局对用于商用飞机的、符合rtca do178b标准的认证,从而证明μc/os-ii具有足够的稳定性和安全性。 
μc/os-ii是一个可裁减、源代码开放、结构小巧、可抢占式的实时多任务内核,是专为微控制器系统和软件开发而设计的,是控制器启动后首先执行的背景程序,并作为整个系统的框架贯穿系统运行的始终。它具有执行效率高、占用空间小、可移植性强、实时性能良好和可扩展性强等特点。采用μc/os-ii实时操作系统可以有效地对任务进行调度;对各任务赋予不同的优先级可以保证任务及时响应,而且采用实时操作系统,降低了程序的复杂度,方便程序的开发和维护
µC/OS-Ⅱ工作原理
uC/OS-II是一种基于优先级的可抢先的硬实时内核。要实现多任务机制,那么目标CPU必须具备一种在运行期更改PC的途径,否则无法做到切换。不幸的使,直接设置PC指针,目前还没有哪个CPU支持这样的指令。但是一般CPU都允许通过类JMP,CALL
这样的指令来间接的修改PC。我们的多任务机制的实现也正是基于这个出发点。事实上,我们使用CALL指令或者软中断指令来修改PC,主要是软中断。但在一些CPU上,
并不存在软中断这样的概念,所以,我们在那些CPU上,使用几条PUSH指令加上一条CALL指令来模拟一次软中断的发生。再uC/OS-II里,每个任务都有一个任务控制块(Task Control Block),这是一个比较复杂的数据结构。在任务控制快的偏移为0的地方,存储着一个指针,它记录了所属任务的专用堆栈地址。事实上,再uC/OS-II内,每个任务都有自己的专用堆栈,彼此之间不能侵犯。这点要求程序员再他们的程序中保证。一般的做法是把他们申明成静态数组。而且要申明成OS_STK类型。当任务有了自己的堆栈,那么就可以将每一个任务堆栈