嵌入式实时操作系统smallRTOS51原理及应用
嵌入式实时操作系统small RTOS51原理及应用,PDF,最面分析单片机实时系统small RTOS源码,介绍了small RTOS51移植和使用方法。嵌入式实时操作系统Small rtos51原理及应用陈明计周鱼功等縞着农航无头影出版赶http://www.buaapress,comcn内容简介Small rusi5是为51系列单片机而编写的。它是完全免费的、源代码公开的多任务实时操作系统。它可在无任何外部数据存储器的单片8C51系统上运行,并且是可移植的。全书分两部分。第一部分为基础篇,介绍SmaⅢ!RIOS51和一些基本概念,并详细分析 Small rtos51的工作原理。第二部分为应用篇,绐出部分常用硬件在 Small rtos5l下驱动程序的源代码。这些源代码在DP-51单片机仿真实捡仪上全部调试通过,且只要经过很少的改动,或是不改动,就酊以在其他环境下使用。应用篇还通过对这些源代码的分析让读者理解基于ROS的编程方法,并给出完整的例予让读者全面掌握基于RTOS的编程方法本书可以作为亮等院校相关专业的课程教材、实验参考资料或课外读物,对嵌入式痘用开发人员也有重要的参考价值图在版编目CI〕数据嵌人式实时操作系统 Small rtos51原理及应用/陈明计等编著.北京:北京航空航天大学出版社,2004.1ISBN7-81077-409-3王.嵌…Ⅱ.陈…Ⅲ.实时操作系统, Small rtos51Ⅳ.TP316.2中国版木图书馆CIP数据核字(2003)第095727号嵌入式实时操作统 Small rtos51原理及应用陈明计周立功等编著责任编輯刘晓明北京航空航天大学出版社出版发行北京市海淀区学貌路37号(10003)发行部电话:(01082317024传真:(10)82328026http;//www.buaapress.comcnE-mail:bhpress(@263.n4河北省诼州盯新华印刷厂印制各地书店经镈开本:787×10921:16印张:2,5字数1576千字年1月第1版2004年I月第}次印刷印数:4000册ISBN7-81077-409-3定价:38.00元(含光盘)快潓掌握俄入式操作系统的攙卺02年的柒一天下午,有位员工告诉我,他发现有人在“21IC中国电子网”发布了一个基子8051单片机、仅需要4KB程序空间和128个RAM单元就可以运行的嵌入式搡作系统自妇软件源码。我不由自主地想到了这个人可能就是公可要寻找的优秀人才,于是开始静下心来花了一个通宵大致阅读了整个源码,发现作者编写的程序具有非常良好的风格。凭我多年的经验判断.作者是一个有殛烈爱好和敬业精神的人,于是开始给作者写Eml联系。当然,现在他巳经成为了我们公司的员工,他就是本书的主要作者陈明计先生。他目前主要庭责嵌入式搡作系统应用部门的工作,领导一个小组从事 PHILIPS公司半导体32位ARM单片机的应用开发去年,我邀请清华大学邵贝贝教授来公司专门讲解μ(OSⅡ嵌入式操作系统。为了帮助内部开发工程师深入掌渥嵌入式操作系统的应用技术,我要求公司的开发工程师尝试写作一个基于⑧0(51单片机的小操作系统。有一部分员工完成了这个大作业,可以说效果十分惊人,完全达到了理解和掌握嵌入式操作系统的目的。由此可以看出,这是一种行之有效的学方法。面对未来,一个要继续从事电子产品开发的工程师,不懂得嵌入式操作系统是不可想像的。怎么办!实践证明,最妤的办法就是尝试自己写一个简易的嵌入式操作系统。不在于写岀来的嵌入式操作系统水平的高低,关键是通过做这样一件事情,将究全有助于彻底弄懂嵌入式操作系统的来龙去脉。当然,对于大多数人来说,要自己去写一个嵌入式操作系统软悴不是一件容易的事情;但如果能够真正读懂一个嵌入式操作系统的源码,从而达到运用自如地编写驱动程序“中间件”的楛度,也不失为一条捷径。我认为,经过大量实际应用,使用 Keil c51编写的嵌入式实时操作系统 Small rtoss51就是一个很妤的例子,特此推荐给广大的单片机应用开发工程师。它将为您迈入32位嵌入式操作系统的应用开发行列打下一个坚实的基础。基于此,由我负责组织和策划并调动了公司相关开发小组的优秀人方和内部的技术资源,成立了一个专门的小組来写作这术专著。其中到绕DP-51单片机仿真实验仪的硬件杞路阑述 Small rtos引Ⅰ操作系统的设计原理,详细地个紹了RS232、ⅣC、USB!.1和 CANBUS等一系列外围器件及其功能部件的应用设计。我们有针对性迆提供了大量的源码,希望能够最大服度地帮助更多的初学者掌握嵌入式操作系统,跟上新技术发展的潮流本书的第一部分为原理篇,主妥介绍 Small rtos51的设计思想和实现方法,读者可以结合 Small rtos5!源程序和本篇的详细解说,深∧研究其中的机理第二部分为应用篇,主要介绍 Small rt)5]的基本应用,以实战为主线,详鋼地阐述了单片机基本功能部件的应用及其外围器件的应用设计。后续的内容主要介绍基于Smal!RTOS51的USB固件編程及其 CANBUS的驱动开发。这部分有定的难度,牵涉的知识面比较广,对升发工程师本身的要求很高,读者可以根据自己的具体情况作为选学内容参与本书編写及其相关工作的主要人员有陈明许、刘养海、刘英娬、黄晓清黄绍斌;全书由冏立功负责规划、审核与统稿。很多的网友多次来信讨论对編写这本书的意见,也进一步征求了不少在教学中引入80C51操作系统的老师的意见,在此对他们表示衷心的感谢、有一点非常重要,如果没有陈明计个人的努力,也就没有Sml1RTOS:1的诞生,无疑这是不能忘记的!特别要感谢北航出版社的全力支持,如果没有他仃的努力和辛勤劳动这本书不会这么快出版周立功2003年8月28日前在激烈的竞争下,公司(特别是小公司)往往因为市场的压力,要求开发人员在较短的时间内把产品开发出来从而导致产品不稳定和维护困难。我使用8051系列单片机,在当时是用汇编语言编写程序。我于1998年开始接舳C51高级语言,从1999年开始直到现在,一直使用C语言编写8051的程序。在此期间,我经常思考如何在保证性能的前提下提高开发效率,并降低程序的维护难度。根据我的经验使用C语言的确会提高开发效率,也能提高软件的可维护性;但仅仅依靠编程语言还远远不够,应该要建立自己的开发平台。在平台上开发,才能事半功倍。嵌人式实时操作系统(RTOS就是一个很好的嵌入式软件的开发平台。近年来,随着半导体工业的发展,32位单片机的价格持续降低。在某些应用中,使用32位单片机的总体成本更低,而在32位单片机中不使用RIOS几乎是不可能的。因而,在嵌入式系统中使用RTOS是大势所趋到201年,我下决心学习RTOS。当时我仍旧是用8051系列单片机开发产品,于是想通过一个基于51单片机的RTOS来学习它。当时基于51单片机的RTS中比较有名气的有KeiC51所带的 RTX Fu和 RTX Tiny及树友移植的C/0s-I1。以下对这几个RTOS进行简单的介绍。RTX51是一个用于8051系列单片机的多任务时操作系统。有两个不同的RIX51版本可以利用。其中RTX1Fu使用四个任务优先权完成同时存在时呵片轮转调度和抢先的任务切换。RTX51工作在与中断功能相似的状态下,信号和信息可以通过邮箱系统在任务之间互相传递。您可以从一存储池中分配和释放内存;可以强迫一个任务等待中断超时,或者是从另一个任务或中断发出信号信息。而RTX51Tiny是一个RTx51的子集,可以很容易地在没有任何外部存储器的单片8051系统上运转;但它仅支持时间片轮转任务切换和使用信号进行任务切换(即非抢占式的),不支持抢占式的任务切换,不包括消息队列没有存储器池分配程序。(/OS-I1是著名的、源码公开的实时内核,可用于各类8位、16位和32位单片机或D$P。从μC/OS算起,该内核巳有10余年应用史并在诸多领域得到广泛应用。1C/OS-Ⅱ是一个完整、可移植、可固化和可剪裁的占先式实时多任务内核。μCOS-Ⅱ是用ANSi的¢语言编写的包含灬小部分汇编代码,使之可以供不同架构的微处理器使用。至今,从8位到64位,C/·I已在超过40种不同架构的微处理器上运行8051系列单片机一般只有很少的ROM和RAM资源,如P89C51只有4KBFlash和128字节RAM。但RTX51Fui自身代码有6K多字节,且需要大量外部RAM,又无源代码很多时候不实用,不利于学习。 RTX Tiny虽然小(自身占用900多字节ROM),但是任务没有优先级和中断管理,也无源代码,也不太实用目前Kei已经把RTⅹTiny的源码提供给其正版用户,全部是汇编代码),也不利于学习。而pCOS-有源代码,也有配套图书,比较利于学习。但是它规模太大,又需要大量外部RAM,而且所有函数都必须是可重入函数,用在805L这类小片内RAM的单片机上有点勉强,在8051系列单片机上不太实用于是为∫学习KI(,也为了建立自己的廾发平台,到2002年春节,我下决心自己编写一个基于8(51系列单片机的RTOS,这就是 Smal rTos5lv0.50版。它使用了RTX51Tiny的堆栈管理机制,并像C/OS-Ⅱ一样是抢占式的。虽然它为51系列单片机编写,但比较容易移植到其他CPU上。到2002年6月,经过一些实践的检验, Small rtos51升级到V1.00版,这也是公开发布的第一个版本。日前 Small rtos51最新版本为V1.12.1版,vI20.0版本也已基本完成,在本书发售时应该已经发布,读者可以到http://www.zlgmcu.cen/philips/philips-embedsys.asp下载最新版。舀前SmallRTOS51的所有版本均可以免费在任何领域使用,详细情况请参考使用许可证见附录A)。V1.26.0版与V1.I2.1版相比,主要有以下改变支持任务动态建立与删除,函数功能向一般的RTOS靠挽;支持C51的重入函数(用关键字 reentrant定义的函数);支持动态内存分配(使用动态内存分配的任务必须使用重入栈)并增加一个对 PHILIPS公司的ARM(LPC2103LPC2105/LPC2104)的移植本书的原理篇(第0章到第10章)以 Small rtos51V1.12.1版为基础,通过分析源码介绍 Small rtos 1原理。第0章源自与 Small rt(S51V1.00版本同时发布的我撰写的文章《单片机RTOS随想曲》,即现在的绪论,主要说明学习嵌入式实时操作系统的必要性。第1章筒单介绍 Small rtos51的特点、运行条件等知识。第2章通过一个简单的例子说明如何使用 Small rtos5l。第3章介绍一些基本概念。第4章分析任务管理的代码。这部分是RTOS的真正核心核心豹其他部分,如消息队列、延时/超时等都可以看作是基于RTOS的中间件(或者说驱动程序)。这一章还分析了延时超时处理代码。第5章则详细分析了Small rtos51与CPU相关的代码,揭示了8051系列单片机如何从个任务切换到另一个任务。对于初学者这是RTOS中比较神秘的地方。第6章和第7章介绍 SmaIl Rtos51的两种通信方式:信号量和消息队列。它们与标准的信号量和消息队列有细微差别。第8章介绍如何把 Small rtoss移植到其他的微处理器框架上。第9章和第10章分别给出函数参考手册和系统配置手册;以便用户使用 Small rtos51。本书的应用篇(第1l章到第24章)以DP-51单片杌仿真实验仪为硬件基础,介绍各种常用硬件 Small rtos51下的中间件(驱动程序)的编写方法,并在最后绐出一个完整的实例,说明如何编写基于RTs的程序。这些中间件虽然基于DP-51单片机仿真实验仪,但是其与硬件相关的部分基本独立,很容易移植到其他硬件上。第11章和第12章介绍IP-51单片杌仿真实验仪的硬件,以便用户容易读懂后面的程序。第13章简单介绍如何为 Smart51编写中间件驱动程序)这对使用其他ROS也有一定的参考价值。从第14章到第23章分别分柝了各种常用硬件(ICD扫描、LCD显示、软定时器键盘扫描、串行通信、ⅣC总线、串行E2PROM、串行实时时钟、CAN总线和USB)的驱动程序(中间件)的编写方法。它们都是采用首先介绍原理;然后以分析源代码的形式编写其驱动程序的写作方法,一般还给出应用实例。第24章给出一个比较完幣的例子,说明如何编写基于 RTOS的程序对于本书的出版,首先要感谢使用和关心 Small rtos51的网友,没有他们,Small rtos51也许是昙花一现;更重要的是要感谢我的家人。 Small rtos51及本书基本上是利用业余时间编写的,我的家人使我有充足的时间完成SmllRTOS51及本书。但最重要的是要感谢周立功先生及其公司的员工。本书实际上是由周立功先生负责策划的,并给本书的编写提供了很多指导和建议,而且还引用了很多广州周立功单片机技术有限公司的内部资料作为参考。参与本书编写的还有刘养海、刘英斌、黄晓清、黄绍斌。由于我是第一次写书,且对嵌入式实时操作系统的理解并不深刻,若书中有不恰当甚至完全错误的地方,恳请各位同行指正。陈明计2003年8月28日广州周立功单片机发展有限公司地址:广州市天河区天河北路689号光大银行大厦16楼D2邮编:510630电话:(Q20)387309163873091738730975387309?7传真:(020)38730925电子邮箱:nfo@zlgmcllcom网址:htp:!/www.zlgmcu.cm技术支持电话:(020)85520995855397968554738568554162185541773电子邮箱:ARM@ zlgmcu,com广州周立功专卖店地址:广州市天河区新赛格电子城203~24室邮编:510630电话:(020)87578534传真:(020)87578842深圳周立功地址:深圳市探南中路2070号电子科技大夏C座18楼D邮编:518031电话:(0755)83287588传真:(0755)83274266成都局立功地址:成都市一环路南一段57号金城大厦618室邮编:610041电话:(0288549320传真:(028)85439505北京周立功地址:北京海淀区黄庄知春烙113号银网中心715室〔中发电子市场斜对面)邮编:190086电话:(010)625361?96253617982614433传真:(010)82614433上海周立功地址:上海市中山西路827号东华大学十海喜天游大洒店4楼C31室邮编:200051电话:(021)6219015传真:021)62199016杭州周立功地址杭州市教工路2号杭州电子市场仪器仪表城二楼555室邮编:310012电话:(0571)88271834传真:(0571)88271326南京周立功地址;南京市珠江路280号珠江大厦2006室邮编:210018电话:(025)3613221传真:(025)3641103
用户评论