Green HILLs嵌入式集成开发环境
Green Hills 编译器使用最先进的优化来最大限度地提高程序的性能,即使在严格的大小限制下也是如此,例如,我们的 CodeFactor™ 优化通过子例程调用和尾部合并删除冗余代码段来加速您的程序的执行并减小其大小。静态基础通过对数据项进行分组来显着减少加载地址操作的数量,提供了相同的好处(更快的速度、更小的尺寸)。
我们的每一项优化——无论是我们自己的创新还是行业标准——都经过精心实施。延续三个十年的卓越工程,我们煞费苦心地研究,然后根据数百个基准测试每一个。
精心实施和尖端技术意味着,与 GNU 和 LLVM 编译器相比,Green Hills 编译器可以在大多数程序上提高速度并减少至少 20% 的大小。
支持:C++17、C++14、C++11
Green Hills 编译器支持最新的 C++ 标准,这些标准提供了许多新的语言特性和标准库。其中包括由INTEGRITY 实时操作系统支持的标准化线程。
支持:广泛的处理器
确保快速上市关键取决于 跟上最新目标硬件的可用性。我们的频繁发布和与芯片供应商的紧密联系意味着我们的编译器通常在新硬件上市之前就支持它。
微调输出:
虽然 Green Hills 编译器提供了出色的默认设置,但我们知道您的应用程序是独一无二的。您可以通过启用不同的优化组合以及基于每个项目或每个文件配置优化来微调编译器输出。
紧密集成:
Green Hills 编译器是完整开发解决方案的一部分。我们的产品为整个软件开发、测试和维护周期提供了所有工具和系统——所有这些都无缝集成以节省您的时间。
MULTI IDE与我们的 INTEGRITY RTOS 一起支持选定版本的 Linux 的编译和调试。为了直接在您的目标上进行开发,所有这些产品都可以与 Green Hills Probe 和 SuperTrace Probe 硬件调试设备无缝协作。
确保安全性和可靠性:
行业认证
作为MULTI 工具链的一部分,Green Hills 编译器已通过认证,可满足最高级别的工具认证和 C/C++ 运行时认证:
- IEC 61508:2010(工业)、EN 50128:2011(铁路)和 ISO 26262:2018(汽车)功能安全标准
- 从 TÜV NORD 和 exida 获得的证书
- 满足 SIL 4(安全完整性等级)和 ASIL D(汽车安全完整性等级)工具认证和 C/C++ 运行时认证要求——可达到的最高等级
- 支持广泛的目标处理器
防止新的错误
为了帮助您避免常见的编程错误,Green Hills 编译器提供了清洁编码约定的自动实施。您可以执行 MISRA 2004 指南等行业标准,也可以执行我们自己的一组指南:GHS 标准模式。GHS 标准模式基于我们成功部署软件的悠久历史以及我们与实现同样高可靠性水平的客户的合作。我们在内部使用 GHS 标准模式来开发我们自己的工具。
自动查找错误
DoubleCheck是 Green Hills Software 的集成静态分析器,可让您在运行程序之前识别编程错误,并发现在常规测试期间可能永远不会出现的错误。与独立于编译器运行的传统静态分析工具不同,DoubleCheck 内置于我们的编译器中,具有以下优势:
- 设置很简单——你只需要打开一个开关
- 如果保留,它会自动运行每个构建
- 检查的代码是正在编译的实际代码
运行时错误检查通过查找仅通过静态分析无法识别的错误来补充 DoubleCheck。特别是繁重的错误可能会在失败之前隐藏很长时间。通过运行时错误检查,当问题发生时,您会收到有关问题原因的警报。当您直接查看错误时,消除错误通常是微不足道的。
Green Hills调试器的每一项功 能都旨在快速解决传统工具难以解决的问题。追踪任务间损坏、错过实时需求和外部硬件事件等问题通常需要数周或数月的时间。TimeMachine 工具套件自动捕获程序执行数据,将 MULTI Debugger 接口与创新的重放调试功能相结合。使用 TimeMachine 进行调试时,您可以通过代码向前和向后步进、运行和调试,以查明问题的根本原因。
调试复杂系统
当了解系统状态所需的信息触手可及时,调试复杂系统就变得简单得多。我们以直观的方式呈现重要的系统信息,以帮助您更快地发现问题:
- OSA Explorer提供了内核对象、任务和资源状态的综合视图。
- 调试器允许完整的事后应用程序调试,包括遍历堆栈、浏览对象以及查看内存和寄存器。
- EventAnalyzer显示系统事件的时间线,其间隔仅相隔几微秒。
多核同步运行控制
Green Hills Software 是最早为多核调试提供探针和调试器解决方案的公司之一。MULTI 现在提供的功能使调试多核系统与单核系统一样简单。
这些功能中的关键是同步运行控制,当任何内核遇到调试条件时,它会将所有内核作为一个单元停止。例如,当核心命中断点时,目标列表清楚地显示:
- 哪些内核已达到断点
- 当时在核心上执行什么线程
- 系统中的其他核心在做什么
将代码下载到多核目标可能是一个复杂而乏味的过程。MULTI 可以自动处理将 INTEGRITY 下载到这些目标。对于其他类型的操作系统和应用程序,可以使用简单的配置文件来自动化下载和设置过程。