Home
Products
Operating Systems

QNX Momentics Tool Suite

  1. 概述
  2. 优势
  3. 开发
  4. 调试
  5. 目标机
  6. 新增功能      

QNX® Momentics® 工具套件是一种功能全面、基于 Eclipse 的集成开发环境(IDE),具有可全面监控系统运行的创新型剖析工具。这一独特的开发工具可为开发人员提供一目了然的实时互动和内存配置文件等信息,从而缩短调试时间和加快上市速度。开发人员能利用多核专用工具干净利落地完成单核系统向多核系统的代码移植,并对系统性能进行安全优化。

功能

  • 基于开放 Eclipse 的集成开发环境
  • 支持 C 和 C++
  • 多核支持
  • 完整的源码控制
  • 源码调试程序
  • 系统生成器
  • 目标机系统信息
  • 应用程序剖析器
  • 系统剖析器
  • 内存分析

开发主机

  • Windows
  • Linux

目标机处理器

  • ARM
  • MIPS
  • PowerPC
  • SH-4
  • x86

库与 GNU 工具

  • ANSI C
  • Dinkum C++ 与嵌入式 C++
  • GCC 优化编译器

技术文件与培训

  • 上下文有关帮助
  • 在线操作指南
  • 印刷的技术文件
  • 培训视频
  • 教程
  • 备忘单
  • 项目实例

系统配置建议

  • 2 GHz Intel Pentium 4
  • 内存 512 MB
  • 磁盘空间 2.5 GB
  • 显示器分辨率 1280 x 1024

这些是 Microsoft Windows 主机的建议系统配置,具体配置要求取决于不同的系统版本。要了解更多 Linux、QNX Neutrino® 实时操作系统与 Windows 主机的最低和建议配置要求,请与我们联系。

除具备在其他基于 Eclipse 的集成开发环境中,常见的所有开发和调试功能外,QNX® Momentics® 工具套件还具有得益于 QNX 技术的独特功能,如多核剖析和检测内核。

统一集成开发环境

Eclipse 提供了定义明确的接口,确保工具之间能无缝协作。所有工具都具有相同的外观,因此开发人员只需学习一种用户界面即可。

开发人员可以受益于这种开放并可扩展的工具集成平台,因为越来越多的工具开发供应商和开发人员也在迅速加入该平台。他们还能插入第三方工具,或利用基于行业标准的 Eclipse 框架创建属于自己的插件。

快速开发

QNX Momentics 工具套件提供了多种优质高效的分析工具,利于加快产品交付所有阶段的进展,例如:

  • 用于快速、便捷地创建项目的向导程序
  • 可利用预建文件生成目标图像的系统生成器
  • 可突出显示源码执行路径(加快代码移植并确保质量)的代码覆盖工具

性能优化

QNX Momentics 工具套件中有多种独特工具,既能用于代码调试,又能用于性能优化。系统剖析器和应用程序剖析器等工具,能帮助开发人员在单核与多核系统中准确找到优化性能的最佳位置,代码覆盖工具和 mudflap 则提供了所有必要功能,以创建最稳健、最可靠的嵌入式系统。

设计灵活性

开发团队能利用 QNX Momentics 工具套件确定适用项目的最佳目标机,以及他们最擅长使用的首选主机和编程语言。它支持:

  • C 与 C++ 编程语言
  • Windows 或 Linux 主机
  • ARM、MIPS、PowerPC、SH-4 和 x86 目标机

QNX Momentics 工具套件提供了极大的灵活性,允许用户同时混用多种编程语言和处理器架构。

社区网站

Foundry27 是面向 QNX 软件开发人员的社区网站,它可提供源码库、论坛、博客、WIKI 网页,根据团队精神,该网站论坛允许开发人员交换信息和观点,互相共享源码和二进制文件。

QNX® Momentics® 工具套件提供了进行 C 和 C++ 开发的最佳环境。开发人员既能利用命令行,又能利用图形集成开发环境,还能充分利用多种特色功能,如向导程序、代码编辑器和灵活的 Makefile 结构。

  1. 项目
  2. 编辑器
  3. 构建工具
  4. 源码控制                                

