EDN China > 设计实例 > 嵌入式系统 > 操作系统 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

嵌入式操作系统μCOS-Ⅱ剖析与移植

王小妮?? 北京信息科技大学 现代电子技术?? 2015年07月24日 ?? 收藏6
现在,大家不仅拥有放在桌上处理文档、进行工作管理的通用计算机,而且也可能拥有从大到小的各种使用嵌入式技术的电子产品。随着电子产品的智能化,智能手机、物联网、智能家居的出现,使用在通用计算机中操作系统通过变身慢慢出现在嵌入式产品中。操作系统与硬件紧密相关,如何将操作系统简便的移植到各式各样的嵌入式产品中是产品厂家急需解决的问题。了解操作系统的基本概念、基本原理,掌握操作系统的主要任务及功能的设计思路是设计人员需要具备的知识。想要移植操作系统到电子产品中,需了解实时操作系统的概念、内核结构,如何裁剪操作系统代码。本文通过对嵌入式操作系统μC/OS-Ⅱ源代码的分析及移植,掌握多任务实时系统的基本概念、竞争与调度算法、任务间同步与通信、存储与定时的管理。

1 嵌入式操作系统分类

运行在嵌入式硬件平台上,对整个系统及其所操作的部件、装置等资源进行统一协调、指挥和控制的系统软件叫作嵌入式操作系统。其有如下特点:微型化、可裁剪性、实时性、高可靠性和易移植性。按嵌入式操作系统应用范围分类可分为:

(1) 通用型嵌入式操作系统,Windows CE,Vx-Works,μCLinux和μC/OS;

(2)专用型嵌入式操作系统,如移动电话的Symbian,PDA的Palm OS。

嵌入式操作系统还可分为商用型和免费型:

(1)商用型的实时操作系统功能稳定、可靠,有完善的技术支持和售后服务,但往往价格昂贵,如Vx-works,QNX,WinCE,Palm OS等;

(2)免费型的实时操作系统在价格方面具有优势,目前主要有Linux和μC/OS-Ⅱ,稳定性与服务性存在挑战。按嵌入式操作系统使用领域分类可分为:有线电视机顶盒领域,PowerTV;移动通信领域,EPOC;掌上计算机领域,Palm OS;数字影像领域,Digita。

2 μC/OS-Ⅱ代码剖析

微控制器操作系统(Micro Controller OS,μC/OS)是美国人Jean J.Labrosse 1992年完成的,应用面覆盖了诸多领域,如照相机、医疗器械、音响设备、发动机控制、高速公路电话系统、自动提款机等。μC/OS-Ⅱ用C语言和汇编语言编写的。其源代码可以从网站www.micrium.com中免费下载。

μC/OS-Ⅱ操作系统内核的主要工作是对任务进程管理和调度。典型的任务一个无限循环,如图1所示。

图1 任务的组成
图1 任务的组成

下面对创建任务的函数OSTaskCreate()的源代码做简单的介绍。

μC/OS-Ⅱ代码剖析

μC/OS-II支持64个任务,每个任务一个特定的优先级。优先级越高,数字越小。当创新一个新任务时,创建任务函数OSTaskCreate()需先获得一个未被使用的在有效值范围内任务优先级,初始化任务堆栈函数OSTaskStkInit()获得该任务的初始数据(指向任务的指针、程序状态字等),初始化任务控制块函数OSTCBInit()获取从务控制块链表中一个任务控制块并用任务的属性对其进行赋值后将其链入到任务控制块链表的头部,OSSched()函数进行任务调度。多任务操作系统的核心工作就是任务调度。所谓调度就是通过一个算法在多个任务中确定哪个任务来运行。μC/OS-Ⅱ是占先式实时多任务内核,优先级最高的任务一旦准备就绪,则拥有CPU的所有权开始投入运行。μC/OS-Ⅱ进行任务调度的思想是每时每刻总是让优先级最高的就绪任务处于运行状态。μC/OS-Ⅱ进行任务调度的依据就是任务就绪表。任务就绪表记载就绪的任务优先级,根据任务就绪表可以判断出哪个任务的优先级最高,进行调度。

下一页:μC/OS-Ⅱ移植的实现


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

嵌入式操作系统? μC/OS-Ⅱ? 移植?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