Electronicdesign 14769 Carselfdrivinglead 638796582
Electronicdesign 14769 Carselfdrivinglead 638796582
Electronicdesign 14769 Carselfdrivinglead 638796582
Electronicdesign 14769 Carselfdrivinglead 638796582
Electronicdesign 14769 Carselfdrivinglead 638796582

Compiling for Automotive Safety and Performance

April 17, 2017
Green Hills Software’s optimizing C and C++ compilers handle C++11 and autovectorization for ARM NEON support.

Download the PDF of this article.

C and C++ compilers tend not to be sexy, but they’re used to build the embedded infrastructure from the cloud down to motor control systems. They compile the code for self-driving cars and medical devices, which tend to require a bit more oversight than the code for the latest remote light switch or voice-activated cloud portals. Then again, those Internet-of-things (IoT) devices could be a little safer and more secure.

LLVM’s Clang and GNU Project’s gcc compilers make up the bulk of C and C++ compilers in the open-source space, and they are also bundled with many integrated development environments (IDE) available from chip and system vendors. These are useful for a wide range of applications, but things get a bit more difficult when systems need to meet the highest levels of functional safety levels like ISO 26262 ASIL D (automotive), IEC 61508 SIL 4 (industrial) and EN 50128 SWSIL 4 (railway) standards.

Image courtesy of Thinkstock

One compiler toolchain that meets these strict requirements is Green Hills Software’s latest Optimizing Compiler 2017. It also incorporates single-pass MISRA-C adherence checker. Static analysis features like this should not be overlooked by developers in general: It’s not just for automotive applications. Less than half of the developers in our 2017 Embedded Revolution survey employed tools like this.

Having a fast, efficient feature like this in the compiler makes adoption more likely. The argument type checking available with Green Hills compilers can catch mismatches across modules.

The compiler supports 32-bit and 64-bit embedded processor architectures, including ARM, Intel, and Power Architecture. It has C++11 support and takes advantage of hardware acceleration like ARM’s 28-bit SIMD (Single Instruction, Multiple Data) NEON vector unit with autovectorization support. On Intel platforms, the compiler supports the latest Intel Streaming SIMD Extensions (SSE4) instructions. It handles the Power Architecture e200 processor, including new DSP and SPE2 instructions.

The Optimizing Compiler 2017 support is integrated with Green Hill’s MULTI IDE, which also supports its INTEGRITY RTOS. In addition, INTEGRITY addresses safety and security applications meeting the following standards: DO-178B, Level A (INTEGRITY-178 RTOS); EAL 6+ High Robustness Common Criteria; SKPP; FDA: Class II and Class III medical device approval; 50128 SWISL 4 railway control; IEC: 61508 SIL 3-certified industrial control systems; and ISO 26262.

Making sure the compiler generates object code based on the source code is part of the critical aspect of Green Hills’ solution, but performance is also a prime reason for choosing its tools. That is one reason why many vendors choose it for benchmarking using EEMBC’s embedded benchmarks like CoreMark and ULP Bench. The latter tests power efficiency.

Memory efficiency is another area that embedded developers place high on their checklist for compilers. Green Hills’ Optimizing Compiler 2017 does well in this area. Some customers have seen as much as a 30%improvement in memory requirements. This can allow an application to fit into a smaller, less costly platform.

Sponsored Recommendations

Board-Mount DC/DC Converters in Medical Applications

March 27, 2024
AC/DC or board-mount DC/DC converters provide power for medical devices. This article explains why isolation might be needed and which safety standards apply.

Use Rugged Multiband Antennas to Solve the Mobile Connectivity Challenge

March 27, 2024
Selecting and using antennas for mobile applications requires attention to electrical, mechanical, and environmental characteristics: TE modules can help.

Out-of-the-box Cellular and Wi-Fi connectivity with AWS IoT ExpressLink

March 27, 2024
This demo shows how to enroll LTE-M and Wi-Fi evaluation boards with AWS IoT Core, set up a Connected Health Solution as well as AWS AT commands and AWS IoT ExpressLink security...

How to Quickly Leverage Bluetooth AoA and AoD for Indoor Logistics Tracking

March 27, 2024
Real-time asset tracking is an important aspect of Industry 4.0. Various technologies are available for deploying Real-Time Location.

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!