By Kumar Senthil and Liviu Caraman from the Connected Vehicle team at Wind River
Choosing a compiler for automotive applications can be a difficult task, and choosing the wrong one can lead to pain and frustration. It could also lead to your product not working or not being able to meet appropriate safety certifications. Sounds dire? It doesn’t have to be that way.
The automotive industry has had to navigate a steep curve in terms of increasing product quality. On top of having to develop quality software and face competitive pressures, companies must also be in compliance of industry standards of quality; the most relevant example is ISO 26262.
Quality in code compilation means, in a nutshell, an absence of bugs. Product quality is measured via comprehensive testing and comparison against the expected results and also the results obtained by other suppliers’ toolsets. Compilers should generate the correct output in response to any reasonable input. Developing a bug-free product requires having mature processes in place; otherwise it is not possible to develop and maintain a product that is representative of the state-of-the-art.
As we are not living in an ideal world where everybody writes perfect code, a capable compiler should also allow easy debugging. Most compilers require a painful setup that often takes longer than actually running the debugger itself. A compiler that provides a quick and easy setup is a valuable requirement.
Diab Compiler, an ISO 26262/ASIL-D Certified Compiler
Wind River Diab Compiler is a reliable, safety-certified compiler used to compile source code for safety-critical applications that can meet required safety standards. Diab Compiler is a proven technology in use across multiple mission-critical markets and numerous safety applications; some examples include Diab Compiler instances for ISO 26262/ASIL-D and IEC 61508–certified. It supports customers working on automotive safety and industrial products with the creation of safety artifacts that meet their end product’s safety certification requirements.
Why Diab Compiler?
Community effort does not provide the peace of mind of Long Term Support (LTS) or other specific and demanding requirements that are needed for the automotive lifecycle. Bug tracking, monitoring, and fix investigation, along with certification, will be undertaken by the Diab Compiler experts at Wind River. Wind River also delivers the familiarity of DIAB’s front-end constructs backed by an award-winning global support team.
Equally important, Diab Compiler is a standalone compiler targeting customers in automotive, aerospace and defense, industrial, medical, and other safety conscious markets.
- Compiler engineering teams and their sourcing IT departments are based at these targets.
- SoC vendors coming out with new chip sets and tools partner with complimentary technologies (IDE/debugger, etc.).
- The latest Diab Compiler is a major iteration of the Wind River compiler product, targeting the latest ARM (64b and 32b) architectures that are becoming prominent in the safety-focused embedded markets.
- Diab Compiler is leveraging the LLVM community effort, providing access to the latest ARM SoCs coupled with the familiar Diab interface in which customers are accustomed.
- Diab Compiler allows Wind River to leverage the LLVM framework to provide other value-added functionalities and services.
Using Diab Compiler, Under the Hood
DIAB compiler technology, on which Wind River Diab Compiler is based, is widely used in the most demanding and mission-critical applications, such as automotive under-the-hood, industrial, and aerospace and defense systems. Given the critical nature of quality to the automotive industry, every release of Diab Compiler is tested for conformance and performance with more than half a million test cases.
In the automotive industry, there is nothing more critical than safety. Products are already in production that take on several safe driving functions, such as following distance, emergency braking, or lane departure warning. Cars will soon incorporate more self-driving features than ever before. What does this mean? Both hardware and software pieces must meet high safety standards.
There are many standards that must be adhered to and safety requirements that must be met. And most of the time, it starts with the hardware. However, if your compiler is not aware of these safety features, you will be—at best—left to write assembly code, or—at worst— be unable to make the hardware function properly, and that could end in dangerous results.