EPFR

更新时间:2023-03-11 08:13:22 阅读: 评论:0

儿童儿童玩具-市场营销基础知识

EPFR
2023年3月11日发(作者:肤色暗沉)

第l6卷。第 期

2006年8月

计算机技术与发展

COM UIER TEa 10LDGY AND DEVELoPM匮Nr

V01.16 No.8

Aug.2006

嵌入式操作系统ttC/OS的运行机制

石世光 ,陈云洽2,叶奇明3

(1.电子科技大学中山学院计算机工程系,广东中山528403;

2,中山大学电子与通信系,广东广州510275;

3.茂名学院师范学院计算机系,广东茂名525000)

摘要:目前对嵌入系统的引入和应用,已越来越成为广大科研人员关心的问题。而嵌入式操作系统是嵌入系统应用的核

心,文中主要探讨了源代码开放的嵌入式操作系统 ̄C/OS的内核运行机制。首先分析任务块的基本结构,然后阐述了任

务管理的实现过程,最后着重讨论了任务启动过程以及在两种不同情况下的任务切换工作原理,为嵌入式系统开发应用提

供指导作用。

关键词:嵌入式操作系统; ̄tC/OS;运行机制;任务

中图分类号:TP316.2 文献标识码:A 文章编号:1673—629X(2006)08—0085—03

Operation Mechanism of Embedded Operating System I ̄C/OS

SHI Shi—guang ,CHEN Yun.qia2

,YE Qi—miI1g3

(1.Dept.ofComputerEng.,ZhougshanCoil.ofUniv.ofElectronic Sci.andTech.ofChina,Zhongshan 528403,China;

2.Dept.of Electronics and Communication Eng.,Zhongshan Univ.,Guangzhou 510275,China;

3.Dept.of Computer Eng.,Teachers School of Maoming Coil.,Maoming 525000,China)

Al ̄raet:Nowadays it has alreadybecome anoticeable problemformany scientific researcherstoilltroduceand applythe embeddedoperat.

ing system.Andthe embeddedoperating systemisthe coreofthe embedded application.Operatic ̄mechanismofthe emmeddedoperating

system ̄c/os is mainly described in this paper.Firstly,analyses the fundanm ̄tal stI'lJcture of task control block.Secondly。expatiates on

the realization of task l'p.Rrlage ̄qaerlt.Fhaally,dieusses the process of task stan and both of the task—switch’s operation prir ̄ple in detail.

Thereforeitwill providegoodhelpforthe researcher oftheembeddedoperating system.

Keywords:embedded operating system;,uC/OS;operationmechanism;task

O引 言

当前的嵌入式操作系统层出不穷,而且它们以其各自

不同的特色广泛分布于通信、航空航天、汽车、医疗、电子

消费等不同的领域。它们性能卓越、功能完备、技术成熟、

服务周全,通过使用这样的操作系统,可以大大缩短产品

的开发周期,降低开发成本,同时产品的品质也能够大大

提升。对于一名从事嵌入式系统开发的研究人员或工程

师来说,了解并熟悉嵌入式操作系统是最基本的。

1使用 ̄C/OS操作系统的目的

t ̄C/OS是专门为中低端嵌入式应用设计的可剥夺型

实时操作系统内核,主体用标准的ANSI C语言写成,可

移植性极好。目前已被成功地移植到MCU,DSP,CPU

上,包括8位、16位、32位及64位。它包括了一个操作系

统最基本的一些特性,如任务调度、任务通信、内存管理、

收稿日期:2006一O3—14

作者简介:石世光(1974一),男,湖北大冶人,助教,研究方向为嵌入

式系统开发。

中断管理等,而且代码完全开放、结构简单明了、代码风格

严谨,非常适合初涉嵌入式操作系统的人士学习,它可以

让人们以最快的速度来了解操作系统的概念、结构和模块

工作原理,并由浅人深逐步推广到商用操作系统上。同时

对于那些对操作系统感兴趣的爱好者来说,t ̄C/OS的浅

显易懂,给人们提供了一个很好的研究标本,这就是要学

习t ̄C/OS的一个很重要的原因。

 ̄C/OS在高校教学使用是不需要申请许可证的,只

有将 ̄C/OS的目标代码嵌入到商业产品中,才需要购买

销售许可证。自1992年以来,I ̄C/OS已经被应用到数以

百计的产品中,性能完全可以与商业产品相媲美,而且通