向导程序

QNX Momentics 工具套件含有内建的项目向导程序,可自动运行整个项目创建流程。开发人员能:

  • 在 C、C++、Makefile 和 QNX 项目间选择
  • 根据步骤提示创建不同目标机处理器项目
  • 将内建目录、依赖文件和启动源码输入项目
  • 自动编译整个项目以创建运行程序
项目向导程序

项目向导程序

内建项目向导程序自动运行整个项目创建流程。

QNX Momentics 工具套件的代码编辑器具有许多最实用的省时功能,如剪贴、撤销、注释、突出显示、特定语言缩排和用户定义偏好。

集成开发环境可使用嵌入式和外部代码编辑器。用户打开文件后,集成开发环境会启动与该文件关联的嵌入式编辑器。如果嵌入式编辑器不可用,集成开发环境会尝试启动适用的外部编辑器。

内容辅助

开发人员能利用编辑器启动内容辅助功能,它可提供函数名称建议、完成函数命名、显示函数概要、参数和所需头文件,以及插入所有必需的“ include”语句。

内容辅助功能

内容辅助

内容辅助功能可提供函数名称建议、完成函数命名、显示函数概要、参数和需要的头文件。

代码折叠

开发人员能折叠(隐藏)暂时不用的代码部分。代码折叠能以混合方式进行,这样用户能指定当代码的父区段隐藏时,其子区段保持可见。

代码模板

开发人员只需敲一下键盘,就能插入常用的代码结构,如例外处理区块或“for”循环。每个编辑器都有可编辑或复制的预定义模板。

标记

编辑器会显示关联当前文件的标记,包括构建工具产生的断点和错误。只需点击标记就能显示异常代码行。开发人员也能插入标记作为任务提醒工具或书签。

源码导航器

源码导航器能根据上下文搜索参考和定义,提供能快速浏览源码和项目头文件的大纲视图,并能转到函数声明和原型设计。

本地历史

集成开发环境能保留本地历史以便临时修改代码调试。开发人员能设定编辑器的首选项,自动保留工作文件的多个修订版本、对比版本、合并版本,或撤销更改。

集成开发环境允许开发人员选择自己擅长的构建工具以开发嵌入式系统。他们能使用下列工具构建完全相同的二进制文件和上下文:

  • 从集成开发环境内部调用的命令行工具
  • 集成开发环境工具
  • 命令行工具与集成开发环境工具

构建设置控制

开发人员可通过集成开发环境配置构建设置选项,如编译器和链接器选项、其他引用文件和库。

多处理器 Makefile

在集成开发环境中,用户无需为多处理器环境手动创建 Makefile。开发人员可通过点选式界面构建开发环境所需的一切,包括锁定一个或多个 CPU 和构建多处理器、递归 Makefile 框架。集成开发环境会以传统 Makefile 格式保存构建设置。

重用与移植

开发人员能根据 Makefile 重用现有项目,或使用 Make 以外的构建命令移植项目。

启动配置向导

开发人员只需点击一下鼠标就可创建、运行和调试。他们还可利用启动配置向导迅速指定在哪个目标机上使用何种调试选项启动哪个程序。

集成开发环境支持群组启动,方便同时或按用户确定的顺序下载和启动多个应用程序。集成开发环境会记住用户的群组启动偏好,因此能迅速便捷地启动随后的会话。

集成开发环境确保开发人员在一种开发环境下能管理所有源码。集成开发环境支持:

  • 开源代码的版本控制系统,能与基于此系统的开源代码库(如Foundry27)无缝集成
  • CVS 源码控制协议(支持远程服务器与 SSH 资源库安全访问)
  • 其他许多利用下列 Eclipse 插件的配置管理系统:ClearCase、Perforce、SCWI 等

内建版本与配置管理

由于集成开发环境中内建了版本和配置管理功能,因此不必退出集成开发环境去管理源码。开发人员能在异彩纷呈的源码控制环境下,针对不同项目,甚至针对同一项目中的不同文件使用不同的源码控制协议。

版本控制、对比与合并

