OEM&Lieferant Ausgabe 1/2018

30 In den letzten 40 Jahren hat sich C zur Defacto-Programmiersprache für die Entwick- lung eingebetteter Software entwickelt. C ist einfach, kompakt, schnell, portabel und wird von vielen Tools unterstützt. Doch C hat auch Tücken. Allzu leicht schlei- chen sich Fehler ein, die im Code nur schwer zu finden sind. Die Syntax macht es leicht, Fehler beim Programmieren zu machen – optionale Klammern, Zuweisungen in Ausdrücken und automatisches „switch/case-Durchfallen“ sind nur einige Beispiele. Zusätzlich gibt es seman- tisch zweifelhafte oder komplexe Features, die nur schwer richtig zu verwenden sind und dazu verleiten, „an der Grenze zur Sicherheit“ zu programmieren, beispielsweise Sprünge, Zeiger und integrale Promotion. Auch diese Aspekte können gefährlich zusammenwirken. Durch die Verwendung von Programmier- richtlinien wie MISRA-C und CERT-C können viele dieser Risiken vermieden werden. Aber selbst bei Einhaltung dieser Richtlinien kön- nen weiterhin Probleme auftreten. Richtlinien verhindern weder Laufzeitprobleme wie Spei- cherüberlauf noch numerische Probleme wie Überlauf oder Division durch Null. Richtlinien können auch keine unsinnigen Operationen erkennen, wenn beispielsweise eine Geschwin- digkeit einen Grenzwert überschreitet, eine Temperatur unter den absoluten Tiefpunkt fällt oder versehentlich eine Entfernung zu einem Druck addiert wird. C ist nicht expressiv genug, um diese Informationen zu erfassen und kann diese folglich auch nicht überprüfen. Um diese Probleme zu vermeiden, sind zusätz- liche Maßnahmen erforderlich, zum Beispiel statische Analysen und Testläufe zur Fehlerbe- hebung. Das ist ineffizient. Viel besser wäre es, Fehler von Anfang an zu vermeiden, damit sie gar nicht erst beseitigt werden müssen. Eine bessere Programmiersprache Die ETAS-Antwort auf all diese Herausforde- rungen lautet Embedded Software Develop- ment Language (ESDL) – eine neue Program- miersprache zur effektiven Erstellung sicherer Software. ESDL vermeidet die typischen Fall- stricke der C-Programmierung, erleichtert die Wiederverwendung von Software, vereinfacht die Wartung und unterstützt Variantenverwal- tung. Mit ESDL können Entwickler sich wieder mehr auf ihre Kernaufgaben konzentrieren und müssen nicht mehr um die Unzulänglich- keiten von C herum programmieren. C-Code mithilfe von Codegenerierung Die effiziente Verwendung von ESDL wird durch ETAS ASCET-DEVELOPER 7, einer Eclipse-basierten integrierten Entwicklungs- umgebung (IDE) und einem C-Codegenerator, ermöglicht. Die IDE bietet moderne Bearbeitungsfeatures wie Sprachtemplates, Codevorschläge und Quick Fixes für Probleme. Dadurch ist ESDL auch für Anfänger leicht zu lernen. ASCET- DEVELOPER 7 prüft kontinuierlich auf ESDL- Programmierfehler, berechnet Qualitätsmetri- ken und weist auf Best Practices hin. Entwick- ler erhalten Feedback „on-the-fly“ bereits bei der Bearbeitung. Zwischen der Eingabe eines Codierfehlers und seinem Auffinden vergeht praktisch keine Zeit. Der C-Codegenerator übersetzt ESDL in MISRA- konformen C-Code. ASCET-DEVELOPER 7 fügt automatisch defensive Codeüberprüfungen an den Stellen ein, an denen sie für die Laufzeitsi- cherheit erforderlich sind. Damit müssen diese nicht von Hand ergänzt und verwaltet werden. Der generierte C-Code lässt sich leicht in einen bestehenden C-basierten Entwicklungsprozess integrieren. Programmiersprache gegen mögliche Fehler absichern ESDL deckt viele Aspekte ab, die bereits in den C-Programmierrichtlinien enthalten sind. Zu- dem enthält das Design von ESDL Features, die es einfach machen, die Sprachanforderungen in Standards wie ISO 26262 und IEC 61508 zu erfüllen. Durch diese Konzepte in ESDL kann ASCET-DEVELOPER 7 mehr Fehlerfälle wäh- rend der Bearbeitung überprüfen, als es in der klassischen C-Programmierung möglich ist. Die ESDL-Syntax ist der von C sehr ähnlich, weshalb die Entwickler sich damit sofort vertraut fühlen. ESDL vermeidet jedoch die gefährlichen C-Features, die Richtlinien nor- malerweise einschränken oder verbieten. In ESDL gibt es keine optionalen Klammern, keine Anweisungen in Ausdrücken, keine Zu- weisung an Schleifenvariablen, kein automati- sches switch/case-Durchfallen, keine implizite Safety und Security im Code ESDL als Basis für sichere Software Von Dr. Darren Buttle, Senior-Produktmanager ASCET, ETAS GmbH Für Embedded Software ist die Programmiersprache C das Maß der Dinge. Aber die Erstellung von sicherem C-Code ist nicht einfach. Doch je autonomer die Fahrzeuge werden, umso größer werden die Anforderungen an die Integrität der Soft- ware. Darum hat ETAS die Embedded Software Development Language (ESDL) entwickelt. Damit schaffen es Entwickler, mehr Software schneller zu entwickeln, die unter anderem die Standards ISO 26262 und IEC 61508 erfüllt. IT und Automotive Bilder: © ETAS

RkJQdWJsaXNoZXIy MjUzMzQ=