DE102021210547A1 - Steuergerät für Fahrzeuge mit besserer Speicherausnutzung - Google Patents

Steuergerät für Fahrzeuge mit besserer Speicherausnutzung Download PDF

Info

Publication number
DE102021210547A1
DE102021210547A1 DE102021210547.5A DE102021210547A DE102021210547A1 DE 102021210547 A1 DE102021210547 A1 DE 102021210547A1 DE 102021210547 A DE102021210547 A DE 102021210547A DE 102021210547 A1 DE102021210547 A1 DE 102021210547A1
Authority
DE
Germany
Prior art keywords
data structure
sub
data
instances
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021210547.5A
Other languages
English (en)
Inventor
Michael Baumann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102021210547.5A priority Critical patent/DE102021210547A1/de
Publication of DE102021210547A1 publication Critical patent/DE102021210547A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms

Abstract

Steuergerät (1) für ein Fahrzeug (80) mit einem Programmspeicher (2) für maschinenlesbare Anweisungen (3) eines Steuerprogramms (6) und einem Datenspeicher (4) für Datenstrukturen (5) des Steuerprogramms (6), wobei• das Steuerprogramm (6) in Unterprogramme (6a-6f) unterteilt ist, die jeweils auf Instanzen einer Datenstruktur (5) aus Datenstrukturelementen (5a-5h) zugreifen,• wobei Unterprogramme (6a-6f) einer ersten Gattung (61) eine erste Teilmenge (51) der Datenstrukturelemente (5a-5h) der Datenstruktur (5) verwenden und Unterprogramme (6a-6f) einer zweiten Gattung (62) zusätzlich eine zweite Teilmenge (52) von Datenstrukturelementen (5a-5h) der Datenstruktur (5) verwenden,• wobei der Datenspeicher (4) einen ersten Bereich (41) zur Aufnahme einer vorgegebenen Anzahl von Instanzen einer ersten Sub-Datenstruktur (5*) und einen zweiten Bereich (42) zur Aufnahme einer vorgegebenen Instanzen einer zweiten Sub-Datenstruktur (5**) aufweist,• wobei die erste Sub-Datenstruktur (5*) Datenstrukturelemente (5a-5h) der ersten Teilmenge (51) und die zweite Sub-Datenstruktur (5**) Datenstrukturelemente (5a-5h) der zweiten Teilmenge (52) enthält,• wobei die Unterprogramme (6a-6f) dazu ausgebildet sind, auf Instanzen der ersten Sub-Datenstruktur (5*) zuzugreifen und• wobei die Unterprogramme (6a-6f) der zweiten Gattung (62) dazu ausgebildet sind, einer Instanz der ersten Sub-Datenstruktur (5*) einen Verweis (7) auf eine Instanz der zweiten Sub-Datenstruktur (5**) zu entnehmen und auf diese Instanz im zweiten Bereich (42) des Datenspeichers (4) zuzugreifen.

Description

  • 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
    • WO 2021089307 A1 [0002]