过了美国联邦航空局(FAA)商用航行器认证,其性能优良

稳定并且免费,这是要学习t ̄C/OS的另一个很重要的原

因【lj。

2 /O8内核运行的机制

简单地讲, C/C6内核运行机制的基本思路是:近似

地让最高优先级的就绪任务处于运行状态。下面就详细

谈谈其工作的实现机制。

维普资讯

・86・ 计算机技术与发展 第16卷

2.1任务控制块基本结构

Struct Os—TCB{

Os—STK* stkP廿;//一个指向当前任务栈顶的指

针;

struct os—tcb*C ̄'I'CBNext:

struct os—tcb*OSTl2Bprev;//c ̄'rCBNext和( ̄"rCBPrev

用于任务控制块的双重链接;

INT16U OSTCBI)Iy;//用于任务延时或超时限制,每中断

一次减一,为0表示任务准备就绪;

INT8U( ̄"rcBStat;//任务的状态字,0表示就绪态;

INT8U 汀CBI o;//任务的优先级,值越小,优先级越高。

INT8U OSTCBX,OSTCBY,( ̄'TCBBitX,OSTCBBitY;//用

于加速任务进入就绪态的过程或进入等待事件发生状态的过

程。

l[2]

从上述结构可以看到,每一个任务都建立相应的任务

控制块0S—TCB( k Control Block),任务控制块的开

头,即OS—TCB的0偏址内存单元中存放任务堆栈指针

0s1 StkPtr,指向任务堆栈;通过双向链表CNIL ̄Next

和0 Prev将不同的任务控制块0s—TCB连起来,任

务控制块还包括任务延时、状态、优先级等信息。

系统初始化时,将根据任务的多少来建立任务控制块

链表。任务创建函数分配的一块内存,建立任务堆栈,用

来保存寄存器的值和该任务的代码地址;再把堆栈的地址

存人任务控制块,从而把任务程序代码、任务堆栈和任务

控制块联系在一起。操作系统内核可以通过任务控制块

找到任务堆栈,从堆栈中取得任务代码_3 J。

2.2任务管理的实现

任务管理主要是通过对任务控制块(TCB)的管理来

实现的。当一个任务建立时,I ̄C/OS系统为其所对应的

OS—TCB赋值;当任务的CPU使用权被剥夺时,系统用

OS—TCB来保存该任务的状态;当任务重新得到CPU使

用权时,系统就可通过任务控制块来使任务从被中断处继

续执行下去。

每个任务都被分配一个任务控制块TCB,按照任务

优先级的次序将各个任务TCB的指针放人任务优先级表

数组中,这样通过该数组就可访问各个任务。

同时有一个TCB指针a汀 lc1 r指向当前任务的

TCB,另有一个TCB指针O ̄HighRdy指向具有更高

优先级的并且将要执行任务的TCB,如果两者任务优先

级不等说明要进行任务切换,完成了任务切换后,CPU就

开始运行更高优先级任务。

2.3任务启动过程

使就绪状态的任务开始运行的函数叫做oggt ̄t()。

在调用OSStart()之前,必须至少已经建立了自己的一个

任务。前面谈到过,由于操作系统是按照“比较任务优先

级,找到高优先级任务,然后再使之运行”的思路来启动任

务的,所以就有了任务就绪表和优先级判定表。就绪表中

有两个变量(OSRdyGrp和OSRdyTbl[])用来存放每个任

务的就绪标志,通过分组与优先级表中的项实现一一对

应,进而确定进入就绪态的优先级最高的任务。任务启动

过程如图1所示。

开 始

内核是否启动

利用0SUnMapTbl表找到准备

就绪任务中最高优先级

根据任务优先级表找到该任务

调用函数OsstartHighRdy()

让优先最高的任务运行起来

结 束

图l ̄tart()的流程

2.4任务切换原理

任务切换指保存当前任务的上下文,并恢复需要执行

任务的上下文的过程。当发生任务切换时,当前正在运行

的任务的上下文就需要通过该任务的任务控制块保存起

来,并把需要投入运行的任务的上下文从对应的任务控制

块中恢复出来_4 J。

任务的切换有两种情况:一种是任务级切换,另一种

是中断级切换。

所谓任务级切换,即当前任务运行完毕,下一个准备

就绪的最高级优先任务进行任务切换。

1)任务级切换的大致流程如下:

◇当前任务完成;

O ̄hed()任务调度,选出高优先级就绪任务;

◇0S—Task—Sw()任务切换;

◇运行高优先级任务。

其中OS—Task—Sw()的工作过程比较简单:

(1)保存寄存器值人当前任务堆栈;

(2)修改当前任务控制块指针OS'IL-'BGar和当前任务

优先级OSProCur,指向就绪任务;

(3)恢复就绪任务堆栈中的值到寄存器中,完成切换。

而CtSSched()用于任务调度,其流程如图2所示_5_5。

2)中断级切换,即是在中断程序处理事务过程中,可

