嵌入式可配置实时操作系统eCos软件开发
基本信息
- 作者: (美)Anthony J.Massa [作译者介绍]
- 译者: 颜若麟 孙晓明 尤伟伟 林巧民
- 丛书名: Bruce Perens开源系列
- 出版社:北京航空航天大学出版社
- ISBN:7810777327
- 上架时间:2006-6-26
- 出版日期:2006 年5月
- 开本:16开
- 页码:336
- 版次:1-1
- 所属分类:
计算机 > 计算机组织与体系结构 > 嵌入式计算机
计算机 > 操作系统 > 综合
内容简介回到顶部↑
ecos(embedded configurable operating system)是一个源码公开、功能完备和完全免费的嵌入式实时操作系统,它的实时性、高度可配置性、可移植性、可裁剪性使其可以满足各类16位、32位和64位嵌入式系统设计和开发的需求。
本书全面介绍了ecos系统的体系结构及其各组成部分,包括ecos的实时内核、硬件抽象层、线程及同步机制、设备驱动、文件系统、网络支持等,详细阐述了ecos开发环境建立、配置方法和ecos的移植。在本书中,作者结合一个完整的开发实例系统介绍了使用ecos开发应用的全部过程,能够帮助读者快速掌握如何使用redboot建立一个调试环境、建立ecos的库以及基于ecos的开发应用。
本书全面介绍了ecos系统的体系结构及其各组成部分,包括ecos的实时内核、硬件抽象层、线程及同步机制、设备驱动、文件系统、网络支持等,详细阐述了ecos开发环境建立、配置方法和ecos的移植。在本书中,作者结合一个完整的开发实例系统介绍了使用ecos开发应用的全部过程,能够帮助读者快速掌握如何使用redboot建立一个调试环境、建立ecos的库以及基于ecos的开发应用。
作译者回到顶部↑
本书提供作译者介绍
Anthony J.Massa在San Diego大学取得电气工程B.S和B.A双学位。他的大部分时间是开发嵌入式软件、设备驱动程序和应用各种8、16、32位处理器以及各种各样的RTOS平台。Anthony也有硬件设计的经验,同时还在各种Windows操作系统平台上进行驱动程序和应用程序的开发。
Anthony具有开发各种成功产品的经历,如PC卫星接收卡、机顶盒、因特网无线调试解调器、网络广播设备以及电缆调试解调器等。Anthony在包括Doctor Dobb’s Journal、 Embedded Systems Programming、 Software Development和 EDN等在内.. << 查看详细
Anthony具有开发各种成功产品的经历,如PC卫星接收卡、机顶盒、因特网无线调试解调器、网络广播设备以及电缆调试解调器等。Anthony在包括Doctor Dobb’s Journal、 Embedded Systems Programming、 Software Development和 EDN等在内.. << 查看详细
目录回到顶部↑
第1章 走近ecos的世界
1.1 一切从这里开始——cygnus solutions1
1.2 ecos的由来2
1.2.1 简而言之——可配置性3
1.2.2 ecos的配置方法3
1.2.3 ecos核心组件5
1.2.4 处理器和评估板的支持6
1.2.5 ecos的支持6
1.3 ecos的体系结构7
1.3.1 组件框架9
1.3.2 组件库9
1.3.3 配置选项12
1.3.4 组件和包13
1.3.5 目标机13
1.3.6 模板13
1.4 本章小结14
第2章 硬件抽象层hal
2.1 概述15
2.1.1 hal的目录结构17
2.1.2 hal的宏定义20
1.1 一切从这里开始——cygnus solutions1
1.2 ecos的由来2
1.2.1 简而言之——可配置性3
1.2.2 ecos的配置方法3
1.2.3 ecos核心组件5
1.2.4 处理器和评估板的支持6
1.2.5 ecos的支持6
1.3 ecos的体系结构7
1.3.1 组件框架9
1.3.2 组件库9
1.3.3 配置选项12
1.3.4 组件和包13
1.3.5 目标机13
1.3.6 模板13
1.4 本章小结14
第2章 硬件抽象层hal
2.1 概述15
2.1.1 hal的目录结构17
2.1.2 hal的宏定义20
译者序回到顶部↑
本书由Anthony J.Massa先生撰写,该书的英文版自出版以来就得到了很好的评价。译者在一次非常偶然的机会得到了该书,看了之后觉得写得非常好,就动了将其译为中文的念头;适逢北京航空航天大学出版社引进了该书的版权,进而与该出版社合作,从而得以实现此愿望。
随着国内计算机应用水平的不断提高,尤其是计算机嵌入式应用水平的提高,实时操作系统RTOS(Real Time Operating System)越来越得到计算机嵌入式应用人员的重视,应用也越来越广泛。出现这种局面,是因为RTOS简化了应用系统软件的设计,保证了系统实时性(响应及时性)等。在苛刻的应用环境(如反应迅速的工业应用场合以及航空、航天应用场合等),RTOS得到了非常广泛的应用,效果也非常好。例如,美国NASA自20世纪80年代末以来,就一直在航天器中采用实时操作系统,从最早的“火星登陆者”到“勇气号”都采用了RTOS(VxWorks),事实也证明了这是非常成功的。尤其是后者,还对存储器进行了格式化。
译者一直认为,要想应用好RTOS,必须深入研究RTOS,而且要研究透,要不就谈不上高水平地应用RTOS。对于不开放源代码的商业RTOS是如此,对于开放源代码的RTOS更是如此。要研究RTOS,最好从开放源代码的RTOS开始,因为对于具备基本功能的RTOS而言,其原理差别不是很大。
嵌入式可配置操作系统eCos(Embedded Configurable Operating System)是开放全部源代码的操作系统,其支持的特性很多,包括了目前通用的各种硬件特性,如PCI总线、USB总线、IPv4、IPv6、各种文件系统以及GUI接口等。它具备的这些特性对于一个有志于计算机嵌入式应用人员的“产、学、研”是非常有帮助的,这是其他开源RTOS所不具备的(一般的开源RTOS只是提供内核,要在实际工程中应用还需要做很多工作,如文件系统、GUI接口、网络协议栈等,这些都需要自己解决)。
eCos具有很强的扩展性,这与它采用的结构紧密相关。通过阅读本书后续章节就会明白,eCos采用组件来扩展其功能,因此任何符合eCos组件规范的组件代码都可以对eCos进行某方面的扩充。经常登录eCos相关网站,可找到很多非常好用的第三方组件。这些组件都是eCos爱好者或应用开发人员辛勤劳动的结晶,从另一方面也说明了eCos的扩展性和大众对eCos的参与。
尤其重要的一点是,可根据需要对eCos的代码进行裁剪。这样便可以大大减少不必要的代码,而又不降低其性能,这对于计算机嵌入式应用是很重要的。在这方面,eCos无疑是很出色的。通过配置工具,可对包含eCos内核代码在内的绝大部分代码进行裁剪,从而去掉无关代码,减小代码尺寸。这对于包括商业RTOS在内的RTOS来说都很难做到这一点。
eCos的功能非常全面,商业RTOS能提供的功能,eCos基本上都提供了。因此,可以说,任何商业RTOS能胜任的,eCos都能胜任。
eCos的性能无须质疑,全球众多的应用人员的口碑已经证实了这一点。而eCos在各种苛刻环境和条件下的正确运行,更说明了eCos非凡的品质。再者,eCos的发展非常有活力,作为eCos东家的Red Hat公司实力是不容忽视的,何况还有全球这么多爱好者在不断地发展eCos。因此,有理由相信,eCos会越来越好!
译者相信,本书对于那些有志于嵌入式应用研究或正在研究RTOS的人员有非常高的参考价值。
在本书翻译过程中得到了北京航空航天大学出版社胡晓柏老师的大力支持。本书的出版与其努力是分不开的,在此表示感谢。本书的序、前言、第4、5、8、9、10、11、12章以及所有附录由颜若麟翻译,第3、6、7章由尤伟伟翻译,第1、2、13章由中科院软件所孙晓明和林巧民翻译。由于时间紧迫,错误在所难免,希望其不至于引起意义上的误解,欢迎批评指正。
译者
2006年3月
随着国内计算机应用水平的不断提高,尤其是计算机嵌入式应用水平的提高,实时操作系统RTOS(Real Time Operating System)越来越得到计算机嵌入式应用人员的重视,应用也越来越广泛。出现这种局面,是因为RTOS简化了应用系统软件的设计,保证了系统实时性(响应及时性)等。在苛刻的应用环境(如反应迅速的工业应用场合以及航空、航天应用场合等),RTOS得到了非常广泛的应用,效果也非常好。例如,美国NASA自20世纪80年代末以来,就一直在航天器中采用实时操作系统,从最早的“火星登陆者”到“勇气号”都采用了RTOS(VxWorks),事实也证明了这是非常成功的。尤其是后者,还对存储器进行了格式化。
译者一直认为,要想应用好RTOS,必须深入研究RTOS,而且要研究透,要不就谈不上高水平地应用RTOS。对于不开放源代码的商业RTOS是如此,对于开放源代码的RTOS更是如此。要研究RTOS,最好从开放源代码的RTOS开始,因为对于具备基本功能的RTOS而言,其原理差别不是很大。
嵌入式可配置操作系统eCos(Embedded Configurable Operating System)是开放全部源代码的操作系统,其支持的特性很多,包括了目前通用的各种硬件特性,如PCI总线、USB总线、IPv4、IPv6、各种文件系统以及GUI接口等。它具备的这些特性对于一个有志于计算机嵌入式应用人员的“产、学、研”是非常有帮助的,这是其他开源RTOS所不具备的(一般的开源RTOS只是提供内核,要在实际工程中应用还需要做很多工作,如文件系统、GUI接口、网络协议栈等,这些都需要自己解决)。
eCos具有很强的扩展性,这与它采用的结构紧密相关。通过阅读本书后续章节就会明白,eCos采用组件来扩展其功能,因此任何符合eCos组件规范的组件代码都可以对eCos进行某方面的扩充。经常登录eCos相关网站,可找到很多非常好用的第三方组件。这些组件都是eCos爱好者或应用开发人员辛勤劳动的结晶,从另一方面也说明了eCos的扩展性和大众对eCos的参与。
尤其重要的一点是,可根据需要对eCos的代码进行裁剪。这样便可以大大减少不必要的代码,而又不降低其性能,这对于计算机嵌入式应用是很重要的。在这方面,eCos无疑是很出色的。通过配置工具,可对包含eCos内核代码在内的绝大部分代码进行裁剪,从而去掉无关代码,减小代码尺寸。这对于包括商业RTOS在内的RTOS来说都很难做到这一点。
eCos的功能非常全面,商业RTOS能提供的功能,eCos基本上都提供了。因此,可以说,任何商业RTOS能胜任的,eCos都能胜任。
eCos的性能无须质疑,全球众多的应用人员的口碑已经证实了这一点。而eCos在各种苛刻环境和条件下的正确运行,更说明了eCos非凡的品质。再者,eCos的发展非常有活力,作为eCos东家的Red Hat公司实力是不容忽视的,何况还有全球这么多爱好者在不断地发展eCos。因此,有理由相信,eCos会越来越好!
译者相信,本书对于那些有志于嵌入式应用研究或正在研究RTOS的人员有非常高的参考价值。
在本书翻译过程中得到了北京航空航天大学出版社胡晓柏老师的大力支持。本书的出版与其努力是分不开的,在此表示感谢。本书的序、前言、第4、5、8、9、10、11、12章以及所有附录由颜若麟翻译,第3、6、7章由尤伟伟翻译,第1、2、13章由中科院软件所孙晓明和林巧民翻译。由于时间紧迫,错误在所难免,希望其不至于引起意义上的误解,欢迎批评指正。
译者
2006年3月
前言回到顶部↑
不论你是否正在做一个项目还是转向一个新的开发,也不论最后你决定采用何种嵌入式实时操作系统,都会产生很多问题,包括启动资金得花多少,它们是否包括与应用RTOS相关的技术使用费以及开发工具的质量如何和是否可以得到源代码,该嵌入式操作系统有些什么特点等。在大多数情况下,直接费用与技术使用费方面成本最低的方案就是最好的方案,要长期使用,排除技术使用费对于大批量的产品是非常重要的。这就要使用好每一分钱。
也要计算先前投入,同时估计目前方案的开发人员的学识和费用等,将一些现成的代码转到新的平台时可能会使人产生忧虑,这取决于项目的大小。将新的嵌入式实时操作系统移植到自己的新硬件会产生更多忧虑。在是否开发自己的嵌入式操作系统抑或使用已经商业化了的方案方面的决定,在某些方面是非常表面的,特别是当某些特定的硬件平台需要一些特殊功能的时候。在一些情况下,开发自己的嵌入式实时操作系统可能是惟一的解决方案。然而,可以通过已经应用过的软件提前进行开发,在各种平台上、不同情形下测试之;更为重要的是,以在即将交付使用的产品的正确运行来证明其可行性。这就排除了进行功能测试的必要。
本书着眼于这些方面的一个解决方案: 嵌入式可配置操作系统(eCos)。eCos的源代码开放和无技术使用费的特性使得其可以下载、安装和使用,而关键就是没有任何成本。当看完这本书时,你就有了一个完整的嵌入式软件开发环境——开发任何项目的所有必要的工具。
由于eCos是开源的,作为开发人员,处于对自己的嵌入式软件完全控制的地位,甚至在eCos开发系统中描述的工具也是开源的,因此允许完全自己作主,而且eCos开发社区可为你提供必要的帮助。本书结构和内容浏览
现在来看本书的结构,并了解本书涵盖的内容及其所在的章节,这样就可以只看自己需要理解的eCos某一方面的内容。本书尽量在章节的开始部分提供内容信息。先从eCos的关键组件入手,然后是系统提供的附加功能,最后是试图使用eCos和开发环境。
对于新的eCos开发人员,或者对嵌入式软件也不熟悉的人员,从零开始讲述,对于其理解组成eCos系统的组件是很有帮助的。这给了他们一个理解eCos特点的基础,然后就可在实际的系统中应用这些组件。
对于那些仅仅是测评eCos的有经验的开发人员,他们可以跳过接下来的一些章节,直接体验eCos、开发平台的安装和一些可以快速安装的工具和立即得出结果的例子。这就回答了这些疑问:“eCos能在我的项目中工作吗?”等。
当前eCos用户的疑问都可通过不同的视角来理解eCos的概念,从而在eCos的知识中找到答案。
第1章“eCos导引”,从eCos的介绍开始,其中包括eCos开源项目的背景及其支持公司;同时也对eCos的术语进行了详细的描述,这些术语贯穿于本书的始终,并流行于eCos开发社区。本书的开始部分试图给那些不熟悉eCos的开发人员提供一种熟悉eCos开源项目的途径。
接下来,粗略地讨论了eCos系统中的关键组件。在关键组件的章节中提供了这些不同的软件组件是如何独立而又协同工作以提供系统所需要的功能的。
第2章“硬件抽象层”,集中讨论与硬件相关的软件,正是这些软件对高级别的软件模块屏蔽了硬件的低级别操作。
第3章“异常与中断”,详细讨论了异常与中断,并说明了它们是如何在eCos系统中建立和处理的。在第4章“虚拟向量”中讨论了虚拟向量,它提供了一种ROM和RAM应用程序共享服务的方法。eCos嵌入式操作系统的心脏——内核,是在第5章“内核”中讲述的。内核提供调度功能和软件的同步机制。第6章“线程和同步机制”,讨论了eCos中的执行基本单位——线程,并提供了eCos所支持的各种同步机制的详细情况。
第7章“其他eCos架构组件”,通过时间组件、声明和跟踪功能和I/O控制系统来继续讨论eCos的不同组件。
第8章“附加功能和第三方组件”,包括大量的eCos中可利用的一些额外特性。它们是由eCos维护人员和第三方人员开发的,这些包含网络支持、ROM Monitor、文件系统、PCI总线支持、USB支持和GoAhead 网络服务器等。
第9章“RedBoot ROM Monitor”,主要讲述RedBoot ROM Monitor。这个独立的程序设计用于嵌入式系统的调试和启动环境。RedBoot是一个基于eCos的程序,是利用硬件抽象层作为其基础的。
第10章“宿主开发平台”,从开发即开发工具开始手把手地实践。讨论了Cygwin本地工具、GNU交叉开发工具和eCos开发包,也讨论了CVS客户端的安装。该工具可以链接在线的eCos源代码库,这就给了用户充分利用补丁和eCos源代码扩展功能的机会。
在第11章“eCos工具集”中,研究了eCos的开发工具集,详细讨论了这些工具是如何在eCos源代码上运行的,以及这些工具的布置,也讨论了一些开源工具和完全开源的嵌入式开发系统,为下一步作好准备: 利用这些工具来建立应用程序。
第12章“eCos应用实例”,使你学以致用。本章从建立eCos映像流程的综述开始,结下来就是建立RedBoot ROM Monitor,然后就是建立eCos嵌入式实时操作系统,最后加入附加组件来集成系统以适应嵌入式软件的需求。第13章“eCos的移植”,讨论如何将eCos移植到其他的硬件平台上。这是将自己的应用程序在新目标硬件平台上运行起来的关键一步,也是在嵌入式软件开发中的主要目标。开发系统与实例如前所述,在第10章我们讨论建立eCos开发环境的流程,该开发系统包括本地Windows版的Cygwin工具、GNU交叉开发工具(binutils、compiler和debugger)、eCos配置与管理工具、CVS客户端、lint程序。该系统可使用户配置和建立eCos库,然后把它们链接为运行eCos实时嵌入式操作系统的应用程序。紧接着就是配置一个完全开源的嵌入式开发环境。
在第12章给出了建立RedBoot、eCos库和应用程序的实例,虽然不要求特定的开发板来运行示例程序,但一台具有目标平台的PC机还是需要的。这是熟悉开发工具的较好方法,因为手头总是很容易找到空闲的PC机。虽然原版书的光盘原版书的光盘内容可以在http://www.phptr.com/title/0130354732#中下载。中包含有Intel x86系列和PowerPC系列处理器架构的GNU交叉开发环境工具的二进制文件,而为其他架构的处理器建立GNU交叉开发环境的指导是包含在附录D“建立GNU交叉开发工具”中的。
在Windows开发系统中安装嵌入式软件开发工具后,也建立了示例程序。但是,在Linux系统中建立嵌入式开发系统和一些必要文件也包含在光盘中。由于eCos配置工具可在Linux和Windows下运行,建立开发系统和运行示例程序的过程对两个操作系统都是适用的。
也要计算先前投入,同时估计目前方案的开发人员的学识和费用等,将一些现成的代码转到新的平台时可能会使人产生忧虑,这取决于项目的大小。将新的嵌入式实时操作系统移植到自己的新硬件会产生更多忧虑。在是否开发自己的嵌入式操作系统抑或使用已经商业化了的方案方面的决定,在某些方面是非常表面的,特别是当某些特定的硬件平台需要一些特殊功能的时候。在一些情况下,开发自己的嵌入式实时操作系统可能是惟一的解决方案。然而,可以通过已经应用过的软件提前进行开发,在各种平台上、不同情形下测试之;更为重要的是,以在即将交付使用的产品的正确运行来证明其可行性。这就排除了进行功能测试的必要。
本书着眼于这些方面的一个解决方案: 嵌入式可配置操作系统(eCos)。eCos的源代码开放和无技术使用费的特性使得其可以下载、安装和使用,而关键就是没有任何成本。当看完这本书时,你就有了一个完整的嵌入式软件开发环境——开发任何项目的所有必要的工具。
由于eCos是开源的,作为开发人员,处于对自己的嵌入式软件完全控制的地位,甚至在eCos开发系统中描述的工具也是开源的,因此允许完全自己作主,而且eCos开发社区可为你提供必要的帮助。本书结构和内容浏览
现在来看本书的结构,并了解本书涵盖的内容及其所在的章节,这样就可以只看自己需要理解的eCos某一方面的内容。本书尽量在章节的开始部分提供内容信息。先从eCos的关键组件入手,然后是系统提供的附加功能,最后是试图使用eCos和开发环境。
对于新的eCos开发人员,或者对嵌入式软件也不熟悉的人员,从零开始讲述,对于其理解组成eCos系统的组件是很有帮助的。这给了他们一个理解eCos特点的基础,然后就可在实际的系统中应用这些组件。
对于那些仅仅是测评eCos的有经验的开发人员,他们可以跳过接下来的一些章节,直接体验eCos、开发平台的安装和一些可以快速安装的工具和立即得出结果的例子。这就回答了这些疑问:“eCos能在我的项目中工作吗?”等。
当前eCos用户的疑问都可通过不同的视角来理解eCos的概念,从而在eCos的知识中找到答案。
第1章“eCos导引”,从eCos的介绍开始,其中包括eCos开源项目的背景及其支持公司;同时也对eCos的术语进行了详细的描述,这些术语贯穿于本书的始终,并流行于eCos开发社区。本书的开始部分试图给那些不熟悉eCos的开发人员提供一种熟悉eCos开源项目的途径。
接下来,粗略地讨论了eCos系统中的关键组件。在关键组件的章节中提供了这些不同的软件组件是如何独立而又协同工作以提供系统所需要的功能的。
第2章“硬件抽象层”,集中讨论与硬件相关的软件,正是这些软件对高级别的软件模块屏蔽了硬件的低级别操作。
第3章“异常与中断”,详细讨论了异常与中断,并说明了它们是如何在eCos系统中建立和处理的。在第4章“虚拟向量”中讨论了虚拟向量,它提供了一种ROM和RAM应用程序共享服务的方法。eCos嵌入式操作系统的心脏——内核,是在第5章“内核”中讲述的。内核提供调度功能和软件的同步机制。第6章“线程和同步机制”,讨论了eCos中的执行基本单位——线程,并提供了eCos所支持的各种同步机制的详细情况。
第7章“其他eCos架构组件”,通过时间组件、声明和跟踪功能和I/O控制系统来继续讨论eCos的不同组件。
第8章“附加功能和第三方组件”,包括大量的eCos中可利用的一些额外特性。它们是由eCos维护人员和第三方人员开发的,这些包含网络支持、ROM Monitor、文件系统、PCI总线支持、USB支持和GoAhead 网络服务器等。
第9章“RedBoot ROM Monitor”,主要讲述RedBoot ROM Monitor。这个独立的程序设计用于嵌入式系统的调试和启动环境。RedBoot是一个基于eCos的程序,是利用硬件抽象层作为其基础的。
第10章“宿主开发平台”,从开发即开发工具开始手把手地实践。讨论了Cygwin本地工具、GNU交叉开发工具和eCos开发包,也讨论了CVS客户端的安装。该工具可以链接在线的eCos源代码库,这就给了用户充分利用补丁和eCos源代码扩展功能的机会。
在第11章“eCos工具集”中,研究了eCos的开发工具集,详细讨论了这些工具是如何在eCos源代码上运行的,以及这些工具的布置,也讨论了一些开源工具和完全开源的嵌入式开发系统,为下一步作好准备: 利用这些工具来建立应用程序。
第12章“eCos应用实例”,使你学以致用。本章从建立eCos映像流程的综述开始,结下来就是建立RedBoot ROM Monitor,然后就是建立eCos嵌入式实时操作系统,最后加入附加组件来集成系统以适应嵌入式软件的需求。第13章“eCos的移植”,讨论如何将eCos移植到其他的硬件平台上。这是将自己的应用程序在新目标硬件平台上运行起来的关键一步,也是在嵌入式软件开发中的主要目标。开发系统与实例如前所述,在第10章我们讨论建立eCos开发环境的流程,该开发系统包括本地Windows版的Cygwin工具、GNU交叉开发工具(binutils、compiler和debugger)、eCos配置与管理工具、CVS客户端、lint程序。该系统可使用户配置和建立eCos库,然后把它们链接为运行eCos实时嵌入式操作系统的应用程序。紧接着就是配置一个完全开源的嵌入式开发环境。
在第12章给出了建立RedBoot、eCos库和应用程序的实例,虽然不要求特定的开发板来运行示例程序,但一台具有目标平台的PC机还是需要的。这是熟悉开发工具的较好方法,因为手头总是很容易找到空闲的PC机。虽然原版书的光盘原版书的光盘内容可以在http://www.phptr.com/title/0130354732#中下载。中包含有Intel x86系列和PowerPC系列处理器架构的GNU交叉开发环境工具的二进制文件,而为其他架构的处理器建立GNU交叉开发环境的指导是包含在附录D“建立GNU交叉开发工具”中的。
在Windows开发系统中安装嵌入式软件开发工具后,也建立了示例程序。但是,在Linux系统中建立嵌入式开发系统和一些必要文件也包含在光盘中。由于eCos配置工具可在Linux和Windows下运行,建立开发系统和运行示例程序的过程对两个操作系统都是适用的。








点击看大图





加载中...