Claims (15)

  1. Steuergerät (1) für ein Fahrzeug (80) mit einem Programmspeicher (2) für maschinenlesbare Anweisungen (3) eines Steuerprogramms (6) und einem Datenspeicher (4) für Datenstrukturen (5) des Steuerprogramms (6), wobei • das Steuerprogramm (6) in Unterprogramme (6a-6f) unterteilt ist, die jeweils auf Instanzen einer Datenstruktur (5) aus Datenstrukturelementen (5a-5h) zugreifen, • wobei Unterprogramme (6a-6f) einer ersten Gattung (61) eine erste Teilmenge (51) der Datenstrukturelemente (5a-5h) der Datenstruktur (5) verwenden und Unterprogramme (6a-6f) einer zweiten Gattung (62) zusätzlich eine zweite Teilmenge (52) von Datenstrukturelementen (5a-5h) der Datenstruktur (5) verwenden, • wobei der Datenspeicher (4) einen ersten Bereich (41) zur Aufnahme einer vorgegebenen Anzahl von Instanzen einer ersten Sub-Datenstruktur (5*) und einen zweiten Bereich (42) zur Aufnahme einer vorgegebenen Instanzen einer zweiten Sub-Datenstruktur (5**) aufweist, • wobei die erste Sub-Datenstruktur (5*) Datenstrukturelemente (5a-5h) der ersten Teilmenge (51) und die zweite Sub-Datenstruktur (5**) Datenstrukturelemente (5a-5h) der zweiten Teilmenge (52) enthält, • wobei die Unterprogramme (6a-6f) dazu ausgebildet sind, auf Instanzen der ersten Sub-Datenstruktur (5*) zuzugreifen und • wobei die Unterprogramme (6a-6f) der zweiten Gattung (62) dazu ausgebildet sind, einer Instanz der ersten Sub-Datenstruktur (5*) einen Verweis (7) auf eine Instanz der zweiten Sub-Datenstruktur (5**) zu entnehmen und auf diese Instanz im zweiten Bereich (42) des Datenspeichers (4) zuzugreifen.
  2. Steuergerät (1) nach Anspruch 1, dazu ausgebildet, mindestens ein potentielles Verhalten des Fahrzeugs (80) zu konstruieren, zu evaluieren, vorzuschlagen und/oder auszuführen, wobei die Datenstruktur (5) dazu ausgebildet ist, dieses Verhalten zu charakterisieren.
  3. Steuergerät (1) nach Anspruch 2, wobei die zweite Sub-Datenstruktur (5**) Messdaten aus Beobachtungen des Fahrzeugumfelds umfasst.
  4. Steuergerät (1) nach Anspruch 3, zusätzlich dazu ausgebildet, Messdaten aus der zweiten Sub-Datenstruktur (5**) einem Detail-Trajektorienplaner zur Umsetzung des Verhaltens des Fahrzeugs (80) in eine Detail-Trajektorie zuzuführen.
  5. Steuergerät (1) nach einem der Ansprüche 2 bis 4, wobei mindestens ein Verhalten, das keine Auswirkung auf die Fahrdynamik des Fahrzeugs (80) hat, durch in der ersten Sub-Datenstruktur (5*) enthaltene Datenstrukturelemente (5a-5h) charakterisiert ist.
  6. Steuergerät (1) nach einem der Ansprüche 2 bis 5, wobei der Verweis (7) auf die Instanz der zweiten Sub-Datenstruktur (5**) ein in dieser Instanz enthaltenes, für praktische Zwecke als global eindeutig annehmbares Identifikationsmerkmal, GUID, umfasst.
  7. Steuergerät (1) nach einem der Ansprüche 1 bis 6, wobei das Steuerprogramm (6) dazu ausgebildet ist, in Antwort darauf, dass keine Instanz der ersten Sub-Datenstruktur (5*) auf eine Instanz der zweiten Sub-Datenstruktur (5**) verweist, diese Instanz der zweiten Sub-Datenstruktur (5**) zu löschen und/oder zum Überschreiben durch eine neue Instanz der zweiten Sub-Datenstruktur (5**) freizugeben.
  8. Steuergerät (1) nach einem der Ansprüche 1 bis 7, wobei das Steuerprogramm (6) dazu ausgebildet ist, den Zugriff verschiedener Unterprogramme (6a-6f) auf die im zweiten Bereich (42) des Datenspeichers (4) verfügbaren Plätze für Instanzen der zweiten Sub-Datenstruktur (5**) nach der Wichtigkeit dieser Unterprogramme (6a-6f) für die Fahrsicherheit des Fahrzeugs (80) zu priorisieren.
  9. Steuergerät (1) nach einem der Ansprüche 1 bis 8, wobei die Speicherplätze, an denen die Instanzen der ersten Sub-Datenstruktur (5*) und die Instanzen der zweiten Sub-Datenstruktur (5**) abgelegt sind, statisch festgelegt sind.
  10. Verfahren (100) zur Herstellung eines Steuergeräts (1) nach einem der Ansprüche 1 bis 9 mit den Schritten: • es wird eine Hardwareplattform (9) mit mindestens einem Prozessor für die Ausführung des Steuerprogramms, einem Programmspeicher (2) und einem Datenspeicher (4) bereitgestellt (110); • es wird ein Steuerprogramm (6) bereitgestellt (120), 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; • 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 werden jeweils Soll-Anzahlen N*, M* der Instanzen der ersten Sub-Datenstruktur (5*) und der zweiten Sub-Datenstruktur (5**) festgelegt (130); • die freien Parameter N, M des Steuerprogramms (6) werden auf die Soll-Anzahlen N*, M* der Instanzen festgelegt (140); • das so parametrierte Steuerprogramm (6) wird in den Programmspeicher (2) der Hardwareplattform (9) geladen (150).
  11. Verfahren (100) nach Anspruch 10, wobei 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 (141).
  12. Verfahren (100) nach einem der Ansprüche 10 bis 11, wobei ein Speicherabbild, das sowohl die maschinenlesbaren Anweisungen des Steuerprogramms (6) als auch das Speicherlayout des Datenspeichers (4) beinhaltet, auf die Hardwareplattform (9) geladen wird (151).
  13. Computerprogramm, enthaltend maschinenlesbare Anweisungen, die, wenn sie auf einem oder mehreren Computern ausgeführt werden, den oder die Computer zu dem Steuergerät nach einem der Ansprüche 1 bis 9 aufwerten, und/oder dazu veranlassen, das Verfahren (100) nach einem der Ansprüche 10 bis 12 auszuführen.
  14. Maschinenlesbarer Datenträger und/oder Downloadprodukt mit dem Computerprogramm nach Anspruch 13.
  15. Ein oder mehrere Computer mit dem Computerprogramm nach Anspruch 13, und/oder mit dem maschinenlesbaren Datenträger und/oder Downloadprodukt nach Anspruch 14.