能有一些任务运行就绪,重新整理和搜索任务就绪表,找

到最高优先级任务进行切换。

中断级切换的大致流程: ’

◇调用函数OSTicklSR(),完成中断入口工作;

◇调用OSIntExit()选出高优先级就绪任务;

◇利用OSIntCtxSw()完成任务切换;

◇运行高优先级任务。

维普资讯

第8期 石世光等:嵌入式操作系统vc/c ̄s的运行机制 ・87・

图2 0SSched()函数流程

对于定时中断函数OSTickISR(),它主要负责中断进

入时保存处理器寄存器内容,完成任务切换退出时恢复处

理器寄存器内容并返回,相当于中断服务程序的入口。

中断级的上下文切换是OSIntExit()通过调用OS—

IntCtxSw()来执行切换功能。下面重点谈谈OSIntExit()

函数过程。与任务级切换不同的是中断级切换时,中断返

回函数将决定是返回到被中断的任务,还是让优先级最高

任务运行。其流程如图3所示。

3结束语

以上是一些经验与体会,笔者曾在研制电力谐波检测

仪的项目中,根据嵌入式操作系练/ ̄C/OS的内核运行机

制原理,在TI EXSP F2407芯片上移植取得很好的效果。

现在网站上有很多关于各种类型芯片的移植程序,但不仅

要知其然,更要知其所以然,才能做到举一反三、灵活运

用,所以有必要掌握 C/0S内核的运行基本原理,从而能

深入理解移植程序,达到了解嵌入式操作系统原理的目

的,为从事各种嵌入式操作系统的研究打下坚实的基础。

保存CPU各寄存器

调用OSlmtEnter0函数或中断嵌套计数器

直接使OSlntNesting加l,记录嵌套层敦

执行中断服务程序

嵌套层披减一

嵌套层数是否为0

—、

_

—,

是否有高优先级

任务就绪

\/

返回断

点处

返回断

点处

图3中断返回函数流程

参考文献:

[1]邵贝贝. 源码公开的实时嵌入式操作系统[M].北

京:中国电力出版社,2001.

[2]崔树林.嵌入式系统通用的应用软件结构研究[J].单片机

与嵌入式系统应用,2003(8):9—1O.

[3]王劲松.嵌入式操作系统uc/os的内核实现[J].现代电子

技术,20o3(8):48—49.

[4]罗蕾.嵌入式实时操作系统及应用开发[M]、北京:北京

航空航天出版社,2005.

[5]王克星.实时多任务操作系统的开发与应用[J].计算机工

程与应用,2003(5):132—134.

(上接第84页)

3小结

决策树的建立可以使数据规则可视化,结构清晰,所

以在对知识的分类中常常用决策树表示。利用典型ID3

算法构造决策树,按照信息增益最大的原则,相对抽象,计

算繁琐;利用粗集近似精度选择根结点时计算简单,而且

分类可以使决策树和粗集更容易理解。

参考文献:

[1]朱明.数据挖掘[M].合肥:中国科学技术大学出版社,

20o2.

[2]Quinlan J R.Induction of decision trees[J].Machine Learn—

ing,1986(1)-81—106. 、

[3]王静红,王熙照,邵艳华,等.决策树算法的研究及优化[J].

微机发展,2004,14(9):30—32.

[4]尹阿东,郭秀颖,宫雨,等.增量决策树算法研究[J].微机

发展,2005,15(2):63—66. ,

【5]曾黄麟.粗糙集理论及其应用[M].重庆:重庆大学出版社,

1998.

[6]董祥军,宋瀚涛,姜合,等.时态关联规则的研究[J].计

算机工程,2005,15:24—26、

维普资讯

本文发布于:2023-03-11 08:13:21,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/1678493602136445.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:EPFR.doc

本文 PDF 下载地址:EPFR.pdf

上一篇:新疆英文
下一篇:返回列表
标签:EPFR
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|