Skip to main content
main-content

Über dieses Buch

Die Zahl der Embedded Systeme, die uns im Alltag begegnen, wächst stetig. Gleichzeitig nimmt die Komplexität der Software immer weiter zu. In vielen Bereichen erhält Multicore Einzug, was die Komplexität nochmals erhöht. Ohne korrektes zeitliches Verhalten („Timing“) gibt es keine sichere und zuverlässige Embedded Software. Dieses Buch hilft gleichermaßen das Timing schon früh im Entwicklungsprozess zu berücksichtigen und akute Timingprobleme zu lösen. Auch der Aspekt der Laufzeitabsicherung kommt nicht zu kurz.Auch wenn die meisten Praxisbeispiele aus dem Automobilbereich kommen, ist der allergrößte Teile des Buches unmittelbar übertragbar auf andere Bereiche.

Inhaltsverzeichnis

Frontmatter

Kapitel 1. Allgemeine Grundlagen

Zusammenfassung
Grundlegendes Wissen in den Bereichen Softwareentwicklung und Betriebssysteme sind Voraussetzung für Analyse und Optimierung des Timings von Embedded Software. Das Kapitel „Allgemeine Grundlagen“ verfolgt zwei Ziele. Zum einen sollen wichtige Grundlagen vermittelt bzw. zusammengefasst werden. Zum anderen wird schon an dieser Stelle bei den einzelnen Themen ein Bezug zum Timing hergestellt. Daher richtet sich das Kapitel nicht ausschlieich an diejenigen, die Grundlagen erlernen oder auffrischen mchten. Auch erfahrenen Softwareentwicklern hilft die neue Facette „Timing“, die sich bei Altbekanntem zeigt.
Peter Gliwa

Kapitel 2. Mikroprozessortechnik Grundlagen

Zusammenfassung
Der Mikroprozessor - oft wird auch im Deutschen der englische Begriff „Microcontroller“ oder nur „Controller“ verwendet - ist die Hardwareeinheit, auf der Embedded Software zur Ausführung kommt. Ohne das Verständnis des prinzipiellen Aufbaus von Mikroprozessoren ist eine Optimierung des Timings von Embedded Software kaum möglich.
Dieses Kapitel vermittelt die Grundlagen der Mikroprozessortechnik mit Blick auf die fr das Timing relevanten Aspekte. Zusammen mit dem Datenblatt des jeweils verwendeten Mikroprozessors bildet es die notwendige Grundlage für die Entwicklung effizienter Embedded Software. An vielen Stellen werden allgemeine Grundlagen durch konkrete Beispiele verdeutlicht. Die fr die Beispiele verwendete Spanne an Mikroprozessoren reicht dabei von kleinen 8 Bit Controllern bis 32 Bit Prozessoren, von Single- bis Multicore.
Peter Gliwa

Kapitel 3. Betriebssysteme

Zusammenfassung
Die wesentliche Aufgabe eines Embedded Betriebssystems, in einem Satz zusammengefasst, ist die Organisation der Ausführung der Software eines Embedded Systems. Damit ist das Aufgabenfeld wesentlich enger gefasst als bei Desktop Betriebssystemen wie Microsoft Windows oder macOS. Aus Sicht solcher Betriebssysteme stellt ein Embedded Betriebssystem, ein RTOS (Real Time Operating System), so etwas wie einen einfachen Kernel dar.
Dieses Kapitel stellt verschiedene Betriebssysteme vor. Es beschränkt sich dabei auf das Scheduling, also die Regeln, nach denen verschiedene um die Rechenzeit konkurrierende (Anwendungs-) Codeanteile organisiert werden und Rechenzeit zugewiesen bekommen. Im Fokus steht die Frage: „wie konfiguriere und verwende ich mein Betriebssystem, um eine mglichst ressourcenschonende Software zu entwickeln, insbesondere mit Blick auf die Laufzeit, das Timing?“
Peter Gliwa

Kapitel 4. Timingtheorie