DE102021210547.5A 2021-09-22 2021-09-22 Steuergerät für Fahrzeuge mit besserer Speicherausnutzung Pending DE102021210547A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102021210547.5A DE102021210547A1 (de) 2021-09-22 2021-09-22 Steuergerät für Fahrzeuge mit besserer Speicherausnutzung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021210547.5A DE102021210547A1 (de) 2021-09-22 2021-09-22 Steuergerät für Fahrzeuge mit besserer Speicherausnutzung

Publications (1)

Publication Number Publication Date
DE102021210547A1 true DE102021210547A1 (de) 2023-03-23

Family

ID=85383922

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021210547.5A Pending DE102021210547A1 (de) 2021-09-22 2021-09-22 Steuergerät für Fahrzeuge mit besserer Speicherausnutzung

Country Status (1)

Country Link
DE (1) DE102021210547A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021089307A1 (de) 2019-11-07 2021-05-14 Daimler Ag Vorrichtung zur steuerung eines automatisierten fahrbetriebs eines fahrzeugs

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021089307A1 (de) 2019-11-07 2021-05-14 Daimler Ag Vorrichtung zur steuerung eines automatisierten fahrbetriebs eines fahrzeugs

Similar Documents

Publication Publication Date Title
DE102005026040B4 (de) Parametrierung eines Simulations-Arbeitsmodells
EP2009525B1 (de) Testvorrichtung zum Testen wenigstens eines elektronischen Steuerungssystems und Verfahren dazu
EP1731999B1 (de) Mechanismus zum dynamischen Registrieren von Dateien in einer stapelverarbeitungsorientierten Umgebung
DE102010011658A1 (de) Applikationsplattform und Verfahren zum Betrieb einer Datenverarbeitungseinrichtung mit einer solchen
DE112013004400T5 (de) Herstellen einer Zeitpunktkopie-Beziehung zwischen logischen Quellenadressen und logischen Zieladressen
DE102011007714B4 (de) Verfahren für die Verwendung mit einem Batterieüberwachungssystem, Batterieüberwachungssystem und Verwendung des Verfahrens
DE112014000340T5 (de) Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern
DE102013213314A1 (de) Hinterlegen mindestens eines berechenbaren Integritätsmesswertes in einem Speicherbereich eines Speichers
DE102018206762A1 (de) Feature-Development-Framework und Feature-Integration-Framework zum Implementieren physikalischer Funktionsfeatures in einem Zielgerät
DE102021210547A1 (de) Steuergerät für Fahrzeuge mit besserer Speicherausnutzung
DE19910535A1 (de) Verfahren zur automatischen Wiedergewinnung von Engineeringdaten aus Anlagen
DE102015218589A1 (de) Verfahren und Vorrichtung zum Betreiben eines Many-Core-System
DE102018221251A1 (de) Vorrichtung zum Simulieren eines Steuergerätes
DE102016123332A1 (de) Virtuelle Inbetriebnahme und Simulation eines Gebäudeautomatisierungssystems
DE102017212612A1 (de) Verfahren zum automatischen Erzeugen von Tests für die Software eines Fahrzeugs
DE102016108525B4 (de) Vorrichtung zur Verwendung beim Zugriff auf einen Speicher
DE102015204172A1 (de) Programmverwaltungsvorrichtung, fahrzeugsteuervorrichtung und programmverwaltungsprogramm
EP4099163A1 (de) Verfahren und system zum erkennen und beseitigen von schwachstellen in einzelnen dateisystemschichten eines container-images
DE102020006031A1 (de) Verfahren zum Erzeugen einer Softwarekomponente für eine elektronische Recheneinrichtung eines Kraftfahrzeugs, Computerprogrammprodukt, computerlesbares Speichermedium sowie kraftfahrzeugexternes Aktualisierungssystem
WO2002099650A2 (de) Verfahren zur verwaltung eines speichers einer chipkarte
DE112021000801T5 (de) Informationsverarbeitungsvorrichtung und Informationsverarbeitungsverfahren
DE102022003674A1 (de) Verfahren zum statischen Allozieren von lnformationen zu Speicherbereichen, informationstechnisches System und Fahrzeug
DE102022003789A1 (de) Verfahren zum Ändern des Speicherinhalts eines Hauptspeichers eines Mikrocontrollers ohne separate Speicherverwaltungseinheit, Anwendung dessen, Mikrocontroller und Fahrzeug
WO2002003193A2 (de) Elektronisches system zur entwicklung von software und ein verfahren zum zugriff auf interne daten der software
DE102022204016A1 (de) Verfahren zum Erzeugen eines Softwaregerüsts