MULTI
Integrated Development Environment
嵌入式开发人员依赖的调试工具
经过三十多年的用户使用和不断的改进,MULTI-IDE在嵌入式软件行业是难以超越的。开发人员可以依赖MULTI来生成高质量的代码,并使他们的设备更快地推向市场。MULTI可以查找一个很难找到的错误,解决内存泄漏,还可以优化系统性能。
显著提高生产率
MULTI的调试和可视化工具使软件工程师能够显著提高他们的调试效率,两个直接的好处:
▲ 一个更可靠的设备,当你更快地发现错误时,你可以修复更多的错误
▲ 降低开发成本,减少调试时间,更快地将优异产品推向市场
通过使用Green Hills工具,你可以:
▲ 更快地修复bugs
Green Hills 软件的 MULTI 调试器是市场上优异的C/C++调试器。
▲ 自动查找bugs
静态分析和运行时错误检查会自动捕获可能未被注意到的Bug。
▲ 帮助理解复杂系统
我们的工具提供了整个系统的可伸缩视图,从包罗万象的整体层次到寄存器中的每一位和每一条机器指令。
▲ 预防新问题
干净的编码约定可以防止您用过于复杂的代码引入新的Bug。
▲ 可以花更多的时间用于开发设计
一个简单的构建配置和无缝集成的工具可以让您节省更多的开发时间。
更快地修复Bugs
我们革命性调试器的每个功能都旨在快速解决困扰传统工具的问题。 跟踪任务间损坏,错过的实时需求和外部硬件事件等问题通常需要数周或数月的时间。 Green Hills Software的TimeMachine工具套件可帮助您在数小时甚至数分钟内解决相同的问题。一位客户使用TimeMachine工具套件仅花费了两个小时修复了一个错误,而之前他们花了两个月的时间。
TimeMachine工具套件自动捕获程序执行数据,结合多调试器接口和创新的回放调试功能。调试时在TimeMachine中,您可以向前和向后单步执行、运行和调试代码,以查明问题的根源。
在TimeMachine捕获的任何时刻,您都可以:
▲ 在源级别调试任务交互
▲ 使用强大的执行和数据断点来查找特定的数据点
▲ 检查RTOS数据结构
▲ 调试虚拟内存应用程序
作为TimeMachine工具套件的重要组成部分, PathAnalyzer可以提供一段时间内应用程序调用堆栈的视图。它可以帮助您快速确定代码从预期路径转移的位置,以及跟踪由意外中断等事件引起的异常Bug。您可以在较高的层次上检查执行流,或者放大以查看单独的函数调用。
在使用PathAnalyzer几秒钟后,一位客户发现了一个存在三个月的bug,该bug经常导致其目标挂起。问题是:偶尔在启动代码的关键部分触发中断。由于该错误很少出现,因此无法通过常规调试方法捕获该错误。 在PathAnalyzer的帮助下,找到它很简单。
PathAnalyzer 使复杂的系统执行流程易于理解,从而使您能够更快地发现错误。
自动查找错误
DoubleCheck, 是Green Hills集成的静态分析仪,它允许您甚至在运行程序之前就识别编程错误,从而节省了您的时间和成本。由于DoubleCheck是Green Hills优化编译器的一部分,因此无需设置成本启用它。只需设置一个选项, DoubleCheck 每次编译时都会检查源代码。 此外,DoubleCheck的运行速度比传统的静态分析工具快得多,这意味着每个开发人员都可以一直使用它。
DoubleCheck比传统的代码检查更可靠,可以发现在常规系统测试中可能永远不会出现的错误。一位客户报告说:“我们在DoubleCheck上使用了代码库,发现了一些潜在的问题。我们今天花了一部分时间来修复它,得到了一个100%干净的编译。”
Run-time error checking通过查找无法单独通过静态分析识别的错误来补充DoubleCheck。尤其是令人发指的bug在失败之前很长一段时间都保持沉默。通过运行时错误检查,可以在发生问题时提醒您。直接查看错误时,修复它很简单。
运行时错误检查可识别一些问题,比如指针的无效内存访问、超出范围的值分配、switch语句中未处理的情况以及被除零的问题 。
了解复杂系统
当了解系统状态所需的信息唾手可得时,调试复杂的系统就变得更加简单。我们以直观的方式显示重要的系统信息,以帮助您更快地发现问题:
▲ OSA Explorer提供了有关内核对象,任务和资源状态的完整视图。
▲ 调试器允许完整的事后应用程序调试,包括遍历堆栈,浏览对象以及查看内存和寄存器。
▲ EventAnalyzer会显示系统事件的时间线,时间间隔仅相隔微秒。
多核同步运行控制
Green Hills Software是较早为多核调试提供探针和调试器解决方案的公司之一。 MULTI 提供的性能使得调试多核系统就像调试单核系统一样简单。
这些特性的关键是同步运行控制,即当任何内核遇到调试机会时,将以一个单元的形式停止所有内核。例如,当内核达到断点时,目标列表将清楚的显示:
▲ 哪些内核达到了断点
▲ 当前在内核中执行的是什么线程
▲ 系统中的其他内核在做什么
将代码下载到多核目标可能是一个复杂而繁琐的过程. MULTI将自动处理完整下载过程。对于其他类型的操作系统和应用程序,可以使用简单的配置文件来自动执行下载和设置的过程。
MULTI的同步运行控制可同时停止多核系统中的所有核。这使您可以调试一个内核,而不必担心在另一个内核上运行的操作会影响共享内存。
预防新问题
干净的代码不太可能包含错误,而且更易于测试、理解和修改。所有这些因素都有助于减少错误和提高可靠性。Green Hills优化编译器能够通过行业标准(如MISRA 2004编码标准)强制执行干净的编码约定,该标准包括100多条安全编程规则。您可以实施这些规则的自定义子集,以满足您的特定要求。
GHS标准模式是编译器警告和错误的集合,与常规C和C ++相 比,它们会执行更严格的编码标准。它基于Green Hills成功部署软件的悠久历史,以及我们与获得相同高度可靠性的客 户的合作。我们在内部使用GHS标准模式来开发自己的工具。
花费更多时间设计
MULTI简化的构建,让您可以将更多宝贵的时间放在产品设计本身。使用我们的构建器,没有复杂的构建基础设施需要维护,构建配置可以很容易地更改。构建器会自动分析整个项目的依赖关系,并尽可能多地并行编译和链接文件,充分利用现代多核系统。
构建器和一系列复杂的特性显著降低了项目开发的开销。一个无缝集成的项目管理器、编辑器、闪存编程器和指令集模拟器可以让您快速启动开发并更有效地工作。
MULTI Project Manager简化了构建和更新应用程序的方式。选项卡式框图和内存布局视图提供了对应用程序结构的概览。
Boost productivity
Green Hills开发人员每天都使用MULTI工具。我们的专家会利用广泛的知识和经验来确保您充分利用Green Hills产品。我们可以配置工具以满足特定的需求,培训您如何更好地使用我们的产品,然后评估您的使用并确定提高工作效率的方式。
调试嵌入式 Linux
对于开发嵌入式Linux系统软件的工程师来说,MULTI For Linux带来了完整的调试能力,可以显著提高生产率,并更快地将更可靠的产品推向市场。
传统上,Linux工程师只能依赖于提供有限可见性和有用性的调试工具。GDB及其相关的前端(如Eclipse)设置起来很麻烦,使用起来很困难,而且不总是可信的。因此,开发人员经常使用hit-and-miss-efficiency printf或printk命令。不幸的是,这些只是进入复杂系统执行的一个非常小的窗口。
使用MULTI for Linux,嵌入式工程师现在可以查看和调试嵌入式Linux系统的所有方面,包括Linux内核、内核线程、中断服务例程以及用户模式线程和进程,比以往任何时候都更快、更容易。
Linux调试功能
▲ 完整的Linux内核可视化——包括共享内存区域、信号量、消息队列和内核模块
▲ 支持SMP多核调试
▲ 使用一个调试器从内核到用户空间进行调试
▲ 调试本地Linux和虚拟化Linux(关于INTEGRITY Multivisor 虚拟化技术)
▲ 调试可加载的内核模块和设备驱动程序
▲ 轻松调试进程启动代码
▲ 在内核代码中设置特定于线程的断点
▲ 调试虚拟地址空间中的共享对象
▲ 以更低的性能成本处理断点
▲ 调试跨进程的多线程交互
功能安全
MULTI工具链已通过认证,可满足更高的工具认证和C / C ++运行时认证:
▲ IEC 61508:2010(工业),EN 50128:2011(铁路)和ISO 26262:2011(汽车)功能安全标准
▲ 从TüVNORD和exida获得的证书
▲ 满足SIL 4(安全完整性等级)和ASIL D(汽车安全完整性等级)工具认证以及C / C ++运行时认证要求-可以达到的更高等级
▲ 支持多种目标处理器
给客户带来的好处是简单而深刻的:
▲ 降低成本并缩短认证时间
▲ 缩短产品上市时间
▲ 减少产品发布后的认证维护
▲ 高SIL / ASIL级别的应用开发支持
强化性能
对于需要尽可能高性能的应用程序,MULTI IDE既提供了更好的编译器,也提供了更好的性能分析工具。要达到预期目标的性能,请Green Hills Software性能优化专家为您的设备量身定制解决方案。
生成更快、更短的代码
使用专业的编译器对于优化程序的性能至关重要。 我们的优化编译器是市场上认可的。 在EEMBC基准(嵌入式行业中广泛接受的基准)上,Green Hills编译器在性能上始终优于竞争对手,为32位和64位处理器生成运行快和体积小的代码。
芯片供应商发布了经过认证的EEMBC基准,以展示各种实际应用中的处理器性能。 这些供应商选择发布Green Hills编译器生成的分数是其他任何编译器的两倍以上。
Green Hills编译器使用数百种更先进的编译器优化显著地提高程序执行速度和减小程序大小。例如,安全程序优化跨越函数调用边界,以允许Green Hills编译器在整个源代码基础上操作。因此,编译器能够消除不必要的代码和变量,跨模块内联,更好地分析跨进程别名。
您可以通过启用优化的不同组合以及基于每个项目,每个文件,每个功能甚至每个源代码行配置优化来微调Compiler输出。 高度可配置的Green Hills编译器可以进行准确调整,无论项目如何,都能为您带来专业的性能结果。 在大多数程序中,Green Hills编译器的速度比GNU编译器提高了20%。
准确指出性能瓶颈
专业性能分析工具是实现更大性能的另一个关键因素。借助Green Hills特殊的PathAnalyzer、Profiler 和 EventAnalyzer,您可以轻松地识别和消除代码中的性能瓶颈。生成一个更快、更精简的应用程序。
在更大化性能方面,时间是更重要的考虑因素。 这也是大多数性能分析工具都抛弃的维度。 严格创新的PathAnalyzer为您的程序中执行的每个功能提供了基于时间的专业视图,使您可以轻松地识别程序流程中的模式并查看花费的时间。 PathAnalyzer不会仅显示程序执行的阴影,而是会提供整个图像。
对于系统优化和分析,强大的Profiler提供了对程序行为较佳的洞察力。profiler显示每个任务、函数、源代码行和汇编语言指令占用的处理器时间,这就很容易做到:
▲ 发现性能问题
▲ 查找覆盖缺口并跟踪特定代码的测试覆盖率
▲ 与其他用户共享配置文件数据
▲ 从多个测试或配置文件记录中收集和合并配置文件数据
Profiler的界面简化了分析,显示了调用不同任务、功能、说明等的频率和时间,以便您可以确定优化和测试工作的目标。
EventAnalyzer显示INTEGRITY RTOS事件的长度和频率,使您可以快速清楚地了解哪些操作花费的时间多,以及优化工作应该集中在哪里。EventAnalyzer帮助您解决专业性能问题,例如不正确的任务优先级、过度的中断级处理、对操作系统的调用过多以及意外的任务上下文切换。