WindRiver产品介绍(4)——部分增强工具介绍
呵呵,小子借花献佛,下列内容来自WindRiver的相关
产品介绍资料,偶只是编辑整理了一下下 ^_*。
四、增强的工具
PerformancePak
实时系统通常要求快速可靠。拥有PerformancePak, Tornado开发人员就拥有
两个最重要的开发快速可靠的实时系统的可视化工具:用于运行分析的
ScopeProfile和用于内存分析的MemScope。PerformancePak绑定的这两个工具
为用户深层次了解目标系统提供了强有力的手段。
ScopeProfile:
实时系统必须充分发挥处理器的性能。遗憾的是,造成CPU低效率运行的原因
很难发现。轮廓图将有助于优化和分析CPU的运行情况,从而获得各项应用时
CPU的占用情况。如果开发人员能够真正理解应用运行时CPU的性能瓶颈,就可
以很容易的提高应用代码的质量。轮廓图在编程中是很重要的,通过它可以完
整的评估应用是否过多的消耗了CPU的资源,以及系统是否充分利用了CPU的效
率。
在VxWorks实时操作系统,ScopeProfile实时刷新轮廓图,以追踪现时的CPU状
况,提供了对每个函数的详细分析,并分解当前正在运行的任务内各个程序,
精确指出何处效率不高,以及它们的效率是如何随时间变化的。ScopeProfile
与Tornado开发平台完整地集成一起,它是调整对时间极为苛刻的系统以追求
性能最优所必需的工具。
完整的函数树:
完整的函数树是用户理解和优化代码的关键。ScopeProfile既显示执行每个程
序所花的CPU时间,还可显示使用的程序,包括它所调用的所有子程序所花的
CPU时间总和。平面图只显示调用单个程序系统所花的时间,而不显示调用这
些程序的原因。
分析动态性能:
ScopeProfile保留动态记录,以便分析程序运行程序运行过程中负载的变化,
甚至可以利用ScopeProfile的数据监视窗口把结果实时地绘制出来。比柱形图
好得多,ScopeProfile可会出整个历史记录。
绘制整体图:
由于不需要特殊的编译,ScopeProfile还可以统计其他软件代码,例如操作系
统与外部库,以及开发人员的应用程序。许多性能问题是由于使用库和驱动程
序效率不高。要解决这些问题,开发人员必须查看整体图。
干预最少:
ScopeProfile不会影响一个程序的执行。其中的统计采样是快速高效的。分析
过程只占用很少的CPU时间,而且是以低优先级在后台执行。缺省情况下,轮
廓图反这些忽略了。
MemScope:
系统必须长期可靠地运行。内存的使用是实时系统设计中一个很关键的方面,
然而人们常常对内存的使用了解不够。在一些设备使用传统的调试器,这种问
题几乎是不可能被发现的,而使用StethoScope的数据监视功能,从发现问题
到解决问题仅花了几分钟。如果不使用StethoScope,这个问题可能需要几天
时间才能解决。
StethoScope对于网络数据报到、温度的读取和仿真状态变量的监视也是很有
用的。
提高开发效率:
StethoScope已成为工业方面很多行业的开发的工具,比如电信,网络,视频
编辑,控制,信号处理,半导体制造设备,仪器仪表,科学研究,汔车工具,
航空,机器人,工业自动化以及医疗设备等许多领域。
StethoScope 5.1
StethoScope是一个实时图形显标与数据采集的工具。在应用程序运行过程中
,用户可以很容易诊断软件故障与性能问题,并给应用程序以最小的干预。
利用StethoScope,开发人员可以观察系统内任意一组变量或内存的分布,查
看可能错过的峰值和故障。程序运行时,可以在指定事件发生时或者在变量发
生变化时开始采集数据,并把数据存入硬盘。
StethoScope是一个功能强大的诊断工具,可用于观察运行程序的内部,实时
分析程序,并保持程序的实时性。StethoScope让开发人员能立即察觉到代码
的改变、参数的改变或者发生的外部事件对系统所带来的影响。
实时图形显示
StethoScope可以同时打开几个窗口,可在每个窗口内绘制不同信号,单击鼠
标可查看所选定的信号,可实时观察信号或存入缓冲区,以及可离线查看缓冲
区。还可在屏幕上测量、放大或缩小图形。StethoScope的触发工具可以仅捕
捉所需要的事件,信号的变化可触发数据采集,或者在事件发生前后与过程中
采集数据。
最小干预,支持大系统与多数据类型:
StethoScope不影响系统的实时性能。数据的采集速度很快,采集的数据以低
优先级在后台传送。StethoScope信号的层次化管理工具,允许大型系统同时
监视数百个变量。StethoScope支持所有常用的数据类型而不损失数据的精度
。其中包括指针与结构等。
StethoScope工作方式:
图1表示StethoScope的结构。StethoScope维持一个被监视变量的列表。程序
运行时,所有变量的值被快速复制到本地缓存,然后由一个低优先级的线程把
数据发送到宿主机。
StethoScope的运行:
图2是StethoScope跟踪一个马达传感器的例子。本例中,系统处于振动状态。
尚且不知是由于控制策略不当,机械元件受损,或者是由于系统中某个有问题
传感器或马达造成的。利用StethoScope可立即把问题缩小到左边小马达速度
传感器上。传感器的输出图形显示偶尔发生错误读零。StethoScope 还反映出
来自一个光电编码器与驱动程序没有问题。由于硬件寄存器偶尔出现读数错误
,说明问题出在编码器的电路上。中,大部分内存被浪费了。甚至,内存使用
出错是很危险的。一个有内泄漏问题的系统,可能运行几天以后就会神秘地崩
溃。
StethoScope同样可以用来监视网络数据包,温度测量,模拟状态变量等。
提高开发能力:
StethoScope已经成为了一种有力的开发工具,它可以针对许多行业产品的开
发应用,例如电信通讯,网络,图象编辑,控制,信号处理,半导体制造设备
,控制仪表,科学研究,自动化系统,宇航,机器人,工业自动化,医疗设备
等。
MemScope是Tornado下一个动态内存分析工具,为控制内存的使用提供了必要
的可视化功能。不需特殊的编译,它为系统使用的每一块内存提供了详细的映
射图。开发人员在系统崩溃之前,就可发现内存泄漏问题。该工具甚至可以发
现由于操作系统调用系统调用或者第三方库所引起的内存泄漏。MemScope还能
发现破坏内存区的问题,例如读写超过数组范围,或者使用了个空指针。
使用方便:
MemScope不需特殊的编译和硬件支持,可分析正在运行的代码。MemScope拥有
直观方便的图形用户界面,当打开Tornado launcher上的图标时,MemScope可
自动加载所需要的目标机驻留代理。
WindView 2.0
风河公司的WindView 2.0 提供给开发者一个久经考验的可视化工具来适应实
时嵌入系统开发的需要。
1994年,WindView通过允许开发者观察一个嵌入系统的动态操作而革新了这个
行业,第一次,开发者可以看到复杂的一个目标上执行的应用的任务,中断,
系统对象之间的交互,上下文切换象系统事件(比如信号量,消息队列,信号
任务,时钟,以及用户事件)一样被清楚的显示出来。
WindView 2.0通过一系列的增强提升了技术水平,是通过提供给开发者在
Tornado下的Fast Focus,Deep Analysis和Everywhere应用工具来实现的。
1:Fast Focus--隔离你应用中的一些需要分析的区域,便于更好的调试你的应用。
2:Deep Analysis--用来分析事件日志的一种新方法。
3:Everywhere- Everywhere可以在使用WindView时不考虑目标板的连接情况。
* Fast Focus:
WindView2.0提供了专为帮助开发者快速定位他们的实时系统问题的新特性,
通过排除不必要的元素来实现,作为结果,问题在屏幕上被逐字的显示出来。
WindView2.0 提供了一个新的VxWorks功能的接口,称做Triggering (见上图)
。Event Triggering允许当指定事件或事件序列发生时采取行动,Triggering
通过进一步指定究竟事件是发生在任意上下文中,任意任务中,或是指定任务
中,任意的ISR,或者系统上下文来变的更精确。更进一步的,Triggering可
以在一个函数或者变量给定一个指定值或者一个取值范围后触发。
当Triggering触发后,Windview logging可以启动或者停止,或者调用一个函
数。如果一个系统函数或者ISR函数被调用,你可以推迟执行直到系统通过选
择安全选项而处在系统级上下文中。
一旦一个事件日志的相关信息被捕捉到,你就可以通过Windview的新的隐藏或
恢复选定任务和中断(见图)的新功能来更进一步的提炼信息。WindView的
GUI也在任务或事件显示时提供给你精确的控制能力。与一个指定的无关的任
务或事件将被过滤掉。
WindView2.0现在给提供一个特定上下文(任务或中断)的状态的快速总结。
你可以选择整个事件记录,或者屏幕显示,或者指定选择。
* Deep Analysis:
今天复杂的多线程任务使得没有一样工具可以做到所有的事情,尽管由于
WindView的灵活性和开放结构,定制分析已经变得可行了。
从Windview的第一版开始,合作伙伴和用户就提出要为工具集成和定制分析提
供事件日志的入口,针对事件日志的开放C++和TCL API使得这成为可能。这些
相同的API同样诞生了WindView的分析包(见图)。
分析包是为分析事件日志而预先写好的模块。他们的输出可以被指向一个模拟
覆盖图(见图6)或者使用COM技术的Excel。更进一步,新手段的内存和I/O库使
得包括每个任务或者所有任务对内存和CPU的使用的新的考虑成为可能。
* Everywhere:
所有的WindView2.0的能力都可以被应用在tornado的各个方面,而不用考虑目
标连接,不管是串口,以太网,
NETROM,或者是定制的背板。这通过新的TSFS(Target Server File System)
,即VxWorks的虚拟I/O功能的扩展来实现完整的文件系统功能。TSFS使用和
WDB Agent 相同的方式去连接Target Server。TSFS的意味着可以不需要目标
机上提供TCP/IP就可以使用WindView。
新的运行时可配置的缓冲机制可以使WindView2.0在需要很少目标内存的环境
下可以运行(见图7)。开发者可以选择缓存的最小和最大数量以及缓存大小,
在目标机上产生一个缓存环.一个状态窗把最近定位的缓存的可用容量比率连
同整个缓存环的可用比率一起显示出来(见图8),开发者因此可以裁减出一个
最佳的缓存配置。
这个新的缓存环的功能增强了WindView的"连续上载"机制.连续上载在事件日
志产生的同时把它从目标机转移到宿主机上去.缓存环在一个应用所产生的事
件增加时是可以扩展的,当事件产生减少时就会压缩.使用很多小缓冲包含所
有的缓存可以提供两个关键的好处.一:如果缓存需要那么目标机内存可以更
多的使用,由于大量的,更小的缓冲比一个单独的大的连续的缓存可以更有效
的利用不连续的内存区域。二:由于缓冲的总的数量可以动态的扩展和压缩,
所以从来就不必担心在最坏情况下的缓存需要,因此可以释放出目标机的内存
给其他的应用。
WindView现在数据上载除了连续模式和崩溃后模式外还支持一种新的"延迟"模
式。延迟上载和Triggering 联手用来捕捉小的,被聚焦的事件日志。在延迟
模式中,一个事件日志不在数据捕获期间上载,这就防止了无关的网络活动被
加到日志中,这个最终的日志提供给开发者一个纯粹的应用特性的视图。
* 多处理器应用:
开发者现在可以使用WindView2.0利用基于同一时间同步的基础上合并后的日
志来分析多处理器的输出.这使得WindView2.0甚至成为设计多处理器应用的不
可或缺的工具。
GoAhead FieldUpgrader 2.1
网络设备制造商们一直在寻找降低产品维护和升级费用的方法以保持其竞争力
。修补错误、安全补丁、软硬件升级是高度人力密集的工作,需要涉及成百上
千万的设备,代价高昂。
GoAhead 软件公司推出了GoAhead FieldUpgraderTM 2.1 ,允许基于VxWorks
的嵌入式设备制造商们在现场自动升级其产品,因此可以降低或者取消了上门
修理和产品回收工作。GoAhead FieldUpgrader提供给制造商一个简单的控制
点来在产品售出后进行升级。升级工作可以从一个地点来发布,控制和管理,
因此简化了升级过程。由于很多支持请求是用已知方案解决已发现的问题,修
补通常仅仅是下载一个已更新的软件和固件那么简单。制造商们已经意识到取
消这些即简单但又耗费人力和物力电话支持可以立竿见影的节约成本。消费者
也可以从中受益,因为他们不必非得去手工升级他们的设备,从而降低了拥有
成本。
GoAhead FieldUpgrader 2.1提供了与Tornado的无缝集成,并且已经通过风河
公司的龙卷风合作伙伴计划成为“WindLinkTM for Tornado”认证成员。这种
Tornado认证标志保证了该产品可以同Tornado开发平台完全兼容。
GoAhead FieldUpgrader 2.1包含3个组件:GoAhead DeviceStudioTM 开发
环境;运行在VxWorks实时操作系统上的设备专用软件GoAhead
UpgradeAgentTM;驻留在服务器上用来产生和发布升级的GoAhead
UpgradeServerTM 。
* GoAhead FieldUpgrader
GoAhead Field Upgrader 2.1允许开发者为一个目标设备创建、测试、封装设
备专用的“Upgrade Applications”。 GoAhead DeviceStudio 是一个基于
Web的开发环境,提供了所有的必备工具,其中包括用来提高工作效率的“
Wizards”,它是用来配置和集成GoAhead UpgradeAgent文件到目标设备中的
。这个直观的开发环境方便和加快了集成过程,可以把制造商的开发投资尽可
能的降低。
Upgrade Applications 是从一台服务器上通过用Goahead UpgradeServer生
成的“Upgrade modules”来发布的。Upgrade modules包含Upgrade images,
用来进行身份认证和加密的security keys,以及制造商定义的策略,用来控
制一个升级的发布过程。这些策略可以是基于一系列指定的标准,包括主机名
,IP地址等。这些策略保证消费者得到他们设备的正确升级。并且这些策略也
可以用来为那些签署了支持维护协议的最终消费者来进行目标升级。
当一个产品需要升级时,制造商通过Goahead UpgradeServer来发布升级,包
含GoAhead UpgradeAgent 的目标设备依次轮询Goahead UpgradeServer,根
据预先设定的时间间隔来查询升级。VxWorks的TCP/IP网络功能允许驻留在目
标机的代理使用标准的HTTP协议通过互联网连接服务器,当需要升级的时候,
目标设备就下载软件并按制造商的规定来使用。
* 大量设备的安全升级管理
GoAhead FieldUpgrader的Device-initiated方法是可裁减的、可靠的和安全
的。当联入Internet时,远端设备通过简单的Web请求接受升级信息。这种方
案沿用了Web Server的工作方式,可以支持大量的设备。当更多的设备使用时
,它们也同样获得了自动升级的能力。Device-initiated方法通过防火墙工作
,并且保证了移动的和瞬态的设备不会错过自顶向下的升级呼叫。它同样也减
轻了服务器的负担。为了保证可靠的传输,负载被分为可管理的块,并可以进
行错误检查,如果需要还记录到设备重启动。另外,GoAhead FieldUpgrader
使用DSS(Digital Signature Standard)来在服务器和远程设备间进行安全
通信。
* 附加的报告
GoAhead FieldUpgrader 2.1提供给制造商全套的管理报告,包含了升级工作
的关键信息,如升级请求,实施,以及策略。
特性
* 通过Internet、intranet、VPN或拨号连接自动升级嵌入式设备中的软件和固件
* 安全、可靠和可重新启动
* 基于策略的支持
* 可支持数以百万计的设备
* 扩展的管理报告
* 基于Web的GoAhead DeviceStudio集成开发环境
* 服务器动态监控状态
* 通过防火墙和托管服务器提供升级
* 可输出的日志文件允许用户管理和分析升级信息
* 使用实时JavaScript调用,允许开发人员:
- 控制升级过程
- 加载和调用C函数
- 发送附加的请求数据到GoAhead Upgrade Server
- 访问GoAhead UpgradeAgent环境变量
* 嵌入式代理的动态配置,使代理在使用后,仍然可以配置
* 内存映像小,最小时仅40KB
系统需求
* 目标机:VxWorks 5.x
* 服务器:Windows NT 4.0
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。