C和c++编译器往往不那么吸引人,但它们用于构建从云到电机控制系统的嵌入式基础设施。他们为自动驾驶汽车和医疗设备编写代码,这往往比最新的远程电灯开关或声控云门户的代码需要更多的监管。话又说回来,那些物联网(IoT)设备可以更安全一点。
LLVM的叮当声和GNU项目的gcc编译器构成了开源空间中C和c++编译器的主要部分,它们也与芯片和系统供应商提供的许多集成开发环境(IDE)捆绑在一起。这对于很多应用程序都很有用,但是当系统需要满足最高级别的功能安全级别时,事情就变得有点困难了,比如Iso 26262 asil d(汽车)、IEC 61508 SIL 4(工业)和EN 50128 SWSIL 4(铁路)标准。
图片由Thinkstock提供
满足这些严格要求的一个编译器工具链是青山软件的最新的优化编译器2017。它还合并了单通道MISRA-C坚持检查。一般来说,开发人员不应该忽视这样的静态分析特性:它不仅仅适用于汽车应用程序。在我们的2017嵌入式革命调查中,不到一半的开发者使用这样的工具.
在编译器中拥有这样一个快速、高效的特性,更有可能被采用。Green Hills编译器提供的实参类型检查可以捕获跨模块的不匹配。
该编译器支持32位和64位嵌入式处理器体系结构,包括ARM、Intel和Power Architecture。它支持c++ 11,并利用硬件加速,如ARM的28位SIMD(单指令,多数据)NEON矢量单元和自动向量化支持。在Intel平台上,编译器支持最新的Intel流式SIMD扩展(SSE4)指令。它处理Power Architecture e200处理器,包括新的DSP和SPE2指令。
优化编译器2017支持集成了绿山的MULTI IDE,这也支持其完整性RTOS。此外,INTEGRITY满足以下标准的安全性和安全性应用:DO-178B, A级(INTEGRITY-178 RTOS);EAL 6+高鲁棒性通用标准;SKPP;FDA:二类、三类医疗器械审批;50128 SWISL 4轨道控制;IEC: 61508 SIL 3认证工业控制系统;和ISO 26262。
确保编译器基于源代码生成目标代码是Green Hills解决方案的关键方面之一,但性能也是选择其工具的主要原因。这就是为什么许多供应商选择使用它进行基准测试的原因之一EEMBC的嵌入的基准像CoreMark和ULP Bench.后者测试电力效率。
内存效率是嵌入式开发人员在编译器检查清单上的另一个高度重视的领域。Green Hills的优化编译器2017在这方面做得很好。一些客户的内存需求已经提高了30%。这可以让应用程序适应更小、成本更低的平台。