Platform specifications and coding guidelines
What is AUTOSAR?
AUTomotive Open System ARchitecture – AUTOSAR is an open and standardized automotive software architecture developed by a partnership of over 180 automotive manufacturers, suppliers, tools, and semiconductor vendors. Its aim is to standardize software elements, interfaces, and bus systems to future-proof the industry and help manage growing complexity while keeping costs down.
The development of AUTOSAR was motivated by the increasing complexity of modern vehicles, particularly their E/E systems. With over a hundred ECUs in each vehicle, each with thousands of functions, the lack of a standard architecture meant that software often had to be completely rewritten when the hardware was changed. To address this issue, a software architecture that was independent of hardware was created, resulting in the establishment of AUTOSAR as an industry-wide standard. This standard has made software reusable, providing a core solution to the problem of constantly having to rewrite software when hardware changes.
The AUTOSAR architecture supports standardization in interfaces between application software and basic vehicular functions, enabling easy integration and exchange of functions in complex ECU networks, thus reducing development time and costs. Additionally, AUTOSAR provides control over the entire product lifecycle, ensuring that software remains up-to-date and meets evolving industry standards. The architecture is designed as a growing and evolving standard with a layered structure, including the Basic Software Architecture, AUTOSAR Runtime Environment, and Application Layer.
AUTOSAR provides standards for developing common automotive software applications, streamlining the development process, and reducing costs for automotive manufacturers and suppliers.
Autosar Adaptative Platform
For Autonomous and Connected Vehicle Technologies
The rapid evolution of connected and autonomous driving technologies has created new development requirements for ECU software platforms, leading to the development of the Adaptive Platform standard by AUTOSAR. This new standard is specifically designed to meet the needs of highly autonomous and internet-connected driving technologies and offers dynamicity and high-performance computing capabilities. Unlike the previous AUTOSAR specifications, now known as Classic AUTOSAR, Adaptive AUTOSAR covers new needs and resources by allowing for the development of ECU applications independently in distributed work groups.
The AUTOSAR Adaptive Platform is based on POSIX operating systems and provides a future-proof basis for automotive ECUs. This new standard is particularly advantageous for its ability to enable dynamic reloading of software components, the use of standard libraries for image analysis, self-learning of functions, and accelerated production cycles. By separating hardware from software, compute clusters can be created that combine software functionality for different functions in a single « vehicle server. » Adaptive AUTOSAR extends the capabilities of the AUTOSAR platform to address the unique needs of this vehicle server.
This new standard includes interfaces required for the development of future automotive ECUs running on modern multi-core microprocessors. OEMs can leverage these interfaces to implement autonomous driving software updates, IoT capabilities, media streaming, and other services for their future cars. The previous standard, known as AUTOSAR Classic Platform, will continue to be offered alongside the new Adaptive Platform standard.
Some of the technologies driving the adaptive platform standard include:
Benefits of AUTOSAR
- It helps OEMs remain competitive and innovative.
- Provides increased design flexibility.
- Increases efficiency in functional development.
- Offers common interfaces for development processes.
- Grants a seamless, manageable, and task-optimized work environment.
- Improves safety through standardization.
Autosar C++ 14 rules and deviations
AUTOSAR Consortium released the “Guidelines for the use of the C++14 language in critical and safety-related systems” as a part of the Adaptive AUTOSAR platform. This document provides coding guidelines for modern C++ as defined by ISO/IEC 14882:2014. Its main application is for the automotive industry, but also can be used in other industries that require embedded software.
The standard specifies:
- 154 rules adopted from MISRA C++ 2008 without modifications (67%)
- 131 rules based on existing C++ standards
- 57 rules based on the research or other literature or resources
AUTOSAR C++14 follows the rules classification approach from MISRA C++ 2008, according to:
- Required rules: mandatory for compliance with the standard
- Advisory rules: recommended but not mandatory
The rules are also classified as whether they are enforced automatically by static analysis tools:
- Automated: can be fully supported by static analysis tools
- Partially automated: can be supported by static analysis tools but may require additional practices
- Non-automated: cannot be supported with static analysis tools.
The rules can also be classified according to allocation targets: implementation, verification, toolchain, and infrastructure.
How to comply with AUTOSAR C++14 guidelines?
Complying with the AUTOSAR C++14 guidelines can be a challenging task, but it is essential for developing high-quality and safe software that meets ISO standards (such as 26262). Here are some steps to follow:
- Familiarize yourself with the AUTOSAR C++14 guidelines in detail. These guidelines provide coding rules, naming conventions, and best practices to ensure that your C++ code is easy to read, maintain, and understand.
- Use a development environment that supports the AUTOSAR C++14 guidelines. Ensure that your compilers, libraries, and tools are updated to the latest version that supports the standard, and that they enforce the guidelines and check your code for compliance.
- Use AUTOSAR-compliant tools to develop your software, including code generators, static analysis tools, and verification and validation tools. Ensure that your tools are also updated to the latest version that supports the AUTOSAR C++14 standard.
- Test and verify your code to ensure that it meets the AUTOSAR C++14 guidelines. Automated testing tools can help you check your software’s functionality, performance, and safety, and identify defects and bugs in your code to ensure compliance.
The most efficient way to achieve AUTOSAR compliance is by using a static analysis tool like QA-MISRA, which can quickly analyze software packages for coding standards compliance and provide insights into code quality. QA-MISRA ensures automated compliance with the AUTOSAR C++14 guidelines for safety-critical C/C++ code, enabling you to deliver high-quality and reliable software.
With QA-MISRA there are no hidden extras, coding language variants, or compliance module add-ons. It provides a single solution to automatically check your C or C++ source code for compliance against the most common international software safety and security standards.