Functional Safety. Two words that have become very prevalent in our industry across many sectors. Heavy machinery, including automotive and transport, are classic examples of FuSa (functional safety) applications, where the user’s safety is in the hands of the technology. FuSa is also relevant in areas such as health care, where reliability is essential.
There are often multiple key requirements for devices involving functional safety, in particular those used in the automotive sector as it accelerates towards autonomous transportation. Some systems need to be AI-capable and perform several tasks in parallel. It is therefore important that FuSa does not come at the expense of performance, system cost, and other traditional factors.
Functionally safe software is an essential component in any product with FuSa requirements. It is against this backdrop that we are proud to announce that Arm Compiler for Embedded FuSa 6.16LTS is now available. Based on the mature Arm Compiler for Embedded Applications, the toolchain is a long-term solution for developing safer software for Arm systems.
Arm’s commitment to FuSa spans many areas over many years. Processors and other IP are designed with features such as lock-step execution to ensure they can be used in applications with the highest SIL levels. FuSa specific documentation and Software Test Libraries (STLs) are available to ensure your complete design is appropriately tested and qualified for its purpose.
Arm Compiler for Embedded FuSa 6.16LTS is a keystone of this strategy. The toolchain is qualified by TÜV SÜD for use in applications conforming to the safety standards listed below to the highest SIL levels.
Arm is at the center of the industry's largest ecosystem, with a plethora of partners focused on delivering solutions for functional safety development. For example, ETAS provide ASCET DEVELOPER, an automated tool for generating code to conform to industry standards such as MISRA C. This source code can then be built with the qualified Arm compiler. See here for more information on that collaboration.
We are also at the forefront of innovation in the automotive industry. Arm guides Initiatives such as SOAFEE, which provides a cloud-native architecture for real-time automotive applications. To learn more about SOAFEE, I encourage you to read this article.
Software components from the Arm FuSa RTS and Certified C library are critical for real time applications. These will be rebuilt and re-certified with the compiler for increased performance and compatibility. The use of these were discussed by my colleagues in this webinar along with representatives from Siemens, STMicroelectronics, and Absint.
The compiler is branched from the 6.16 release of the Arm Compiler for Embedded. Released 4+ years after the previous qualified version, this new compiler brings improvements in terms of processor support, performance, and functionality pertinent to the FuSa space.
The compiler is qualified for use with all Armv7-A, Armv8-A, Armv7-R, Armv8-R, Armv6-M, Armv7-M, and Armv8-M processors available at the time of release. In particular this means that all processors listed in the Arm Safety Ready portfolio are supported by a FuSa qualified compiler. Note that processor support depends on the type of product license you have.
Thread Local Storage (TLS) is supported for C and C++ applications, helping to avoid race conditions when accessing global data. TLS can be used with static and dynamic linking models The compiler thoroughly supports the C++ 14 language standard, and its use is also qualified for FuSa applications. These features are used in a number of safety critical software stacks, notably AUTOSAR,.
Existing projects using the older Arm Compiler for Embedded FuSa 6.6LTS release should see a tangible improvement in code performance and code size. This is due to general optimization improvements that have been integrated into the compiler over time. FuSa projects based on newer IP will now be able to make use of features not previously supported by the safety qualified compiler. For example, Cortex-M55 projects can now make use of Helium instructions (supported since Arm Compiler for Embedded 6.14) to accelerate ML and other mathematically intensive applications.
A key aspect of functional safety is system security and integrity, so that rogue applications cannot corrupt the device. Enabling TrustZone technology is a de facto feature of connected devices, all supported by the compiler. Used in conjunction with CMSIS-Zone, you can easily partition your system into secure enclaves as needed. The compiler supports the generation of execute-only code, eliminating literal pools and branch tables from certain code regions, another common area for attack.
For a thorough summary of changes between Arm Compiler for Functional Safety 6.6 and Arm Compiler for Embedded FuSa 6.16LTS, see the supplied Migration and Compatibility Guide.
The compiler is provided with a commitment to Long Term Support (LTS). This states that Arm shall provide technical support and maintenance of the compiler branch for many years from the date of release. If you require an extended commitment, you can contact Arm to discuss your specific needs.
Arm Compiler for Embedded FuSa 6.16LTS is available to download now for existing users. Licensees of Arm Success Kits, as well as stand-alone licenses of Arm Development Studio Gold (2021.2 and later) and Platinum (2021.c and later) Editions, and Keil MDK Professional Edition (5.36 and later) will enable use of this compiler. If you have not used the compiler before and would like to try it out, an evaluation package is also available.
[CTAToken URL = "https://developer.arm.com/tools-and-software/embedded/arm-compiler/safety" target="_blank" text="Learn more" class ="green"]