Seien Sie am 12. Dezember dabei! MISRA C++ 2023: Alles, was Sie wissen müssen Jetzt registrieren >>
Die AUTomotive Open System ARchitecture (AUTOSAR) ist aus einer Entwicklungspartnerschaft zwischen Automobilunternehmen hervorgegangen. Die 2003 gegründete Gruppe strebte danach, eine standardisierte und offene Softwarearchitektur rund um elektronische Steuergeräte (ECUs) für Kraftfahrzeuge zu etablieren. Es deckt auch Halbleiter ab.
Ziel der AUTOSAR-Entwicklungspartnerschaft war es, die Effektivität und Verfügbarkeit von Sicherheitsanforderungen, Skalierbarkeit, Übertragbarkeit und Nachhaltigkeit über den gesamten Produktlebenszyklus hinweg zu verbessern. Obwohl es sich nicht um medizinische Geräte handelt, fallen bestimmte Aspekte der Automobiltechnik sicherlich unter Schutzartikel. Produktlinien-Airbags erfordern eine Technologie, die sie genau auslöst, während Systeme wie die Motorsteuerung Konsistenz erfordern.
Mehr eingebettete Elektronik in Autos bedeutet auch viel Datenerfassung sowie Datenverarbeitung in Echtzeit. Verschiedene Aspekte von AUTOSAR zielen darauf ab, die Anforderungen moderner Automobilelektronik und Softwarekomponenten zu erfüllen.
Es gibt zwei Arten von AUTOSAR-Plattformen: Adaptive und Classic. Die klassische AUTOSAR-Plattform bietet nicht die Art von Flexibilität und Verarbeitungsleistung, die die adaptive Methodik bieten kann. Die wachsende Komplexität der Automobiltechnik erfordert einfachere Reaktionen und schnellere Reaktionen.
Allerdings sind die beiden Plattformen keine Rivalen, sondern Teamkollegen. Beide dienen unterschiedlichen Zwecken im Design- und Entwicklungsökosystem der Automobilindustrie.
AUTOSAR-Classic-Plattform | Adaptive AUTOSAR-Plattform |
---|---|
Ideal für eine Single- oder Multicore-Architektur und tief eingebettete ECUs. | Ideal für neuere ECUs und soll auf HPC-Architekturen laufen, um diese besser zu nutzen. |
Verwendet signalbasierte Kommunikation mit BUS-Netzwerken wie LIN oder CAN. | Verwendet dienstbasierte Kommunikation mit Ethernet. |
Definiert ein Betriebssystem (OS). | Definiert den Ausführungskontext sowie eine Betriebssystemschnittstelle wie PSE51. |
Statische Natur mit geringer Flexibilität. | Bietet „geplante Dynamik“ während der Anwendungsbereitstellung mit flexibler Integration. |
Fristen sind aufgrund der Echtzeitverarbeitung dringender. | Weiche Echtzeitanforderung. |
Beispiele sind Bremssysteme und Motorsteuerung. | Beispiele hierfür sind die Verarbeitung von Sensorfusionsdaten und Over-the-Air-Updates (OTA-Updates). |
Es ist ein Codierungsstandard für C++ Version 14 (ISO/IEC 14882:2014) und ein Artefakt oder eines der Ergebnisse bei der Definition der Adaptive AUTOSAR-Plattform, die Schnittstellenspezifikationen für APIs und Dienste bereitstellt. Dieser Abschnitt der AUTOSAR-Codierungsrichtlinien hat ursprünglich nur MISRA aktualisiert C++ 2008 – ein veralteter Programmierstandard. MISRA und AUTOSAR kündigten jedoch 2019 ihre Fusion an, um die Aktualisierung auf C++17 zu unterstützen. Dies ist die Standardsprache für viele moderne AUTOSAR-Elektroniklösungen geworden.
Tatsächlich sind diese Richtlinien so robust und optimiert, dass sie auf jede Branche angewendet werden können, die eine eingebettete Programmierung in C++ erfordert.
AUTOSAR C++14 verfügt über 342 Regeln, um dem Benutzer ein klares Verständnis und eine Anleitung zu den Codierungsanforderungen zu vermitteln. AUTOSAR C++14-Codierungsregeln werden nach Verpflichtungsgrad klassifiziert.
Eine Abweichung von einem AUTOSAR-Standard, einer Regel oder einer Richtlinie kann jedoch zugelassen werden. Um das Abweichungskonzept nicht durch willkürlich abweichende Entwickler zu missbrauchen, müssen Freigaben für jede Abweichung beigefügt werden. Darüber hinaus werden die Regeln auch danach klassifiziert, ob sie von statischen Analysewerkzeugen automatisch durchgesetzt werden können.
Die Verwendung von C++14 in Zusammenarbeit mit den AUTOSAR C++14-Richtlinien bietet Entwicklern die Möglichkeit, überlegene Compiler zu verwenden und verbesserten Zugriff auf verbesserte Test-, Verifizierungs- und Analysewerkzeuge. Es erlaubt, neue Entwicklungsmethoden wie zu verwenden kontinuierliche Integration / kontinuierliche Lieferung (CI/CD), wodurch Fehler im Lebenszyklus der Softwareentwicklung früher erkannt werden können.
„MISRA“, „MISRA C“ und das Dreieckslogo sind eingetragene Marken von The MISRA Consortium Limited. ©The MISRA Consortium Limited, 2021. Alle Rechte vorbehalten.
Finden Sie die richtigen Entwicklungswerkzeuge Die Sicherstellung der Softwarequalität ist eine Frage von Versuch und Irrtum. Aber das bedeutet nicht, dass Sie mit unbewährten Tools oder Strategien experimentieren müssen. Glücklicherweise sind die Vorteile der Automatisierung in Bezug auf Tests und Compliance eindeutig.
Probleme früher zu finden, kann die Dinge für alle, die an der Softwareentwicklung beteiligt sind, nur einfacher machen. Von Softwarearchitektur und Anwendungssoftware bis hin zu Diagnose und Validierung haben Parasoft-Lösungen alles im Blick.
Implementieren Sie die AUTOSAR C++14-Konformität, indem Sie sicheren und zuverlässigen Code für dauerhafte Vorteile bereitstellen, die sich auf Ihren Produkterfolg und Ihre Langlebigkeit auswirken und gleichzeitig die Arbeitskosten und die Markteinführungszeit reduzieren.
Verhindern Sie Codefehler früher im Entwicklungsprozess, bevor sie später zu teureren Herausforderungen führen.
Parasoft bietet die statische AUTOSAR C++14-Analyse als Lösung an, die von Prozessstandards wie ISO 26262, DO-178C, IEC 62304, IEC 61508, EN 50128 und mehr empfohlen wird.
Binden Sie AUTOSAR C++14-Sicherheitscodierungsrichtlinien als Teil Ihrer SAST-Strategie direkt in Ihren Softwareentwicklungslebenszyklus ein.
Parasoft integriert künstliche Intelligenz und maschinelles Lernen, um die Produktivität in den statischen AUTOSAR C++14-Analyse-Workflows Ihres Teams zu verbessern, indem die zuerst zu behebenden Verstöße gekennzeichnet und priorisiert werden.
Die statische AUTOSAR C++14-Analyse von Parasoft lässt sich problemlos in Ihre optimierte CI/CD-Pipeline mit kontinuierlichen Tests integrieren, um schnell qualitativ hochwertige und sichere Software bereitzustellen.
Erstellen Sie mit dem Parasoft RuleWizard Ihre eigene benutzerdefinierte Codierungsstandardkonfiguration für Ihr Unternehmen.
Parasoft bietet die Aggregation MISRA mit all unseren anderen unterstützten Codierungsstandards wie CERT, CWE, OWASP, UL 2900 und mehr an.
Stellen Sie die Lösungen von Parasoft bereit, um statische Codeanalysen durchzuführen, unabhängig davon, in welcher Entwicklungsumgebung Sie arbeiten.
Wenn es um die Einhaltung von AUTOSAR C++14 geht, gibt es mehrere sehr vorteilhafte Vorgehensweisen. Hier ist eine Liste mit einigen der zu berücksichtigenden Methoden.
Treffen Sie sich zusätzlich zur Einhaltung von AUTOSAR C++14 mit Ihren Kollegen aus der Softwareentwicklung und überprüfen Sie den Code des anderen systematisch auf Fehler und Verstöße gegen den Programmierstil. Es hat sich gezeigt, dass diese Aktivität die Codequalität beschleunigt und wesentlich verbessert.
Jede Abweichung von der AUTOSAR C++14-Richtlinie erfordert eine gründliche Dokumentation zu Folgendem: welche Richtlinie, Geltungsbereich, Begründung, Sicherheitsgarantie, Konsequenzen und Minderung.
Die Einhaltung von AUTOSAR C++14 hilft Ihnen, Code zu schreiben, der einfach zu lesen und leicht zu verstehen ist. Seien Sie nicht zu schlau und schreiben Sie kryptischen Code, der schwer zu verstehen oder leicht misszuverstehen ist. Sie möchten nicht, dass andere Ingenieure oder Sie selbst viel Zeit damit verbringen, einen Fehler in Ihrem Code zu entschlüsseln.
Die Einhaltung von AUTOSAR C++14 hilft beim Schreiben von Code unter Berücksichtigung der Portabilität, da portabler Code (POSIX, ANSI C usw.) einfach und schnell auf andere Plattformen verschoben werden kann. Die Anpassung anderer Compiler oder anderer Betriebssysteme kann mit minimalen Codeänderungen erfolgen. Oft gibt es finanzielle oder geschäftliche Möglichkeiten, warum eine Migration auf ein anderes Betriebssystem oder Ziel erfolgen muss.
Einige Codekonstrukte können so geschrieben sein, dass sie einen AUTOSAR-C++14-Regelverstoß auslösen. Parasoft bietet eine Möglichkeit, dieses Rauschen wissentlich herauszufiltern.
Die Einhaltung von AUTOSAR C++14 hilft beim Schreiben von Code, der nicht viele Verzweigungen hat. Je mehr Verzweigungen, desto höher die Codekomplexität und desto höher die Anzahl der im Code gefundenen Fehler.
Die Einhaltung von AUTOSAR C++14 hilft Ihnen, zuverlässigen Code zu schreiben, der nicht nur Szenarien für sonnige, sondern auch für regnerische Tage bewältigt. Inklusive Negativszenarien, die Ihre Bewerbung vorbereiten, wenn sie auf ungültige Daten stößt.
Die Einhaltung von AUTOSAR C++14 hilft Ihnen, portablen Code zu schreiben, der in zukünftigen Produkten oder Projekten wiederverwendet werden kann. Dies verbessert die Produktivität und reduziert Arbeits- und Testkosten.
Die Funktionen der offenen und standardmäßigen Softwarearchitektur in vielen modernen elektronischen Softwaresystemen für Kraftfahrzeuge werden heute für autonomes Fahren und Konnektivität verwendet.
Nehmen Sie beispielsweise fortschrittliche Fahrerassistenzsysteme (ADAS) wie LIDAR, mit denen Autos erkennen können, wenn sie Gefahr laufen, mit einem Objekt zusammenzustoßen. Auch der Parkassistent beim automatisierten Fahren setzt stark auf die AUTOSAR-Softwarearchitektur.
Dies sind nur zwei Anwendungsfälle, aber da die Konnektivität der adaptiven AUTOSAR-Plattform und Geräte für das Internet der Dinge (IoT) in Fahrzeugen immer häufiger und robuster werden, ist die Fähigkeit, Daten zur Anpassung zu messen, von entscheidender Bedeutung.
Das Analyse-Dashboard von Parasoft mit automatisiertem AUTOSAR-Compliance-Reporting macht es einfach, den für die Zertifizierung erforderlichen Nachweis zu erbringen.
Das Tolle an der vorgeschlagenen AUTOSAR C++14-Konformität ist, dass sie in jeder Softwareentwicklungsphase eines Projekts eingeführt und verwendet werden kann. Noch besser ist, dass es auch dann effektiv ist, wenn ein Projekt oder Ihre Steuergeräte-Software unvollständig und teilweise codiert ist.
Die größte Herausforderung bei der Einführung der AUTOSAR C++14-Konformität besteht darin, dass eine große Menge Code eine große Anzahl von Warnungen erzeugen kann. Daher sollte der Fokus bei der Integration von AUTOSAR C++14-Compliance in ein Projekt darauf liegen, das Team so schnell wie möglich produktiv zu machen. Dadurch wird die Wahrscheinlichkeit minimiert, dass das Team von statischen Analysewarnungen überwältigt wird.
Da das Erreichen der AUTOSAR C++14-Konformität Teil der täglichen Routine jedes Entwicklers wird, können sie Ergebnisse schneller analysieren und Fehler effizienter beheben.
Auch die Reife des in der Entwicklung befindlichen Produkts spielt eine Rolle, da sie sich auf die Art und Weise auswirkt, wie die AUTOSAR C++14-Konformität integriert werden kann. Das Adoption Lifecycle Management funktioniert wie unten beschrieben.
Der Parasoft-Codeanalyse-AUTOSAR-Lösung, Parasoft C/C++test, erkennt komplexe AUTOSAR-C++14-Compliance-Laufzeitprobleme in einer AUTOSAR-Laufzeitumgebung früh in der Entwicklungsphase – ohne dass kostspielige Laufzeittests durchgeführt werden müssen. Dadurch werden Entwicklungsprozesse so verschlankt, dass alle davon profitieren.
C/C++test analysiert die Ausführungspfade durch den Code und findet AUTOSAR C++14-Compliance-Probleme wie Nullzeiger-Dereferenzierung, Division durch Null und Speicherlecks. Es sucht auch nach Sicherheitslücken wie Arithmetik bei einem Zeigeroperanden, Pufferüberläufen, nicht erreichbarem Code und cstdlib-Systemfunktionen
Ergebnisse von AUTOSAR C++14-Konformität von C/C++test Die Ergebnisse können im dynamischen Berichts-Dashboard von Parasoft angezeigt werden, wodurch eine automatisierte Nachbearbeitung und erweiterte Berichtsstrategien unter Verwendung historischer Daten ermöglicht werden.
Es ist einfach, die AUTOSAR C++14-Compliance-Ergebnisse für alle Builds im Laufe der Zeit zu sehen. Dies gilt selbst bei der Arbeit mit großen Codebasen und Legacy-Code, bei dem die Einsicht in den Code normalerweise schwierig ist. Sie können sich schnell auf die Qualität des neu hinzugefügten Codes konzentrieren.
Mit Widgets, die die AUTOSAR C++14-Compliance automatisch nachverfolgen, erhalten Benutzer einen dynamischen Einblick in den Compliance-Prozess und können auf einfache Weise automatische Berichte für Code-Audits und Zertifizierungsziele erstellen.
Basissoftwaremodule (BSW) sind eine Sammlung von Softwaredateien, die bestimmte codierte Funktionen bereitstellen, die auf einem Steuergerät ausgeführt werden. Diese standardisierten Softwaremodule können Kommunikation, E/A, Speicher und mehr unterstützen.
Beispielsweise führen einige AUTOSAR-Basissoftwaremodule Aufgaben wie Busspiegelung, Diagnose und sogar Kryptografie aus, um Daten zu sichern.
Die drei Schichten sind:
ECU-spezifische (Electronic Controller Unit) und generische Module sind in drei Unterschichten enthalten, einschließlich der Dienstschicht, der ECU-Abstraktionsschicht und der Mikrocontroller-Abstraktionsschicht (MCAL).
RTE steht für „Runtime Environment“ und fungiert als eine Art Mittelweg zwischen der Anwendungsschicht und anderen Schichten. Es betreibt die Intra-ECU- und Interlayer-Kommunikation.
Als Teil der drei Schichten verfügt die ECU-Abstraktionsschicht über der MCAL-Schicht über Hardwarekomponententreiber und Komponenten für Schnittstellen. Das bedeutet, dass seine Aufgabe darin besteht, sicherzustellen, dass die oben genannte Schicht unabhängig von der Hardware auf dem Steuergerät arbeitet.
Die 2003 gegründete Gruppe von OEMs und anderen beteiligten Parteien umfasst unzählige große Namen wie Volkswagen und die Robert Bosch GmbH.
AUTOSAR C++14 bietet keine ähnliche Anleitung zum Erreichen der Konformität, zumindest nicht direkt. Da die AUTOSAR C++-Richtlinien jedoch auf MISRA C++ 2008 basieren, ist es sinnvoll, sich auf den MISRA-Standard zu beziehen, um nach Anleitungen zum Erreichen der Konformität zu suchen.
Eine adaptive AUTOSAR-Plattform definiert eine Plattform für die Entwicklung von Fahrzeugsteuergeräten, die anspruchsvolle Funktionen wie fortschrittliche Fahrassistenzsysteme, Medienstreaming oder Software-Updates über das Internet bereitstellen.
Statische Analyse ist der Prozess der Untersuchung des Quellcodes ohne Ausführung, in der Regel zum Auffinden von Fehlern oder zum Bewerten der Codesicherheit, -sicherheit und -zuverlässigkeit.