集成开发环境的关键源码控制功能包括:

  • 更新源码库时控制版本
  • 向小组成员发布修改时控制版本
  • 浏览文件的修改历史以查看别人的修改
  • 图形文件版本对比
  • 通过交互合并解决多位开发人员修改相同源码产生的冲突
配置向导

内容辅助

开发人员可利用启动配置向导迅速指定在哪个目标机上使用何种调试选项启动哪个程序。

QNX® Momentics® 工具套件提供了一个统一的调试环境,它能完全集成套件中的其他工具。它能让开发人员不受编程语言的约束,灵活地解决当前问题。

  1. 源码调试程序
  2. 检测内核
  3. 应用程序剖析器                    

  4. 系统剖析器
  5. 代码覆盖
  6. Mudflap                                

在源码调试程序中能直接打开所有工具的视图,以获取完整的应用程序状态和数据信息。源码调试程序的其他功能确保开发人员能够:

  • 同时调试以 C 和 C++ 编码的多个应用程序
  • 调试多线程应用程序,独立跟踪每个线程并跟踪线程间的控制
  • 调试分布于多个处理器(或多核处理器内核)的多线程,跟踪处理器之间的执行路径
  • 以动态方式连接到任何运行的进程以进行调试
  • 对 core 文件进行事后分析

QNX® Neutrino® 实时操作系统的检测微内核具有先进的跟踪和剖析功能,可对单处理器和多处理器系统的实时运行进行监测。在集成开发环境下,开发人员能配置所有跟踪事件和模式,然后将日志文件自动传输到运程系统中进行分析。

性能优异

检测内核占用极少资源,却能发挥出色性能。它只需约 30 Kb 的辅助内存,但在未登录时的运行速度却和非检测内核不相上下。

由于资源占用少、性能优异,因此许多用户不仅将其用于项目开发和原型设计,还将其应用于最终产品,这大大提高了他们在交付系统后,进行故障诊断与调试的效率。

非侵入

检测模块以非侵入方式运行,因此不必为了监测程序与内核的交互而修改程序的源码。

事件控制

开发人员能利用 QNX® Momentics® 工具套件限制检测微内核记录和传输的数据量,以便将精力集中到解决具体问题所需的数据上,包括:

  • 控制触发跟踪事件传输的初始状态
  • 应用预定义内核过滤器,以动态方式控制跟踪事件传输
  • 启用定制跟踪事件处理程序,深入过滤记录和传输的数据

使用 QNX Momentics 工具套件的应用程序剖析器,开发人员能检查程序的整体性能,无论其多么庞大或复杂,都无需逐行检查源码。他们能快速确定使用频繁的代码区域,以便进行调试、性能分析和优化:

  • 将剖析器连接到在目标机上运行的软件,进行实时剖析
  • 深入查看源码行以显示消耗处理周期最多的一行
  • 对多进程和多目标机,以及共享库的处理器使用进行分析
  • 通过在目标机上编译并启动完整剖析版软件,收集完整的执行信息
  • 在剖析器中载入统计文件以进行事后剖析

非侵入式剖析

应用程序剖析器定期对运行代码采样,帮助开发人员确定应用程序和共享库的无效部分。这种方法无需进行检测、代码修改或特殊编译,能确保剖析器不会破坏已收集的信息。应用程序分析器无需检测,因此占用资源极少。无需重启程序即可重设采样,这便于开发人员在不同负载条件下对比结果。

检测式剖析

编译器可通过检测已编译的代码,由应用程序剖析器进行分析,获得准确的线程数。这种代码会提供函数调用和调用对(调用方-被调方)信息。使用调用次数和执行统计数据定位瓶颈后,开发人员就能利用集成开发环境的可导航调用图找出函数的调用方和祖先,因此非常利于识别可优化代码的位置。

QNX 应用程序剖析器

内容辅助

应用程序剖析器能帮助开发人员迅速解决以下问题:“在哪里优化才能提高系统性能呢?”

多核优化

向多核系统的初始移植完成后,开发人员可使用应用程序剖析迅速隔离代码,进行并行运行。例如,一个处理器密集的信号处理例程会在应用程序剖析时跳出;将该例程分成几个多线程例程能确保在同步多处理系统(SMP)中实现并行运行。