Zusammenfassung
Der Begriff „Timingtheorie“ mutet vielleicht etwas akademischer an, als das Thema in diesem Kapitel tatslich behandelt wird. Im Vordergrund stehen die Grundlagen und die Erklärung der Begriffe, die für die Praxis relevant sind. Timingparameter wie die Nettolauzeit (Core Execution Time, CET), die Antwortzeit (Response Time, RT) und viele weitere werden im Detail erlert und es wird der Bezug zur Praxis hergestellt. Einen besonderen Raum nimmt das Thema „CPU Last“ ein, denn bei deren Definition, Berechnung und Verwendung gibt es einige Fallstricke.
Peter Gliwa

Kapitel 5. Timinganalysetechniken

Zusammenfassung
Bei der Analyse des Timings von Embedded Software stehen sehr unterschiedliche Fragestellungen im Raum. Meist hängen sie davon ab, zu welchem Zeitpunkt im Projektverlauf das Thema Timing betrachtet wird. Sollen in einer sehr frühen Projektphase - noch bevor überhaupt die Hardware verfügbar ist - verschiedene Betriebssystemkonfigurationen und Kommunikationskonzepte miteinander verglichen werden? Oder läuft eine erste Version der Software, die aber noch an ungeklärten sporadischen Fehlern leidet, die es zu untersuchen gilt? Oder geht es darum, in einer späten Phase des Projektes in automatisierten (Regression-) Tests sicherzustellen, dass das Timing stabil bleibt und nicht für Überraschungen sorgt? Vielleicht ist die Entwicklung abgeschlossen und das Timing soll von einer Analysekomponente im regulären Betrieb des (Serien-) Produktes überwacht werden?
Für alle diese Anwendungsfälle stehen zum Teil sehr unterschiedliche Timinganalysetechniken zur Verfügung. Das Wissen um deren Möglichkeiten, deren Vorteile und Nachteile, sowie die notwendigen Voraussetzungen für deren Einsatz ist essentiell für eine effiziente Timinganalyse. „Effizient“ heißt hier, kostengünstig und mit möglichst wenig Zeitaufwand zu einem korrekten Timing zu gelangen, ohne das sichere Embedded Systeme, die gleichzeitig eine hohe Verfügbarkeit bieten, nicht denkbar sind.
Dieses Kapitel stellt die verschiedenen Timinganalysetechniken vor, die später im Kap. 9 „Methodik im Entwicklungsprozess“ in den verschiedenen Entwicklungsphasen Anwendung finden.
Die Beschreibung jeder Timinganalysetechnik wird abgerundet durch ein kurzes Interview mit einem erfahrenen Experten für die jeweilige Technik.
Peter Gliwa

Kapitel 6. Praxisbeispiele Timingprobleme

Zusammenfassung
Bis zu dieser Stelle im Buch wurden viele Grundlagen sowie darauf aufbauendes Wissen vermittelt. Nun soll das Gelernte in der Praxis Anwendung finden. Die folgenden Berichte über Timingprobleme, deren Analyse sowie deren Lösung beschreiben allesamt Einsätze in realen Projekten. Dabei wird schnell deutlich, wie unterschiedlich die Ursachen von Timingproblemen sein können und auch wie unterschiedlich sich die Probleme bemerkbar machen. Einen allgemeingültigen „Ablaufplan zur Lösung von Timingproblemen in Abhängigkeit von deren Symptomen“ gibt es leider nicht. Hier helfen Wissen und Erfahrung - und bestimmt in dem einen oder anderen Fall die Kenntnis der folgenden Praxisbeispiele.
Peter Gliwa

Kapitel 7. Timing bei Multicore, Manycore, Multi-ECU

Zusammenfassung
Dass es nicht möglich ist, eine Schwangerschaft auf einen Monat zu verkürzen, indem man neun Frauen mit der Aufgabe betraut, ist gemeinhin bekannt. Dennoch wird - im übertragenen Sinne - genau das immer wieder bei Multicoreprojekten versucht.
Der Aufwand für den Umstieg von Singlecore auf Multicore bei Embedded Projekten wird praktisch immer drastisch unterschätzt. Dabei sind die meisten Prozessoren, mit denen wir im Alltag zu tun haben, Multicoreprozessoren. Kein Smartphone, kein Tablet, kein Laptop und kein Desktop PC hat heute noch einen Singlecoreprozessor. Man sollte meinen, dass die Entwicklung von Multicoresoftware die Regel und nicht die Ausnahme ist und dementsprechend reibungslos über die Bühne gehen sollte.
Der wesentliche Grund dafür, dass Multicore in den meisten Embedded Projekten erhebliche Timingprobleme verursacht, liegt in den unterschiedlichen Arten von paralleler Ausführung begründet. Parallele Ausführung kann auf der Instruktionsebene, auf Funktionsebene oder auf Anwendungsebene erfolgen. Dieses Kapitel wird die Grundlagen zum Thema Multicore vermitteln und in dem Zusammenhang die unterschiedlichen Arten paralleler Ausführung beschreiben.
Peter Gliwa

