{"id":6627,"date":"2014-02-03T16:19:46","date_gmt":"2014-02-03T15:19:46","guid":{"rendered":"https:\/\/blogs.mentor.com\/colinwalls\/?p=6627"},"modified":"2026-03-26T16:42:34","modified_gmt":"2026-03-26T20:42:34","slug":"embedded-systems-in-cars-challenges-and-solutions","status":"publish","type":"post","link":"https:\/\/blogs.sw.siemens.com\/embedded-software\/2014\/02\/03\/embedded-systems-in-cars-challenges-and-solutions\/","title":{"rendered":"Embedded systems in cars &#8211; challenges and solutions"},"content":{"rendered":"<p>Complexity never, in itself, impresses me. I am impressed people&#8217;s ability to understand complex ideas and create complex machines, but a truly elegant and simple solution is always what gives me most pleasure. This might beg the question as to why I work in software &#8211; a business well known for creating incredibly complex things. I often ask myself the same question.<\/p>\n<p>Systems where there are safety issues are a particular concern and a context, which is of interest to us all, is automotive systems &#8230;<!--more--><\/p>\n<p>When I first got a car [in 1975] there were really no electronic systems in vehicles at all. A few high end models had &#8220;electronic ignition&#8221;, but that was very primitive analog electronics that barely counts. That has all changed. Modern cars &#8211; even basic models &#8211; have dozens of microprocessors and microcontrollers, which span the complete spectrum of power\/complexity from tiny 4-bit controllers to monster 32-bit [maybe 64-bit] supercomputers on a chip. Every system is electronic and a variety of design approaches are applicable. As I discussed in a <a href=\"https:\/\/blogs.mentor.com\/colinwalls\/blog\/2014\/01\/13\/safety-critical-sensors-in-cars\/\" target=\"_blank\" rel=\"noopener noreferrer\">previous post<\/a> the degree of safety criticality in automotive systems varies and this has a significant effect on how they are implemented.<\/p>\n<p>I am not a specialist in the automotive business, but I observe a particular characteristic which seems specific to car makers: they are very keen on standards. I believe that this comes about because, apart from being good business practice to take standards-based approaches to design when possible, the auto industry has a complex supply chain, so compliance with standards is easier to manage than individual, very detailed specifications. Some of the standards that apply to electronic systems in cars [not an exhaustive list]:<\/p>\n<ul>\n<li>CAN Bus &#8211; a means to reliably connect numerous systems together whilst minimizing the amount of wiring.<\/li>\n<li>MISRA C [and C++] &#8211; a detailed set of guidelines in the use of this language in a safety critical system, like a car.<\/li>\n<li>OSEK\/VDX &#8211; a standard for real time operating systems used in such systems in cars.<\/li>\n<li>Genivi &#8211; a standard for Linux based systems used for in-car infotainment systems.<\/li>\n<\/ul>\n<p>Although MISRA C has always interested me, I am particularly focused on the two operating system standards.<\/p>\n<p>OSEK\/VDX is a standard for RTOSes destined for use in automotive control systems. It was designed from the ground up for this purpose and incorporates the key characteristics needed for a safety critical system. The key feature is a lack of dynamic objects; everything is created statically at build time. The intrinsic simplicity of this implementation makes total sense to me, as it does not constrain the software designer significantly and eliminates a significant potential source of system failure. It is unsurprising that other industries are taking an interest in the standard. OSEK\/VDX RTOSes are available from a number of vendors; it is also encompassed by <a href=\"http:\/\/www.mentor.com\/embedded-software\/automotive\/autosar\" target=\"_blank\" rel=\"noopener noreferrer\">AUTOSAR<\/a>, which is a broader standard.<\/p>\n<p><a href=\"http:\/\/www.mentor.com\/embedded-software\/automotive-technology-platform\/\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-6631\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/51\/2014\/02\/atp-logos.png\" alt=\"\" width=\"255\" height=\"163\" \/><\/a>Most of the driver-facing systems in a car are not hard real time and do not have harsh safety requirements. So Linux is a good choice, as it opens up the availability of a wide range of off-the-shelf software components. Genivi is a standard for the implementation of Linux in this context. Mentor Embedded not only provides the <a href=\"http:\/\/www.mentor.com\/embedded-software\/automotive-technology-platform\/\" target=\"_blank\" rel=\"noopener noreferrer\">Automotive Technology Platform<\/a>, but is very active in maintaining and advancing this important standard. A recent announcement details <a href=\"http:\/\/www.mentor.com\/embedded-software\/news\/mentor-genivi-automotive-technology-platform\" target=\"_blank\" rel=\"noopener noreferrer\">support for Genivi 5.0<\/a>. This <a href=\"http:\/\/www.mentor.com\/embedded-software\/multimedia\/deploying-linux-and-genivi-based-infotainment--ivi--systems-into-production\" target=\"_blank\" rel=\"noopener noreferrer\">on-demand Web seminar<\/a> is a useful introduction to Genivi deployment.<\/p>\n<p><a href=\"http:\/\/www.mentor.com\/embedded-software\/hypervisor\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-6635\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/51\/2014\/02\/hypervisor.jpg\" alt=\"\" width=\"344\" height=\"206\" \/><\/a>The complexity of automotive systems means that deployment of a hypervisor, such as <a href=\"http:\/\/www.mentor.com\/embedded-software\/hypervisor\" target=\"_blank\" rel=\"noopener noreferrer\">Mentor Embedded Hypervisor<\/a>, becomes very attractive. This ensure isolation between sub-systems, thus increasing security and reliability.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Complexity never, in itself, impresses me. I am impressed people&#8217;s ability to understand complex ideas and create complex machines, but&#8230;<\/p>\n","protected":false},"author":71677,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spanish_translation":"","french_translation":"","german_translation":"","italian_translation":"","polish_translation":"","japanese_translation":"","chinese_translation":"","footnotes":""},"categories":[1],"tags":[341,548,300,556,549,307,550,564,565,566],"industry":[],"product":[],"coauthors":[],"class_list":["post-6627","post","type-post","status-publish","format-standard","hentry","category-news","tag-automotive","tag-embedded-hypervisor","tag-embedded-software","tag-genivi","tag-hypervisor","tag-linux","tag-mentor-embedded-hypervisor","tag-misra-c","tag-osek","tag-osekvdx"],"_links":{"self":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts\/6627","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/users\/71677"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/comments?post=6627"}],"version-history":[{"count":1,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts\/6627\/revisions"}],"predecessor-version":[{"id":10241,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts\/6627\/revisions\/10241"}],"wp:attachment":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/media?parent=6627"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/categories?post=6627"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/tags?post=6627"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/industry?post=6627"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/product?post=6627"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/coauthors?post=6627"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}