QNX® Momentics® 工具套件的系统剖析器能与检测内核协作,以帮助用户深入了解操作系统事件与运行情况。与应用程序剖析器一样,系统剖析器能在系统范围内确定需要改进的代码区域:

  • 进程间通信(IPC)瓶颈——观察线程间的消息流量
  • 资源竞争——监测状态更改的线程
  • 多核设备的缓存一致性——监测从在处理器或内核间移植的线程

多核系统剖析

系统剖析器能在应用对称多处理(SMP)的单核系统和多核系统上运行。对于整个系统或单独处理器,多核系统剖析的功能包括:

  • 通过处理器对线程颜色进行编码,以便识别每个线程在哪个处理器上运行
  • 提供处理器移植总结,说明需要多少内核调度才能使线程在处理器之间移动,帮助确定缓存抖动的原因
  • 提供内核间消息传递总结,说明在内核间传递了多少消息
QNX 系统剖析器

内容辅助

系统剖析器与检测内核协作,帮助确定应优化的代码区域。

快照、总结、统计数据及其他

系统剖析器提供了开发人员所需的工具,确保其了解系统的确切运行情况,并知道如何才能解决问题和精确调整性能。

  • 图形显示使用检测内核提供的数据显示组件的交互情况
  • 线程状态快照汇总了每个线程在特定时间的运行状态
  • “运行原因分析”工具列出了导致线程当前状态的事件
  • 用户定义的过滤器会专门跟踪重要事件,以减少数据量、简化分析。
  • 客户机-服务器统计数据包括客户机直接需要的时间总量,以及其使用的服务器需要提供的时间总量
  • 将跟踪结果导出到应用程序剖析器,分析关键系统交互的性能

开发人员能使用 QNX® Momentics® 工具套件中的代码覆盖工具,识别测试过程中未运行的代码。还能通过它修改测试套件以运行代码,或在不需要代码时将其删除。代码覆盖工具适用于:

  • 启动代码覆盖会话并迅速监测应用程序
  • 深入基本区块(分支路径)查看二元覆盖的实时结果
  • 启动代码编辑器查看哪些源代码行已被或未被覆盖
  • 使用所有导航和参考工具帮助分析代码覆盖数据
  • 在多个程序运行时查看代码覆盖的进度
  • 产生有关其他分析信息的报告
QNX 代码覆盖工具

内容辅助

在进行严格和完整测试,并提交测试结果报告时,代码覆盖工具是一种重要工具。

代码覆盖工具是需要进行严格和完整测试的项目环境必备的工具。即使其他技术团队未参与原代码开发或分布在世界各地,他们也能利用这种便利的工具顺利完成漏洞修复和软件维护。

Mudflap 是 GNU C/C++ 编译器(GCC)中的一种运行指针使用的检查功能,它能让指针进行运行错误检查。在 QNX Momentics 工具套件中,Mudflap 无需工具链内的其他工具,它包括:

  • 允许开发人员将 Mudlflap 选作构建变量或选项的构建集成工具
  • 确保开发人员查看和解析 Mudflap 检测到的错误(如缓存溢出、非法堆使用、NULL 指针取值)的启动工具
QNX Mudflap 支持

内容辅助

QNX Momentics 工具套件完全支持 Mudflap 功能,确保开发人员迅速找到代码内的指针错误。

QNX® Momentics® 工具套件提供了完整的工具组合,便于向目标机硬件传输引导映像和文件,利于从目标机收集重要信息以进行诊断和调试。

  1. 系统生成器
  2. 目标机代理
  3. 目标机导航器
  4. 目标机系统信息    

系统生成器简化了为嵌入式系统构建系统映像的过程,开发人员能利用它在创建内存引导映像和定制 Flash 文件系统映像时,节约大量宝贵时间。对于创建的每个映像,系统生成器都会:

  • 自动创建新的板级支持包(BSP)
  • 允许开发人员从板级支持包导入预建的目标文件或重新创建新文件
  • 提供目标机映像浏览器以便快速选择二进制文件、动态链接库和映像库
  • 跟踪库依赖性,向开发人员提示丢失的组件
  • 确保映像包含 C/C++ 项目最新的编译结果
  • 允许从共享库中移除多余的函数,以帮助减少应用程序占用的内存
