Continuous Development in Tomorrow’s Automotive Software
By Charles Macfarlane, Codeplay Software
 

auto software

 

There’s little doubt that advanced processors will drive tomorrow’s cars, SUVs, and trucks. They’ll be expected to interpret their surroundings and safely take control of steering, braking, and other functions.  Over-The-Air software updates (OTAs) to vehicles will ensure they are always maintained with the latest software and fixes throughout the lifetime of the vehicle. Coupled with the rapid evolution of safety systems to achieve the high safety rating assessment for new vehicles. Herein lies the challenge: how to continuously develop with these disparate systems around a common, functioning processing paradigm for today’s software developers.

Open Software Architecture Will Bring Continuous Development into High Gear

There’s no question that the automotive industry is growing increasingly dependent on software tools. The average new vehicle already requires over 100 million lines of code to come off the production line, more of a software platform than a traditional car product. Yet tomorrow’s fully automated vehicles will need code that dwarfs even that number. A head-in-the-sand approach that evolves the legacy tools and techniques will no longer work. A comprehensive and widely understood coding standard is crucial in creating systems that are safe, reliable, and easy to maintain.

Turning to an Open Standards-Based Software Environment

Adopting industry-wide standards allows auto manufacturers to take advantage of the latest algorithms and techniques to test, improve, and evolve systems without wasting valuable time and resources. It’s no wonder autonomous car manufacturers now insist on open standards in their requests for vendor proposals. While proprietary formats are perceived to offer the fastest way to develop the latest solutions, these allow rapid demonstrations but need to be re-written to achieve production quality, ultimately wasting development resources and losing any competitive advantage gained. The further risk is when competitors and suppliers adopt open standards and overtake with leadership technology.

“Similar to the need for standards in the initial stage of the perception, the further stages bring data processing challenges for sensor fusion, interpretation, and control,” said Dr. Fleck, Vice-Chair of IEEE P2020 Automotive Image Quality Working Group. “Open industry standards are key to bring the industry to the next level and master the technical challenges for ADAS continuous development. I, therefore, encourage the industry to join these standard bodies and get involved.”.

You Can’t Leave Reliability On ‘Cruise Control’

To move forward with reliability, developers can no longer cruise along with yesterday’s systems. Today’s increasingly complex automotive systems require the highest reliability to meet safety-critical environments. Advanced Driver Assistance Systems (ADAS), such as self-parking, collision avoidance, and highway self-drive features, extensively use complex vision processing. Functional safety and high-quality processes need to be aligned, from the processor IP, the semiconductor companies to the Tier1 integrators.

Open-standards based programming can facilitate the development of ADAS systems today and progress to fully autonomous systems tomorrow. Today’s car companies often rewrite their entire ADAS/AD software for each new generation of cars. Instead, car companies should write ADAS software today to continuously develop and create the fully autonomous vehicles of tomorrow.

Such efforts support the prototyping and evaluation of today’s needs, testing new algorithms and vision devices. But also, the integration and qualification can be a combined effort when everyone is aligned on industry standards. Then the route to fully autonomous vehicles will be quicker and more reliable. The goal is to provide complete development control tools and software libraries that can be developed and improved over many years as technology advances. Source code licensing, validation suites, and the right tool kit will dovetail with a rapidly expanding ecosystem, one that provides automotive clients with a repertoire of customized options across hardware platforms and software applications.

Fast and Easy Updates for Years to Come

All cars will need updates throughout the lifetime of the vehicle, this is already being specified by governments and will become a legal requirement. OTA updates are already extensively adopted in consumer products and will be the only way to maintain a car in the future. Open standards-based software will benefit the hockey-stick ramp up in car firmware updates. GM, Ford, VW, and many others plan to constantly maintain and advance their vehicle systems using OTA, far beyond the infotainment systems updates seen today. Tesla can currently update a vehicle’s powertrain and infotainment system wirelessly. It won’t be long before all new vehicles can be enhanced and maintained with recall fixes to critical safety and functional updates.

ADAS is constantly evolving, driven by legislation and improvements in both advanced vision algorithms and processing hardware. By fully exploiting SYCL (a C++ open standard from The Khronos Group), which is familiar to any software developer, developers can rapidly develop and maintain their applications without using special proprietary programming languages, which are bespoke for hardware and impossible to maintain or evolve for decades.

Developers Start with CUDA for Prototyping and Rapid Deployment

CUDA is a proprietary C++ programming platform by Nvidia and for Nvidia graphics processors. This is where most AI software starts its life, benefiting from an ecosystem of tools, services and libraries. With AI currently being dominated by Nvidia, developers want to be able to target Nvidia’s processors for prototypes but ultimately deploy to different processors in a production environment. Also, most car manufacturers are seeking an alternative, functionally targeted, cheaper, and lower power consumption solution for automotive. So the challenge is to migrate advanced CUDA-based development to rapidly execute on targeted alternatives. Another benefit is that by writing applications in SYCL, it is now possible to execute this single standard code onto Nvidia’s graphics processors, thus avoiding the CUDA starting point. Open-standard and open-source advocates have successfully created this route from SYCL to Nvidia processors, giving the flexibility to use the same SYCL code to target Nvidia and many other processors that support the SYCL standard.

Taking MISRA and AUTOSAR into the Fast Lane

MISRA and AUTOSAR provide frameworks that have been tasked to develop ‘safe’ automotive software. Developing safe and secure systems in C++ remains a challenge, but there are overwhelming benefits to using it in automotive. Areas of ambiguity, interpretation, and memory handling call for considerable skill and experience. One must choose the right coding standards, tools, and programming techniques.

As part of the open-standards philosophy, firms are working within Khronos, AUTOSAR, and MISRA groups. This includes bringing high-performance acceleration technologies to MISRA and Adaptive AUTOSAR. Those high-performance technologies require C++ as a minimum, but also require extra features, such as SYCL. to support the definition of functionally safe C++ with coding rules. MISRA is relatively old and needs modernizing to provide support for standardizing modern C++ methods. AUTOSAR is a substantial organization covering many areas of automotive so it will take more time to achieve standardization. To keep the core standards going forward, Codeplay also chairs the SYCL standard and the Khronos Safety Critical Advisory Panel (KSCAP).

Keeping an Eye on Code Quality

To ensure that every line of code is safe, secure, and reliable, many developers turn to automated tools, such as static code analyzers and fault injection to verify code safeness. This ensures that robustness, excess complexity, coding deviations or hard-to-spot dataflow bugs can be detected early

These automated tools need to be updated to support AI and the latest vision processing techniques. By using an open standards approach, all the different tools-vendors can work together to provide a complete set of development and verification tools and integrate them. Without these standards, it becomes very difficult, bespoke, costly, and dangerous for different tools and suppliers to work together to validate and guarantee a safe application.

Safety-Critical Versions of Emerging APIs

There is a growing need for safety-critical versions of established or emerging APIs. The challenge in ensuring safety is how to unite the latest software needs with non-safety critical APIs, and create discrete systems capable of making fast, reliable decisions. Present systems fall short for all these goals. To ensure the safety of autonomous vehicles for the future, the automotive industry must insist on software that embraces safer versions of the latest compute open standards.

To manage the growing complexity of today’s vehicle systems, open standards-based architectures like those adopted by Codeplay help standardize and future-proof software systems for automotive. These architectures enhance collaboration among software teams, ensure compliance, longevity, improving time-to-market, and most importantly a strategy for continuous development. Coding standards and guidelines are also needed to ensure that software components are safe, reliable, secure, and easy to maintain. There has never been a more urgent need to provide continuous development in automotive software.

For more information, visit www.codeplay.com.