-
Die vorliegende Erfindung betrifft Steuergeräte für Fahrzeuge, die beispielsweise Fahrassistenzsysteme oder Systeme für das zumindest teilweise automatisierte Fahren steuern können.
-
Stand der Technik
-
Fahrassistenzsysteme und Systeme für das zumindest teilweise automatisierte Fahren verwenden ein oder mehrere Steuergeräte, um die Beobachtungen der Umgebung und/oder des Zustandes des Fahrzeugs in mehreren Schritten zu verarbeiten, bis schließlich konkrete Ansteuersignale für die Aktorik des Fahrzeugs entstehen. Beispielsweise kann zunächst ein gewünschtes Verhalten des Fahrzeugs ermittelt werden. Dieses Verhalten kann in eine gewünschte Trajektorie übersetzt werden. Zum Abfahren dieser Trajektorie können schließlich die Ansteuersignale ermittelt und an die Aktorik weitergegeben werden. Derartige Steuergeräte sind beispielsweise in der
WO 2021/089 307 A1 offenbart.
-
Offenbarung der Erfindung
-
Im Rahmen der Erfindung wurde ein Steuergerät für ein Fahrzeug entwickelt. Dieses Steuergerät weist einen Programmspeicher für maschinenlesbare Anweisungen eines Steuerprogramms sowie einen Datenspeicher für Datenstrukturen des Steuerprogramms auf. Hierbei ist die Unterteilung in Programmspeicher einerseits und Datenspeicher andererseits zum besseren Verständnis funktionell zu verstehen und nicht notwendigerweise physisch. Die maschinenlesbaren Anweisungen und die Datenstrukturen können durchaus in einem gemeinsamen Adressraum auf einem physischen Speicherbaustein residieren.
-
Das Steuerprogramm ist in Unterprogramme unterteilt, die jeweils auf Instanzen einer Datenstruktur aus Datenstrukturelementen zugreifen. Die Unterprogramme können je nach verwendeter Programmiersprache auch beispielsweise Funktionen, Methoden oder Prozeduren heißen. Die Datenstrukturelemente können beispielsweise Variablen beliebiger Typen sein.
-
Unterprogramme einer ersten Gattung verwenden eine erste Teilmenge der Datenstrukturelemente der Datenstruktur. Unterprogramme einer zweiten Gattung verwenden zusätzlich eine zweite Teilmenge von Datenstrukturelementen der Datenstruktur.
-
Das bedeutet, dass die Datenstruktur als Ganzes so abstrahiert ist, dass sie sowohl von den Unterprogrammen der ersten Gattung als auch von den Unterprogrammen der zweiten Gattung genutzt werden kann. Gerade bei Steuerprogrammen für Fahrassistenz-Funktionen und zumindest teilweise automatisiertes Fahren bewirkt eine einheitliche Abstraktion beispielsweise eines durchführbaren Verhaltens des Fahrzeugs, dass in transparenter Weise zwischen verschiedenen Verhalten abgewogen und/oder arbitriert werden kann. Für die bestmögliche Implementierung bestimmter Funktionen kann es sogar zielführend sein, mehrere verschiedene Verhalten miteinander zu mischen, zu fusionieren oder in sonstiger Weise zu aggregieren.
-
Somit ist in einer besonders vorteilhaften Ausgestaltung das Steuergerät dazu ausgebildet, mindestens ein potentielles Verhalten des Fahrzeugs zu konstruieren, zu evaluieren, vorzuschlagen und/oder auszuführen. Dabei ist die Datenstruktur dazu ausgebildet, dieses Verhalten zu charakterisieren.
-
Die Kehrseite der Abstraktion ist ein erhöhter Speicherverbrauch. Wenn mehrere Unterprogramme die gleiche Datenstruktur nutzen, muss diese Datenstruktur Zugang zur Vereinigungsmenge der Datenstrukturelemente bieten, die von all diesen Unterprogrammen gelesen und/oder geschrieben werden sollen. Wird also beispielsweise eine Instanz der Datenstruktur angelegt und nur von Unterprogrammen der ersten Gattung genutzt, bleibt die zweite Teilmenge der Datenstrukturelemente ungenutzt, belegt jedoch trotzdem Speicherplatz. Auf Steuergeräten sind Speicherplatz und andere Hardwareressourcen jedoch knapp, da diese Ressourcen aus Kostengründen immer nur so groß dimensioniert werden können, wie es zur Bewältigung der Aufgabe des Steuergeräts zwingend erforderlich ist. Noch dazu muss in Steuergeräten qualitativ besonders hochwertiger Speicher verwendet werden, bei dem es sehr unwahrscheinlich ist, dass durch das „Umkippen“ einzelner Bits Daten verfälscht werden. Ein Weiterrechnen mit derart verfälschten Daten könnte völlig unbrauchbare Ergebnisse liefern und eine unvorhersehbare Reaktion des mit dem Steuergerät angesteuerten fahrdynamischen Systems hervorrufen.
-
Um den Speicherverbrauch durch die Abstraktion zu vermindern, ist daher der Datenspeicher einen ersten Bereich zur Aufnahme einer vorgegebenen Anzahl von Instanzen einer ersten Sub-Datenstruktur und einen zweiten Bereich zur Aufnahme einer vorgegebenen Instanzen einer zweiten Sub-Datenstruktur aufgeteilt. Auch diese Unterteilung ist funktionell zu sehen und nicht notwendigerweise physisch. Die erste Sub-Datenstruktur enthält Datenstrukturelemente der ersten Teilmenge, die von den Unterprogrammen der ersten und zweiten Gattung gleichermaßen benötigt werden. Die zweite Sub-Datenstruktur enthält Datenstrukturelemente der zweiten Teilmenge, die nur von den Unterprogrammen der zweiten Gattung benötigt werden.
-
Dementsprechend sind sowohl die Unterprogramme der ersten Gattung als auch die Unterprogramme der zweiten Gattung dazu ausgebildet, auf Instanzen der ersten Sub-Datenstruktur zuzugreifen. Die Unterprogramme der zweiten Gattung sind zusätzlich dazu ausgebildet, einer Instanz der ersten Sub-Datenstruktur einen Verweis auf eine Instanz der zweiten Sub-Datenstruktur zu entnehmen und auf diese Instanz im zweiten Bereich des Datenspeichers zuzugreifen.
-
Es kann also insbesondere beispielsweise der zweite Bereich des Datenspeichers weniger Instanzen der zweiten Sub-Datenstruktur enthalten als der erste Bereich des Datenspeichers Instanzen der ersten Sub-Datenstruktur enthält. Auf diese Weise kann auch dann Speicherverbrauch eingespart werden, wenn Speicherplatz nicht erst bei Erstellung einer neuen Instanz der ersten oder zweiten Sub-Datenstruktur dynamisch angefordert wird, sondern von vornherein fest alloziert ist.
-
Gerade für Steuergeräte mit sicherheitsrelevanten Aufgaben ist es vorteilhaft, wenn die Speicherplätze, an denen die Instanzen der ersten Sub-Datenstruktur und die Instanzen der zweiten Sub-Datenstruktur abgelegt sind, statisch festgelegt sind. Eine statische Speicherverwaltung reduziert das Potential für Fehler, die beispielsweise auftreten können, wenn der dynamischen Anforderung von Speicher aus irgendeinem Grund nicht stattgegeben wird. Zugleich ist sichergestellt, dass der insgesamt für alle Instanzen der jeweiligen Sub-Datenstruktur benötigte Speicher in einem Stück alloziert wird und nicht etwa in mehreren Teilen. Das Zusammensetzen aus solchen mehreren Teilen kostet Zugriffszeit und ist schafft wiederum Fehlerquellen. Schließlich ist die statische Speicherverwaltung auch deterministisch, d.h., jedes Datum wird bei jedem Programmlauf immer an der gleichen Stelle abgelegt. Dies erleichtert die Ursachenforschung bei eventuell auftretenden Fehlern. Beispielsweise ist die Wirkung von Pufferüberläufen, bei denen über die Grenzen des zugewiesenen Speichers hinaus beliebige andere Speicherinhalte überschrieben werden, abhängig von der konkreten Anordnung der Inhalte im Speicher. Wenn diese Anordnung bei jedem Programmlauf wechselt, treten Funktionsstörungen des Steuerprogramms sporadisch und in unterschiedlicher Ausprägung auf.
-
In einer weiteren besonders vorteilhaften Ausgestaltung umfasst die zweite Sub-Datenstruktur Messdaten aus Beobachtungen des Fahrzeugumfelds. Zum einen tendieren gerade diese Messdaten dazu, besonders viel Speicherplatz zu beanspruchen. Zum anderen werden diese Messdaten zumindest in ihrer maximalen Detailtiefe nicht zur Durchführung jedes möglicherweise auszuführenden Verhaltens des Fahrzeugs benötigt, sondern nur zur Durchführung solcher Verhalten, bei denen eine auf Grund dieser Messdaten geplante Trajektorie abzufahren ist. Wenn aber beispielsweise lediglich eine Information über den Sicherheitsabstand oder eine Warnung vor einer kritischen Situation an den Fahrer des Fahrzeugs auszugeben ist, sind hierfür viel weniger oder gar keine Messdaten aus dem Fahrzeugumfeld erforderlich. Wenn lediglich ein solches Verhalten ansteht, kann der Speicherplatz für die umfangreichen Messdaten eingespart werden.
-
Ein Beispiel für eine Sub-Datenstruktur mit Messdaten, die viel Speicherplatz benötigt, ist der sogenannte „Korridor“, der die Schnittstelle der Situationsanalyse bzw. Verhaltensgenerierung zu einem Detail-Trajektorienplaner (Vehicle Motion Control, VMC) darstellt. Dieser Speicherbedarf multipliziert sich mit der Anzahl der im Gesamtsystem verfügbaren unterschiedlichen Verhalten. Daher kann insgesamt viel Speicherplatz eingespart werden, wenn ein „Korridor“ nur für Verhalten mitgespeichert wird, zu deren Ausführung er zwingend benötigt wird.
-
Somit ist das Steuergerät vorteilhaft zusätzlich dazu ausgebildet, Messdaten aus der zweiten Sub-Datenstruktur einem Detail-Trajektorienplaner zur Umsetzung des Verhaltens des Fahrzeugs in eine Detail-Trajektorie zuzuführen.
-
Weiterhin ist vorteilhaft mindestens ein Verhalten, dass keine Auswirkung auf die Fahrdynamik des Fahrzeugs hat, durch in der ersten Sub-Datenstruktur enthaltene Datenstrukturelemente charakterisiert.
-
Der in Assoziation mit einer Instanz der ersten Sub-Datenstruktur (beispielsweise in dieser ersten Sub-Datenstruktur) gespeicherte Verweis auf die Instanz der zweiten Sub-Datenstruktur kann beispielsweise eine fortlaufende Nummer der Instanz der zweiten Sub-Datenstruktur in der Liste der im zweiten Bereich des Datenspeichers aufbewahrten Instanzen beinhalten. Ist dort beispielsweise Platz für vier Instanzen, kann diese fortlaufende Nummer Werte zwischen 1 und 4 oder zwischen 0 und 3 annehmen.
-
In einer besonders vorteilhaften Ausgestaltung umfasst jedoch der Verweis auf die Instanz der zweiten Sub-Datenstruktur ein in dieser Instanz enthaltenes, für praktische Zwecke als global eindeutig annehmbares Identifikationsmerk, GUID (Globally Unique Identifier). Als GUID kann beispielsweise ein Hashwert von 128 Bit Länge oder mehr für eine Eingabe, die zumindest teilweise vom (Pseudo-)Zufall und/oder von der aktuellen Systemzeit abhängt, verwendet werden. Auf diese Weise ist in besonderem Maße sichergestellt, dass nur diejenige Instanz der zweiten Sub-Datenstruktur herangezogen wird, die wirklich zu einer vorgegebenen Instanz der ersten Sub-Datenstruktur gehört. Auch bei einer statischen Speicherverwaltung, die die verfügbare Anzahl von Speicherplätzen für Instanzen der ersten bzw. zweiten Sub-Datenstruktur von Anfang an festlegt, müssen diese Speicherplätze nicht für alle Zeit mit denselben Instanzen belegt sein. So können beispielsweise auch alte Instanzen gelöscht und neue dafür in den Datenspeicher aufgenommen werden. Es müssen im ersten bzw. zweiten Speicherbereich jeweils nur mindestens so viele Speicherplätze für Instanzen vorgehalten werden wie Instanzen tatsächlich für den gleichzeitigen Zugriff benötigt werden.
-
In einer weiteren vorteilhaften Ausgestaltung ist das Steuerprogramm dazu ausgebildet, in Antwort darauf, dass keine Instanz der ersten Sub-Datenstruktur auf eine Instanz der zweiten Sub-Datenstruktur verweist, diese Instanz der zweiten Sub-Datenstruktur zu löschen und/oder zum Überschreiben durch eine neue Instanz der zweiten Sub-Datenstruktur freizugeben. Auf diese Weise kann ein jedes Unterprogramm durch Löschen nicht mehr benötigter Instanzen der ersten Sub-Datenstruktur auch gleich nicht mehr benötigte Instanzen der zweiten Sub-Datenstruktur mit entfernen. Dies funktioniert sogar dann, wenn ein und dieselbe Instanz der zweiten Sub-Datenstruktur von mehreren Instanzen der ersten Sub-Datenstruktur referenziert wird, weil etwa die entsprechenden Messdaten („Korridor“) für mehrere verschiedene Verhalten des Fahrzeugs relevant sind. Die Instanz der zweiten Sub-Datenstruktur verschwindet erst, wenn kein Verweis hierauf mehr existiert.
-
In einer weiteren vorteilhaften Ausgestaltung ist das Steuerprogramm dazu ausgebildet, den Zugriff verschiedener Unterprogramme auf die im zweiten Bereich des Datenspeichers verfügbaren Plätze für Instanzen der zweiten Sub-Datenstruktur nach der Wichtigkeit dieser Unterprogramme für die Fahrsicherheit des Fahrzeugs zu priorisieren. Abhängig von der Ausstattung des konkreten Exemplars des Steuergeräts mit Datenspeicher können im ersten und zweiten Teil des Datenspeichers mehr oder weniger Instanzen der ersten bzw. zweiten Sub-Datenstruktur gleichzeitig abgelegt werden. Wenn viel Speicherplatz zur Verfügung steht, können auch Instanzen für Verhalten gespeichert werden, die dem Komfort dienen. Wenn der Speicherplatz sehr knapp und von den für die Fahrsicherheit relevanten Unterprogramme benötigten Instanzen der ersten bzw. zweiten Sub-Datenstruktur schon ausgereizt ist, kann dies zur Folge haben, dass lediglich dem Komfort dienende Unterprogramme vorübergehend nicht zur Verfügung stehen.
-
Die Erfindung stellt auch ein Verfahren zur Herstellung eines Steuergeräts bereit.
-
Im Rahmen dieses Verfahrens wird eine Hardwareplattform mit mindestens einem Prozessor für die Ausführung des Steuerprogramms, einem Programmspeicher und einem Datenspeicher bereitgestellt. Weiterhin wird ein Steuerprogramm bereitgestellt, das Anzahlen der bereitzustellenden Plätze für Instanzen der ersten Sub-Datenstruktur und der zweiten Sub-Datenstruktur als freie Parameter N, M aufweist. Diese Parameter N, M können beispielsweise als Größenangaben entsprechender fixer Arrays in das Steuerprogramm eingebunden sein.
-
Anhand eines Bedarfs des Steuerprogramms für Instanzen der ersten Sub-Datenstruktur und der zweiten Sub-Datenstruktur einerseits und der verfügbaren Größe des Datenspeichers andererseits werden jeweils Soll-Anzahlen der Instanzen der ersten Sub-Datenstruktur und der zweiten Sub-Datenstruktur festgelegt. Dieser Bedarf kann sich insbesondere beispielsweise danach richten, wie viele verschiedene mögliche Verhalten des Fahrzeugs gleichzeitig als Kandidaten-Verhalten für eine Ausführung zur Verfügung stehen müssen. Der Bedarf kann sich auch beispielsweise danach richten, welche Unterprogramme dem Nutzer des Steuergeräts überhaupt zur Verfügung gestellt werden sollen. So kann es beispielsweise neben einer Basisausstattung von Unterprogrammen auch Unterprogramme geben, die zunächst kostenpflichtig zu erwerben sind. Auch kann es beispielsweise ein Nutzer des Steuergeräts vorziehen, an Stelle eines bestimmten Unterprogramms, das Zugriff auf eine Instanz einer zweiten Sub-Datenstruktur benötigen würde, ein Unterprogramm eines Drittanbieters zu nutzen, das diesen Zugriff nicht benötigt. Der Speicherplatz für diese Instanz kann dann eingespart werden.
-
Die freien Parameter des Steuerprogramms werden auf die Soll-Anzahlen der Instanzen festgelegt. Das so parametrierte Steuerprogramm wird in den Programmspeicher der Hardwareplattform geladen. Dies kann beispielsweise beinhalten, das Steuerprogramm mit den festgelegten Parametern zu kompilieren und den durch dieses Kompilieren entstandenen Objektcode auf die Hardwareplattform zu laden.
-
In einer vorteilhaften Ausgestaltung werden zusätzlich in dem Steuerprogramm Zeiger auf die einzelnen Instanzen der ersten Sub-Datenstruktur und der zweiten Sub-Datenstruktur statisch gesetzt. Hierzu können beispielsweise ein erstes Array mit den Instanzen der ersten Sub-Datenstruktur und ein zweites Array mit den Instanzen der zweiten Sub-Datenstruktur angelegt werden. Zur Laufzeit des Steuerprogramms ist es dann nicht mehr erforderlich, Speicheradressen, an denen die einzelnen Instanzen liegen, für jeden Zugriff neu zu berechnen.
-
In einer weiteren vorteilhaften Ausgestaltung wird ein Speicherabbild, das sowohl die maschinenlesbaren Anweisungen des Steuerprogramms als auch das Speicherlayout des Datenspeichers beinhaltet, auf die Hardwareplattform geladen. Auf diese Weise kann das Speicherlayout maximal deterministisch vorgegeben werden. Wie zuvor erläutert, ist es insbesondere für eine eventuelle Fehlersuche sehr vorteilhaft, wenn bei jedem Programmlauf das gleiche Speicherlayout vorliegt.
-
Das Steuergerät und das Verfahren können insbesondere ganz oder teilweise computerimplementiert sein. Daher bezieht sich die Erfindung auch auf ein Computerprogramm mit maschinenlesbaren Anweisungen, die, wenn sie auf einem oder mehreren Computern ausgeführt werden, den oder die Computer zu dem beschriebenen Steuergerät aufwerten, und/oder dazu veranlassen, das beschriebene Verfahren auszuführen. In diesem Sinne sind auch Steuergeräte für Fahrzeuge und Embedded-Systeme für technische Geräte, die ebenfalls in der Lage sind, maschinenlesbare Anweisungen auszuführen, als Computer anzusehen.
-
Ebenso bezieht sich die Erfindung auch auf einen maschinenlesbaren Datenträger und/oder auf ein Downloadprodukt mit dem Computerprogramm. Ein Downloadprodukt ist ein über ein Datennetzwerk übertragbares, d.h. von einem Benutzer des Datennetzwerks downloadbares, digitales Produkt, das beispielsweise in einem Online-Shop zum sofortigen Download feilgeboten werden kann.
-
Weiterhin kann ein Computer mit dem Computerprogramm, mit dem maschinenlesbaren Datenträger bzw. mit dem Downloadprodukt ausgerüstet sein.
-
Weitere, die Erfindung verbessernde Maßnahmen werden nachstehend gemeinsam mit der Beschreibung der bevorzugten Ausführungsbeispiele der Erfindung anhand von Figuren näher dargestellt.
-
Figurenliste
-
Es zeigt:
- 1 Ausführungsbeispiel des Steuergeräts 1;
- 2 Ausführungsbeispiel des Verfahrens 100 zur Herstellung eines Steuergeräts 1.
-
1 zeigt schematisch den Aufbau eines Ausführungsbeispiels des Steuergeräts 1. Das Steuergerät 1 hat einen Programmspeicher 2 für maschinenlesbare Anweisungen 3 eines Steuerprogramms 6 sowie einen Datenspeicher 4 für Datenstrukturen 5, auf die bei der Ausführung des Steuerprogramms 6 lesend und/oder schreibend zugegriffen wird. Weiterhin ist mindestens ein Prozessor für die Ausführung der maschinenlesbaren Anweisungen 3 vorhanden, der in 1 der Übersichtlichkeit halber nicht eingezeichnet ist.
-
Das Steuerprogramm 6 ist in Unterprogramme 6a-6f unterteilt, die zwei Gattungen 61 und 62 angehören. In dem in 1 gezeigten Beispiel gehören die Unterprogramme 6a-6c zur ersten Gattung 61, und die Unterprogramme 6d-6f gehören zur zweiten Gattung 62.
-
Die Datenstruktur 5 mit ihren Datenstrukturelementen 5a-5h ist universell von allen Unterprogrammen 6a-6f verwendbar. Die Unterprogramme 6a-6f benötigen jedoch nicht alle die komplette Datenstruktur 5. Die Unterprogramme 6a-6c der ersten Gattung 61 benötigen nur eine erste Teilmenge 51 von Datenstrukturelementen 5a-5c. Nur die Unterprogramme 6d-6f der zweiten Gattung 62 benötigen auch eine zweite Teilmenge 52 von Datenstrukturelementen 5d-5h. Somit muss eine Instanz der Datenstruktur 5, die nur von Unterprogrammen 6a-6c der ersten Gattung 61 benötigt wird, auch nur die Datenstrukturelemente 5a-6c beinhalten. Eine zweite Instanz der Datenstruktur 5, die auch von Unterprogrammen 6d-6f der zweiten Gattung 62 benötigt wird, benötigt hingegen alle Datenstrukturelemente 5a-5h. Für die erste Instanz kann also der Speicherplatz für die Datenstrukturelemente 5d-5h eingespart werden.
-
Zu diesem Zweck weist der Datenspeicher 4 einen ersten Bereich 41 zur Aufnahme einer vorgegebenen Anzahl von Instanzen einer ersten Sub-Datenstruktur 5* mit den Datenstrukturelementen 5a-5c sowie einen zweiten Bereich 42 zur Aufnahme einer vorgegebenen Anzahl von Instanzen einer zweiten Sub-Datenstruktur 5** mit den Datenstrukturelementen 5d-5h auf.
-
Alle Unterprogramme 6a-6f sind dazu ausgebildet, auf Instanzen der ersten Sub-Datenstruktur 5* zuzugreifen. Es sind jedoch nur die Unterprogramme 6d-6f der zweiten Gattung 62 dazu ausgebildet, sich ausgehend von einer Instanz der ersten Datenstruktur 5* auch Zugang zu einer zugehörigen Instanz der zweiten Datenstruktur 5** zu verschaffen, um mit den darin enthaltenen Datenstrukturelementen 5d-5h die Instanz der Datenstruktur 5 zu vervollständigen.
-
Zu diesem Zweck sind die Unterprogramme 6d-6f der zweiten Gattung 62 dazu ausgebildet, einer Instanz der ersten Sub-Datenstruktur 5* einen Verweis 7 auf eine zugehörige Instanz der zweiten Sub-Datenstruktur 5** zu entnehmen und auf diese Instanz im zweiten Bereich 42 des Datenspeichers 4 zuzugreifen. Für die erwähnte erste Instanz der Datenstruktur 5, die nur von den Unterprogrammen 6a-6c der ersten Gattung 61 benötigt wird, kann der Verweis 7 in der ersten Sub-Datenstruktur 5* auf Null oder einen anderen Wert gesetzt werden, der das Fehlen einer zugehörigen zweiten Sub-Datenstruktur 5** anzeigt.
-
In dem in 1 gezeigten Beispiel wird Speicherplatz für eine Instanz der zweiten Sub-Datenstruktur 5** eingespart. Gerade wenn diese zweite Sub-Datenstruktur 5** hochaufgelöste Messdaten beinhaltet, kann eine Instanz hiervon ein wesentlich größeres Volumen aufweisen als eine Instanz der ersten Sub-Datenstruktur 5*.
-
Die Unterprogramme 6a-6c der ersten Gattung 61 können beispielsweise Unterprogramme sein, die lediglich eine Warnung oder eine Information an den Fahrer ausgeben. Diese Unterprogramme 6a-6c benötigen beispielsweise keine detaillierte Sammlung von Messdaten aus dem Fahrzeugumfeld (auch „Korridor“ genannt), die für die Planung einer Trajektorie des Fahrzeugs 80 benötigt wird. Unterprogramme 6d-6f der zweiten Gattung 62 jedoch, die eine Ansteuerung des Fahrzeugs 80 zur Beeinflussung der Fahrdynamik zum Ziel haben, benötigen auch diese Messdaten in den Datenstrukturelementen 5d-5h.
-
2 ist ein schematisches Ablaufdiagramm eines Ausführungsbeispiels des Verfahrens 100 zur Herstellung des Steuergeräts 1.
-
In Schritt 110 wird eine Hardwareplattform 9 mit mindestens einem Prozessor für die Ausführung des Steuerprogramms, einem Programmspeicher 2 und einem Datenspeicher 4 bereitgestellt.
-
In Schritt 120 wird ein Steuerprogramm 6 bereitgestellt, das Anzahlen der bereitzustellenden Plätze für Instanzen der ersten Sub-Datenstruktur 5* und der zweiten Sub-Datenstruktur 5** als freie Parameter N, M aufweist.
-
In Schritt 130 werden anhand
- • eines Bedarfs des Steuerprogramms 6 für Instanzen der ersten Sub-Datenstruktur 5* und der zweiten Sub-Datenstruktur 5** einerseits und
- • der verfügbaren Größe des Datenspeichers 4 andererseits
jeweils Soll-Anzahlen N*, M* der Instanzen der ersten Sub-Datenstruktur 5* und der zweiten Sub-Datenstruktur 5** festgelegt.
-
In Schritt 140 werden die freien Parameter N, M des Steuerprogramms 6 werden auf die Soll-Anzahlen N*, M* der Instanzen festgelegt. Hierbei können gemäß Block 141 zusätzlich in dem Steuerprogramm 6 Zeiger auf die einzelnen Instanzen der ersten Sub-Datenstruktur 5* und der zweiten Sub-Datenstruktur 5** statisch gesetzt werden.
-
In Schritt 150 wird das so parametrierte Steuerprogramm 6 in den Programmspeicher 2 der Hardwareplattform 9 geladen. Hierbei kann gemäß Block 151 ein Speicherabbild, das sowohl die maschinenlesbaren Anweisungen des Steuerprogramms 6 als auch das Speicherlayout des Datenspeichers 4 beinhaltet, auf die Hardwareplattform 9 geladen werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-