QNX 目标机系统生成器

内容辅助

开发人员能利用 QNX 系统生成器以可视方式编辑引导映像布局。

为目标机加载映像

向目标机传输构建的映像时,系统生成器既能使用内建的串行终端(能与远程 ROM 显示器通信),也可通过 TFTP 或 BOOTP 传输映像。

目标机启动并运行后,开发人员可使用任何数量的机制进行其他开发和文件传输。例如,使用集成开发环境的文件浏览器直接编辑和更新目标机上的文件。

QNX Momentics 工具套件提供了一个独特和可扩展的目标机代理架构,支持多种目标机工具的功能交互,如启动、调试、剖析和信息收集。

目标机代理能确保集成开发环境中的任何工具都能与目标机通信。当主机系统激活一种功能时,目标机代理会在目标机上加载对应的模块。当该功能不再需要时,目标机代理会将其取消,使目标机的内存使用保持在需要范围内。

与其他 QNX 驱动程序一样,目标机代理可根据需要以动态方式启动和停止。

集成开发环境中有一个目标机文件系统导航器,能提供目标机系统的一致视图。开发人员能利用目标机导航器完成多种任务:

  • 确定目标机并与其联系
  • 将默认项目(如系统映像)关联至特定目标机系统
  • 确定所有目标机板卡和设备的可访问性
  • 选择一个特定目标机系统完成某种操作,如启动运程登录(Telnet )会话
  • 显示连接、分配内存、内存、进程的信息和信号信息视图

新工具可将目标机文件系统用作扩展点,将其操作增加到目标系统上下文菜单中。此类操作还包括在目标机系统上生成进程信号,或将调试程序增加到运行进程中。

QNX 目标机导航器

内容辅助

目标机导航器允许开发人员将文件拖入或拖出目标机。

集成开发环境中的目标机系统信息工具能提供目标机系统的大量实时信息和事后分析信息:

  • 检测资源使用密集点,如内存消耗、处理器占用和一些文件连接
  • 呈现以图形表示的进程间的阻塞关系,检测并解决潜在的死锁情况
  • 处理远程目标机系统上的文件,如同其驻留在本地主机上一样
  • 将新文件传输到远程目标机,在那里可通过集成开发环境进行编辑
  • 扩展程序启动器,开发人员仅需双击鼠标即可启动目标机上的可执行程序
QNX 目标机系统信息工具

内容辅助

QNX 目标机系统信息工具为开发人员提供了有关目标机系统(直至线程属性)的高层和详细信息。

概要信息和详细信息

目标机系统信息工具为开发人员提供了整个目标机系统的高层概要信息,以及有关进程和线程的详细信息。例如,开发人员可利用高层概要确定哪些进程在运行,并识别用于它们的参数。他们能查看整个系统和每个进程中的处理器和内存的使用情况。他们还能根据需要,深入检查线程属性(如运行状态、调度策略、处理器使用、协议栈大小)、信号状态、程序内存图、文件描述符等。

QNX Momentics 工具套件仍处于不断发展和完善中。最近发布的版本(4.7)可随 QNX 软件开发平台 6.5.0 一起使用。

4.7 版

 

  • Eclipse 3.5.2 与 CDT 6.0 集成
  • GNU C/C++ 编译器 4.4 与 GDB 6.7 支持
  • 支持延迟链接和加载

4.6 版

 

  • Eclipse 3.4 与 CDT 5.0.2 集成
  • GNU C/C++ 编译器 Mudflap 可视化
  • Foundry27 集成与导入板级支持包(BSP)——通过集成开发环境检查板级支持包
  • 改进系统剖析器

4.5 版

  • Eclipse 3.3 与 CDT 4.0 集成
  • 完善了 C/C++ 开发环境
  • 改进目标机系统信息工具
  • 优化应用程序剖析器与系统剖析器
  • GNU C/C++ 编译器 4.2 与代码覆盖支持