WindRiverworkbench介绍
1. 嵌⼊式系统开发所⾯临的问题
嵌⼊式软件开发有别于桌⾯软件系统开发的⼀个显著的特点,是它⼀般需要⼀个交叉编译和调试环境,即编辑和编译软件在主机上进⾏(如在PC机的 Windows操作系统下),编译好的软件需要下载到⽬标机上运⾏(如在⼀个PPC的⽬标机上的VxWorks操作系统下),主机和⽬标机建⽴起通讯连 接,并传输调试命令和数据。由于主机和⽬标机往往运⾏着不同的操作系统,⽽且处理器的体系结构也彼此不同,这就提⾼了嵌⼊式开发的复杂性。
总的来说,嵌⼊式开发所⾯临的问题主要表现在以下⼏个⽅⾯:
1.1涉及多种CPU及多种OS
嵌⼊式的CPU或处理器可谓多种多样,这包括了Pentium、MIPS、PPC、ARM,XScale等,⽽且应⽤都很⼴,在其上运⾏的操作系统也有不 少,如VxWorks、Linux、 Nuclears、WinCE等等,即使在⼀个公司之内,也会同时使⽤好⼏种处理器,甚⾄⼏种嵌⼊式操作系统。如果需要同时调试多种类型的板⼦,每个板⼦ 上⼜运⾏着多个任务或进程,那复杂性是可想⽽知的。
1.2 开发⼯具种类繁多
不仅各种操作系统有各⾃的开发⼯具,在同⼀系统下开发的不同阶段也有不同的开发⼯具。如在⽤户的⽬标板开发初期,需要硬件仿真器来调试硬件系统和基本的驱 动程序,在调试应⽤程序阶段可以使⽤交互式的开发环境进⾏软件调试,在测试阶段需要⼀些专门的测试⼯具软件进⾏功能和性能的测试,在⽣产阶段需要固化程序 及出⼚检测等等。⼀般每⼀种⼯具都要从不同的供应商处购买,都要单独去学习和掌握,这⽆疑增加了整个公司的⽀出和管理的难度。
1.3 对⽬标系统的观察和控制
由于嵌⼊式硬件系统千差万别,软件模块和系统资源也多种多样,要使系统能正常⼯作,软件开发者必须要对⽬标系统具有完全的观察和控制能⼒,例如硬件的各种 寄存器、内存空间,操作系统的信号量、消息队列、任务、堆栈等。 此外,嵌⼊式系统变化更新⽐较快,对开发时间要求⽐较紧,尤其是消费类产品更是如此,如果有⼀套功能强⼤的嵌⼊式软件集成开发⼯具可以满⾜嵌⼊式软件开发 各个阶段的需求,同时⼜使⽤⽅便,界⾯友好,那是最理想不过了。美国风河系统公司新近推出的“Workbench”嵌⼊式软件开发平台正是这样⼀
个“全能 选⼿”。
2.Workbench嵌⼊式开发平台的特点和优势
2.1 以开放的Eclipse平台为框架,调试环境可充分进⾏客户化定制
Eclipse软件框架结构是⼀个完整和开放的基础平台,它能够将图形⼯具以及任何必须的功能通过标准的接⼝集成到同⼀个开发环境中。⽬前IBM,HP及 Borland等商业开发⼯具提供商均⽀持Eclipse开发平台,⽹上也存在着⼤量的为Eclipse平台开发插件的社区。由于Workbench符合 Eclipse框架,所以这些商⽤的和免费的符合Eclipse平台接⼝的插件均可以集成到Workbench开发环境中,这极⼤扩展了 Workbench的功能。例如,如果⽤户想使⽤⾃⼰熟悉的配置管理⼯具或者编辑器,就可以到这样⼀个插件并集成进来,这样⽤户就会感到开发过程⾮常适 合⾃⼰的需要。
不仅如此,风河公司还对Eclipse做了多⽅⾯的增强,从⽽显著提⾼了系统的性能。例如Workbench实现了异步接⼝功能,需要长时间运⾏的任务可 以在后台运⾏,与此同时还能继续接收开发⼈员的调试请求,这样不⾄于使开发⼈员做长时间的等待;另外,Workbench还优化了对⽬标机数据的请求机 制,即系统只检索在集成开发环境的当前视图中所需要的少量数据,看不见的数据则不向⽬标机索取,这样就⼤⼤提⾼了交叉调试时系统的响应速度并减少了系统负 荷。
2.2 单⼀的全功能平台,涉及到产品的整个开发周期
⼀个嵌⼊式产品的软件开发,其“实质性”的过程包括了从开始的硬件启动,BSP(板级⽀持包)及驱动的开发,到应⽤程序的开发,再到后来的测试、验证,直 ⾄最后的⽣产阶段。⼀般来说,每个阶段都可以到不同的⼯具来使⽤(实际情况也⼤都如此)。⽽风河公司的Workbench开发平台改变了这⼀现状,
它以 ⼀个单⼀的Workbench平台,提供了上述开发阶段所需要的⼏乎所有功能。具体来说,这包括了硬件系统仿真功能(有配套的硬件仿真器),⼯程管理和构 建系统,编辑器,版本管理,命令解释器,调试⼯具,系统分析⼯具,系统观察⼯具,FLASH编程⼯具等等,再加上风河公司⾃⼰开发的和第三⽅⼚家提供的各 种软件功能模块和开发⼯具的插件,所有这⼀切,都集成在Workbench这个统⼀的平台之下,这必将⼤⼤改善嵌⼊式软件的开发环境。对⼀个企业来讲,更 可以提⾼效率,减少投资,简化管理。嵌⼊式软件开发的各个阶段以及Workbench在各个阶段提供的功能如图2所⽰。
2.3 ⼴泛的适⽤性,特别适合复杂的⽬标系统
Workbench平台的⼴泛适⽤性主要体现在七“多”上,即多任务、多⽬标、多模式、多OS、多CPU、多连接形式、多主机环境。
多任务:在Workbench调试环境下,可以同时连接⽬标系统上的多个不同的任务(或者进程),每个任务都可以单独设置断点,进⾏单步调试。开发者再也 不⽤象以前那样,为了调试多个任务,先断开⼀个任务的连接,再连接到另外⼀个任务上去。这就给具有多任务的⽬标系统开发提供了便利,尤其是需要查看多个任 务之间的配合关系时体现的优势更加明显;
多CPU:我们知道,风河公司的Tornado开发环境可以说已经⽀持了全系列的主流CPU(或处理器),⽽Workbench也将继承这个传统,⽬前推 出的Workbench 2.2版本已经可以⽀持PENTIUM、PPC、MIP
S系列的所有主流CPU。对ARM、XSCALE、SH等系列的⽀持正在移植和测试中,不久即将发 布正式版本(Workbench 2.3)。
多OS:⽬前的Workbench 2.2不仅⽀持VxWorks嵌⼊式操作系统(6.0以上版本),⽽且⽀持Linux操作系统,这确实给⼴⼤的Linux嵌⼊式开发⼈员带来了福⾳。⼤家 知道,由于Linux操作系统的“免费”性质,使得其上的软件开发系统⼀直⽐较分散和孤⽴,⽤起来不是特别⽅便,有了Workbench以后,嵌⼊式 Linux的开发就同VxWorks的开发⼀样⽅便和快捷了。并且以后,如果有必要的话,还可以增加对其它类型嵌⼊式操作系统的⽀持,因为 Workbench本⾝是开放和可扩展的。
嵌入式系统开发是什么多⽬标:Workbench对复杂⽬标系统的强有⼒的⽀持还表现在它可以⽀持同时连接多块⽬标板进⾏调试开发,更为可贵的是这些⽬标
板上处理器可以各不相 同,并且在⽬标板上运⾏的操作系统也可任意(既可以运⾏VxWorks,也可以运⾏Linux),⽽调试⼯作都可以在同⼀个Workbench界⾯中同时 进⾏,这⽆疑给⼀些复杂系统的调试带来了极⼤的便利。
多连接:所谓多连接,是指Workbench所在的主机和⽬标机之间可以有多种连接⽅式进⾏通讯,如果⽬标系统中存在以太⽹接⼝,那就应该⾸选以太⽹连 接,因为这种⽅式速度⽐较快;如果⽬标系统中不存在以太⽹接⼝,那也可以选⽤串⾏⼝进⾏通讯连接,除了速度较慢以外,功能上与以太⽹连接没
有什么区别。另 外,在⽬标板初始调试阶段,还可通过风河的硬件仿真器(WindRiver ICE / WindRiver Probe)进⾏连接,观察硬件状态,以迅速定位硬件问题。
多模式:在Workbench中调试程序,即可以采⽤任务模式,也可以采⽤系统模式。所谓任务模式,是指各个任务之间独⽴运⾏,暂停其中⼀个任务的运⾏不 影响其他任务的运⾏(主要⽤于调试各个任务);⽽系统模式则是指只要暂停了系统的任何⼀处,整个系统都停⽌下来(主要⽤于调试中断程序)。
多主机:这是指Workbench可以在Windows、Linux、Solaris这三⼤流⾏的主机操作系统下运⾏,这不仅可以适合不同开发者的使⽤习 惯,⽽且在⼀定程度上有利于某些⽬标系统的开发,如使⽤Linux主机环境调试运⾏Linux系统的⽬标板(但这并不是必须的)。
2.4 丰富易⽤的调试⼿段,⼤⼤加快调试进度
动态链接:⽤过Tornado开发环境的⼈都对其独特的分模块单独下载、动态链接到⽬标系统的功能深有体会,⽽Workbench也完全继承了这个特性。 有了这个功能,就使开发者不必将所有应⽤模块都编写完成再进⾏调试,也不⽤每次将应⽤模块和操作系统编译到⼀起然后下载调试,⽽是编好⼀个⼩模块,如果想 进⾏验证,只需将这个⼩模块(哪怕只是⼀个函数)编译然后下载到⽬标板中就⾏了,这⼤⼤加快了调试验证的速度,尤其是在⽬标板和主机之间是低速连接的情况 下更能体现出其优势所在。
⽬标可视:对⽬标系统的可视化是每⼀个嵌⼊式软件开发⼈员都希望得到的功能,为达到这⼀⽬的,Workbench除了提供⼀般的查看内存,积存器、变量、 调⽤树等的传统视图⼯具外,还提供了⼏种增强的系统查看⼯具:⽬标浏览器、系统观察器和SCOPETOOLS⼯具集。⽬标浏览器可以⽤来查看⽬标系统每⼀ 个系统资源的使⽤情况和当前状态,包括系统各个模块、任务、信号量、消息队列、内存、堆栈等。
系统观察器可对系统事件提供详细的分析和图形化的可视效果,同时还可展⽰在⽬标机上执⾏的应⽤程序的相关任务、中断以及系统对象之间复杂的交互作⽤。它能 够清楚地显⽰上下⽂变化以及信号量、消息队列、信号、任务、⽤户事件和记时器⼀类的系统事件,就象⼀个软件的“⽰波器”。应⽤这些系统查看⼯具,开发⼈员 可以很容易地去诊断和解决嵌⼊式系统中存在的调度问题(如死锁,饥饿和竞争),性能问题(如优先级设置,资源的竞争与互斥),定时问题等。⽽RTI SCOPETOOLS则是专门为设备类软件开发提供的⼀组强⼤的可视化⼯具集,⽤户可以动态观察整个系统平台,包括应⽤代码、第三⽅的库,甚⾄操作系统本 ⾝。Workbench 2.2中集成进来了⽤于观察函数执⾏效率的ProfileScope⼯具,⽤于观察内存使⽤效率和检测内存泄露的MemScope⼯具,和⽤于检测变量或 指定内存位置处数值的动态变化情况的StethoScope⼯具。另外,还有可选的⽤于实时跟踪代码执⾏情况的TraceScope⼯具和⽤于检测代码执 ⾏覆盖率的CoverageScope⼯具。
仿真环境:在⽬标系统的硬件开发完成之前,往往软件系统的开发也要同步进⾏,Workbench提供的
模拟仿真环境(只适⽤于针对VxWorks操作系统 的应⽤软件开发)就提供了这种同步开发的途径。VxWorks软件仿真器运⾏于主机操作系统环境中,是⼀种从
VxWorks6.0操作系统移植过来的本地 应⽤程序,它能够精确地实施VxWorks 6.0的⾼级复杂特性,包括实时进程、内存保护等,它还具有完整的⽂件系统和⽹络功能,并能调⽤主机系统API。这些特性使得在VxWorks软件仿真器 中开发复杂的系统成为可能。例如,在VxWorks软件仿真器中可以组建多个⽹络,这些⽹络不但互相之间可以通讯,还可以通过主机系统的⽹⼝与外界相连, 实现⼀个完全真实的⽹络环境;再例如,可以利⽤主机系统的显⽰屏幕来开发具有图形⽤户界⾯的应⽤程序,这是通过调⽤主机系统与图形相关的API来实现的。 ⼀般来说,⽤户可以为主机系统的任何资源编写API,⽽在VxWorks软件仿真环境中进⾏调⽤,这极⼤地扩展了VxWorks软件仿真器的功能,也更便 于应⽤软件的同步开发。
除了以上所提到的需要特别强调的功能外,Workbench的强⼤调试功能还表现在⽀持各种类型的断点设置、⽅便灵活的操作系统内核配置⼯具,具有主机 Shell和⽬标机Shell,具有4种命令解释器,以及丰富的视图界⾯等等,详细情况请参考Workbench的说明及⼿册,这⾥就不多做介绍。总之, 使⽤Workbench给开发⼈员的感受就是⽅便灵活,功能强⼤,⼏乎⽆所不能。
3.Workbench与Tornado的功能对⽐
Workbench平台相对于Tornado平台来说,各项功能均有所增强,也有不少新加⼊的功能,主要的功能对⽐如下表所列:
Workbench是对Tornado的⼀次脱胎换⾻的升级,但⽬前并不能说Workbench就可以完全取代Tornado。这是因为 Workbench只对VxWorks6.0以上的版本(具有“进程”的概念)进⾏⽀持,如果⽤户想使⽤VxWorks6.0以下的版本(扁平地址空间, 应⽤程序均在内核中运⾏),那只能⽤Tornado进⾏开发。
4.Workbench的当前应⽤状况
如上所述,Workbench⽆疑是当前嵌⼊式软件开发领域中功能⾮常强⼤的⼀个集成开发环境,它最适合应⽤于复杂系统的开发或多个开发团队的合作开发, ⽐如⼀个复杂的系统需要⽤到多种CPU或多种⽬标操作系统,或者应⽤软件本⾝⾮常复杂,具有多个任务,并且相互之间关联紧密,或者多个项⽬组之间需要进⾏ 协同开发和软件模块共享,或者企业涉及到了从硬件开发,到软件开发,再到⽣产测试的全过程。在这些情况下,考虑使⽤Workbench平台则⾮常合适,因 为这样不仅能快速有效地进⾏系统开发,并且能够有效地进⾏项⽬的组织和管理,最终从整体上降低企业的成本。
Workbench⽬前正式发布的版本是2.2版,即将推出的2.3版本则提供了对更多种类处理器和⽬标操作系统的⽀持,其功能和适⽤范围也将进⼀步增 强。在国内,已经有不少⼤型企业都正在积极地评估W
orkbench平台的使⽤,并体验其强⼤的开发能⼒和⽅便灵活的操作过程。在国外,已经有⼀些企业⽤ Workbench开发出来了⾃⼰的产品。相信不久以后,风河公司的Workbench开发平台将会遍及到嵌⼊式软件开发的各个领域,并使嵌⼊式软件开发 成为⼀个令⼈愉悦的过程。

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