Kapitel 8. Laufzeitoptimierung

Zusammenfassung
Bei der Optimierung des Timings folgt man strikt dem „top-down“ Ansatz. Das heißt, dass zunächst die Schedulingebene analysiert und optimiert wird und dann erst die Codeebene. Würde man direkt auf der Codeebene starten, bestünde die Gefahr, dass viel Zeit mit Codeoptimierungen verbracht wird, welche die Laufzeit an einer Stelle verbessern, die überhaupt nicht kritisch ist.
In gewisser Weise orthogonal zu den angesprochenen Ebenen ist die Optimierung der Speichernutzung.
Dieses Kapitel vermittelt viel Fachwissen, das einerseits in der Konzeptionsphase von Embedded Projekten Anwendung finden und andererseits bei akuten Timingproblemen äußerst hilfreich sein kann. Ein „Fahrplan der Laufzeitoptimierung“ in Form einen Flussdiagramms rundet das Kapitel ab.
Peter Gliwa

Kapitel 9. Methodik im Entwicklungsprozess

Zusammenfassung
Dieses Kapitel skizziert, bei dem Timingaspekte in allen Phasen berücksichtigt werden. Dabei werden Schnittstellen eine wichtige Rolle spielen um zu verhindern, dass die einzelnen Phasen isoliert stehen oder gar dieselben Informationen doppelt angelegt oder gepflegt werden müssen.
Peter Gliwa

Kapitel 10. AUTOSAR

Zusammenfassung
AUTOSAR ist die Abkrzung von AUTomotive Open System ARchitecture. Das Konsortium aus Automobilherstellern, Zulieferern, Toolherstellern sowie Entwicklungsdienstleistern standardisiert Softwarearchitektur, Schnittstellen und die Entwicklungsmethodik für die Softwareentwicklung bei Steuergeräten für Kraftfahrzeuge.
Das Thema Timing spielt bei AUTOSAR an verschiedenen Stellen eine Rolle. Dieses Kapitel gibt einen Einblick in die AUTOSAR Classical Platform (CP), die AUTOSAR Adaptive Platform (AP), die AUTOSAR Timing Extensions (kurz TIMEX), das AUTOSAR Run-Time Interface (ARTI) sowie den Technischen Bericht „Timing Analysis“.
Peter Gliwa

Kapitel 11. Safety, ISO 26262

Zusammenfassung
Der Deutsche Begriff „Sicherheit“ ist im Zusammenhang mit Embedded Software nicht eindeutig. Wird er doch für die Übersetzung des Englischen Begriffs „Safety“ genauso herangezogen wie für das Englische Wort „Security“. In diesem Kapitel soll es um Sicherheit im Sinne von „Safety“ gehen, also um die Eindämmung der Gefahr, die von einem Embedded System ausgeht.
Das Timing ist bei der Embedded Software nur ein Aspekt von vielen. Doch ohne ein stabiles und abgesichertes Timing kann es keine sichere Embedded Software geben. Neben technischen Themen behandelt das folgende Kapitel auch rechtliche Aspekte. Manager und Projektleiter sehen sich der Frage gegenüber, was alles an (Timing-) Absicherung gemacht werden muss, um rechtlich gut aufgestellt zu sein.
Peter Gliwa

Kapitel 12. Ausblick

Zusammenfassung
Welche Rolle wird das Timing bei der Softwareentwicklung in den nächsten Jahren spielen? Welche die Timinganalyse?
Peter Gliwa

Backmatter

Weitere Informationen

Premium Partner

    Bildnachweise