-
Die Erfindung betrifft ein Verfahren, eine Steuervorrichtung, ein Computerprogramm und ein Computerprogrammprodukt zum Aktualisieren einer Software für eine Steuervorrichtung.
-
Das Aktualisieren einer Software ermöglicht Probleme der Software zu beheben und/oder eine Programmausführungsgeschwindigkeit zu erhöhen und/oder zusätzliche Funktionen bereitzustellen.
Softwareaktualisierungen werden unter anderem vom Fahrzeughersteller eingesetzt um eine Effizienz des Fahrzeugs zu verbessern und eine Attraktivität des Fahrzeugs für Kunden zu erhöhen.
-
Die Aufgabe, die der Erfindung zugrunde liegt, ist ein Verfahren, eine Steuervorrichtung, ein Computerprogramm und ein Computerprogrammprodukt zum Aktualisieren einer Softwareversion zu schaffen, das bzw. die dazu beiträgt einen effizienten Aktualisierungsprozess einer Software zu ermöglichen und einen für die Aktualisierung der Software benötigten Speicherbereich gering zu halten.
-
Die Aufgabe wird gelöst durch die Merkmale der unabhängigen Patentansprüche. Vorteilhafte Ausgestaltungen sind in den Unteransprüchen gekennzeichnet.
-
Gemäß einem ersten Aspekt zeichnet sich die Erfindung durch ein Verfahren zum Aktualisieren einer Software für eine Steuervorrichtung aus. Bei dem Verfahren gemäß dem ersten Aspekt wird eine Ausgangssoftwareversion der Steuervorrichtung bereitgestellt. Die Ausgangssoftwareversion umfasst mindestens eine Ausgangsdatei, wobei der Ausgangsdatei ein Ausgangsdateiinhalt und ein Ausgangsdateiname zugeordnet sind. Eine Aktualisierungsinformation wird bereitgestellt. Die Aktualisierungsinformation ist für eine Information zu einer Zielsoftwareversion repräsentativ und umfasst mindestens eine Zieldateiinformation. Der Zieldateiinformation sind ein Zieldateiname und eine Zieldateiinhaltsinformation zugeordnet, wobei die Zieldateiinhaltsinformation für einen Zieldateiinhalt repräsentativ ist.
-
Das Ermitteln der Zielsoftwareversion umfasst auf Dateiebene zu prüfen, ob sich aus der Zieldateiinformation ergibt, dass der Ausgangsdateiinhalt mit dem Zieldateiinhalt übereinstimmt. Falls dies der Fall ist, wird eine Zieldatei erzeugt durch Zuordnen des Zieldateinamens und Referenzieren auf den Ausgangsdateiinhalt. Andernfalls wird die Zieldatei erzeugt durch Zuordnen des Zieldateinamens, Speichern des Zieldateiinhalts und Referenzieren auf den Zieldateiinhalt.
-
Die Steuervorrichtung ist beispielsweise in einem Steuergerät eines Fahrzeugs realisiert. Die Steuervorrichtung ist beispielsweise eine Steuervorrichtung mit einem Doppelspeicher. Der Doppelspeicher umfasst insbesondere einen aktiven Speicherbereich und einen inaktiven Speicherbereich.
-
Die Ausgangssoftwareversion ist beispielsweise eine Softwareversion, die aktualisiert werden soll. Die Ausgangssoftwareversion ist beispielsweise in dem aktiven Speicherbereich der Steuervorrichtung gespeichert.
-
Die jeweilige Softwareversion, also sowohl die Ausgangssoftwareversion als auch die Zielsoftwareversion, umfasst beispielsweise eine Dateisystemstrukturinformation und Dateiinhalte. Die Dateisystemstrukturinformation umfasst insbesondere mindestens einen Verzeichnisnamen und einen Dateinamen, wobei der Verzeichnisname für einen Namen eines Verzeichnisses der jeweiligen Softwareversion repräsentativ ist und der Dateiname für einen Namen einer Datei der jeweiligen Softwareversion repräsentativ ist.
-
Die Aktualisierungsinformation ist beispielsweise eine Information zum Aktualisieren der Ausgangssoftwareversion. Die Aktualisierungsinformation wird beispielsweise in einer Servervorrichtung ermittelt und zur Steuervorrichtung übertragen. Die Aktualisierungsinformation wird insbesondere außerhalb des Fahrzeugs erstellt. Die Aktualisierungsinformation wird beispielsweise mittels einer drahtlosen Verbindung der Steuervorrichtung bereitgestellt.
-
Die Zielsoftwareversion ist beispielsweise repräsentativ für eine aktualisierte Softwareversion. Die ermittelte Zielsoftwareversion wird beispielsweise in dem inaktiven Speicherbereich gespeichert. Das ermöglicht, die Ermittlung der Zielsoftwareversion während eines normalen Betriebs der Steuervorrichtung durchzuführen, beispielsweise während einer Fahrt des Fahrzeugs. Der normale Betrieb der Steuervorrichtung ist beispielsweise repräsentativ für einen funktionalen Betrieb der Steuervorrichtung.
-
Der Ausgangsdateiname ist beispielsweise repräsentativ für ein eindeutiges Identifizierungsmerkmal der Ausgangsdatei. Der Ausgangsdateiname kann beispielsweise eine Zeichenkette und/oder ein sonstiges kennzeichnendes Merkmal der Ausgangsdatei sein. Der Zieldateiname ist beispielsweise repräsentativ für ein eindeutiges Identifizierungsmerkmal der Zieldatei. Der Zieldateiname kann beispielsweise eine Zeichenkette und/oder ein sonstiges kennzeichnendes Merkmal der Zieldatei sein.
-
Das Zuordnen des Zieldateinamens ermöglicht eine Dateisystemstruktur der Zielsoftwareversion zu erzeugen.
-
Das Referenzieren auf den Ausgangsdateiinhalt wird beispielsweise durch ein Verweisen auf den Ausgangsdateiinhalt erzeugt.
-
Das Referenzieren auf den Ausgangsdateiinhalt ermöglicht, dass identische Daten nicht doppelt gespeichert werden. Die Zielsoftwareversion und die Ausgangssoftwareversion können auf den Ausgangsdateiinhalt zugreifen. Das ermöglicht einen Speicherbedarf zum Aktualisieren der Softwareversion zu reduzieren. Dadurch wird eine Speicherung von mehreren Softwareversionen auf der Steuervorrichtung bei einer gleichzeitigen Reduktion eines benötigten Speichers ermöglicht. Des Weiteren wird eine schnellere Aktualisierung der Softwareversion und eine Reduzierung von Schreibzyklen ermöglicht. Ferner ermöglicht eine vollständige Untersuchung einer Integrität der Softwareversion vor einer Aktivierung der Zielsoftwareversion eine Steigerung der Zuverlässigkeit beim Aktualisieren der Softwareversion.
-
Der Ausgangsdateiinhalt und der Zieldateiinhalt werden beispielsweise in einer Partition gespeichert, wobei die Partition für einen gemeinsamen Speicherbereich für die Ausgangssoftwareversion und Zielsoftwareversion repräsentativ ist.
-
Die Ausgangsdatei und/oder die Zieldatei können beispielsweise Metadaten umfassen. Die Metadaten umfassen beispielsweise eine Information über Zugriffsrechte und/oder einen Zeitstempel. Optional können die Metadaten oder ein Teil der Metadaten dem Ausgangsdateiinhalt beziehungsweise dem Zieldateiinhalt zugeordnet sein.
-
Gemäß einem zweiten Aspekt zeichnet sich die Erfindung durch ein Verfahren zum Aktualisieren einer Software für eine Steuervorrichtung aus. Bei dem Verfahren wird eine Ausgangssoftwareversion der Steuervorrichtung bereitgestellt. Die Ausgangssoftwareversion umfasst mindestens eine Ausgangsdatei. Der Ausgangsdatei sind ein Ausgangsdateiinhalt und ein Ausgangsdateiname zugeordnet. Der Ausgangsdateiinhalt umfasst mindestens einen Ausgangsdateiinhaltsblock. Eine Aktualisierungsinformation wird bereitgestellt. Die Aktualisierungsinformation ist für eine Information zu einer Zielsoftwareversion repräsentativ und umfasst mindestens eine Zieldateiinformation. Der Zieldateiinformation sind ein Zieldateiname und eine Zieldateiinhaltsinformation zugeordnet. Die Zieldateiinhaltsinformation ist für einen Zieldateiinhalt repräsentativ. Der Zieldateiinhalt umfasst mindestens einen Zieldateiinhaltsblock. Das Ermitteln der Zielsoftwareversion umfasst auf Dateiebene zu prüfen, für die jeweiligen Zieldateiinhaltsblöcke der jeweiligen Zieldateiinformation abhängig von der Zieldateiinhaltsinformation der jeweiligen Zieldateiinformation und dem Ausgangsdateiinhalt der jeweiligen Ausgangsdatei, ob einer des zumindest einen Ausgangsdateiinhaltsblocks mit dem jeweiligen Zieldateiinhaltsblock übereinstimmt. Eine Zieldatei wird erzeugt durch Zuordnen des Zieldateinamens, falls der jeweilige Ausgangs- und Zieldateiinhaltsblock übereinstimmen und Referenzieren auf den jeweiligen Ausgangsdateiinhaltsblock. Falls der jeweilige Zieldateiinhaltsblock mit keinem des zumindest einen Ausgangsdateiinhaltsblocks übereinstimmt, erfolgt ein Speichern des jeweiligen Zieldateiinhaltsblocks und Referenzieren auf den jeweiligen Zieldateiinhaltsblock.
-
Das Referenzieren auf den Ausgangsdateiinhaltsblock ermöglicht, dass nur Zieldateiinhaltsblöcke, die sich von den jeweiligen Ausgangsdateiinhaltsblöcken unterscheiden, neu gespeichert werden müssen.
-
Die ersten und zweiten Aspekte können beliebig miteinander kombiniert werden.
-
In einer vorteilhaften Ausgestaltung umfasst die Ausgangssoftwareversion mindestens ein Ausgangsverzeichnis. Das Ausgangsverzeichnis umfasst mindestens die Ausgangsdatei. Dem Ausgangsverzeichnis sind ein Ausgangsverzeichnisname und ein Ausgangsverzeichnisinhalt zugeordnet. Der Ausgangsverzeichnisinhalt umfasst mindestens den Ausgangsdateiinhalt. Die Aktualisierungsinformation umfasst eine Zielverzeichnisinformation der ein Zielverzeichnisname und eine Zielverzeichnisinformation zugeordnet sind. Die Zielverzeichnisinformation ist für einen Zielverzeichnisinhalt repräsentativ. Der Zielverzeichnisinhalt umfasst mindestens den Zieldateiinhalt. Das Ermitteln der Zielsoftwareversion umfasst zu prüfen, ob sich aus der Zielverzeichnisinhaltsinformation ergibt, dass der Ausgangsverzeichnisinhalt mit dem Zielverzeichnisinhalt übereinstimmt. Falls dies der Fall ist, wird ein Zielverzeichnis erzeugt durch Zuordnen des Zielverzeichnisnamens und Referenzieren auf den Ausgangsverzeichnisnamen oder auf den Ausgangsverzeichnisinhalt. Andernfalls wird das Zielverzeichnis erzeugt durch Zuordnen des Zielverzeichnisnamens und Durchführen des Erzeugens der Zielsoftwareversion auf Dateiebene auf Basis der jeweiligen Zielverzeichnisinhaltsinformation.
-
Das Referenzieren auf den Ausgangsverzeichnisnamen ermöglicht ein einfaches Referenzieren. Das ermöglicht, ein separates Referenzieren auf alle Ausgangsdateien des Ausgangsverzeichnisses zu vermeiden.
-
In einer weiteren vorteilhaften Ausgestaltung erfolgt das Referenzieren mittels eines harten Links und/oder eines symbolischen Links.
-
Der harte Link ermöglicht beispielsweise das Referenzieren auf den Ausgangsdateiinhalt. Der symbolische Link wird beispielsweise zum Referenzieren auf den Ausgangsverzeichnisnamen eingesetzt. Das ermöglicht ein technisch einfaches Erzeugen der Zielsoftwareversion.
-
In einer weiteren vorteilhaften Ausgestaltung findet die Erzeugung der Zieldatei mittels Copy-On-Write und/oder Redirect-On-Write statt.
-
Die Erzeugung der Zieldatei mittels Copy-On-Write und/oder Redirect-On-Write ermöglicht eine effiziente Erzeugung der Zielsoftwareversion mit einem geringen Speicherbedarf.
-
In einer weiteren vorteilhaften Ausgestaltung ist die Ausgangssoftwareversion eine aktuell aktivierte Softwareversion.
-
Die aktuell aktivierte Softwareversion ist beispielsweise eine zum Betrieb der Steuervorrichtung benutzte Softwareversion.
-
In einer weiteren vorteilhaften Ausgestaltung umfasst die Aktualisierungsinformation ein Delta-Updatepaket. Das Delta-Updatepaket ist für eine Änderung zwischen der Ausgangssoftwareversion und der Zielsoftwareversion repräsentativ.
-
Das Delta-Updatepaket ermöglicht eine für das Aktualisieren der Softwareversion benötigte Datenmenge zu reduzieren. Das ermöglicht ein effizientes Aktualisieren der Softwareversion da durch eine geringe Größe des Deltas eine Übertragung in das Steuergerät schneller vonstattengehen kann. Das ermöglicht wiederum eine Reduzierung der Übertragungskosten.
-
In einer weiteren vorteilhaften Ausgestaltung umfasst die Aktualisierungsinformation eine erste Prüfinformation. Abhängig von der ermittelten Zielsoftwareversion wird eine zweite Prüfinformation ermittelt. Es wird ermittelt, ob die zweite Prüfinformation mit der ersten Prüfinformation übereinstimmt. Falls die zweite Prüfinformation mit der ersten Prüfinformation übereinstimmt, wird die Zielsoftwareversion als korrekt erstellt klassifiziert.
-
Die erste Prüfinformation ist beispielsweise repräsentativ für eine erste Prüfsumme und die zweite Prüfinformation ist beispielsweise repräsentativ für eine zweite Prüfsumme. Die erste Prüfinformation wird beispielsweise in der Servervorrichtung ermittelt. Die zweite Prüfinformation wird beispielsweise in dem Fahrzeug erstellt. Falls die erste Prüfinformation mit der zweiten Prüfinformation übereinstimmt, wird die Zielsoftwareversion beispielsweise aktiviert. Falls die zweite Prüfinformation nicht übereinstimmt mit der ersten Prüfinformation, wird beispielsweise die Ausgangssoftwareversion weiter zum Betrieb der Steuervorrichtung eingesetzt und das Fahrzeug kann weiter in Betrieb genommen werden. Das Vergleichen der ersten Prüfinformation mit der zweiten Prüfinformation ermöglicht, eine zuverlässige und sichere Aktualisierung der Softwareversion mit einer höheren Fehlertoleranz.
-
In einer weiteren vorteilhaften Ausgestaltung wird abhängig von einem Erhalten der Aktualisierungsinformation oder einem Aktivieren der Zielsoftwareversion die Ausgangssoftwareversion gelöscht. Im Falle des Löschens wird für das zukünftige Vorgehen als Ausgangssoftwareversion die zu diesem Zeitpunkt vorhandene Zielsoftwareversion zugeordnet.
-
Beispielsweise wird beim Löschen der Ausgangssoftwareversion überprüft, ob der Ausgangsverzeichnisname und/oder Ausgangsdateiinhalt und/oder Ausgangsdateiinhaltsblock von der Zielsoftwareversion referenziert werden. Falls dies der Fall ist, werden die der Ausgangsverzeichnisname und/oder Ausgangsdateiinhalt und/oder Ausgangsdateiinhaltsblock nicht zum Löschen freigegeben.
-
Das Löschen der Ausgangssoftwareversion ermöglicht einen größeren Speicherplatz zum Aktualisieren der Softwareversion.
-
Beispielsweise kann die Zielsoftwareversion nach ihrer Ermittlung als Ausgangssoftwareversion eingesetzt werden.
-
In einer weiteren vorteilhaften Ausgestaltung wird ermittelt, ob die Aktualisierungsinformation für eine Hauptaktualisierung repräsentativ ist. Die Hauptaktualisierung ist für eine vorgegebene signifikante Änderung zwischen der Ausgangssoftwareversion und der Zielsoftwareversion repräsentativ. Falls die Aktualisierungsinformation für die Hauptaktualisierung repräsentativ ist, wird die Zielsoftwareversion nach ihrer Ermittlung als Ausgangssoftwareversion eingesetzt. Andernfalls wird die Zielsoftwareversion nach ihrer Ermittlung nicht als Ausgangssoftwareversion eingesetzt.
-
Die Hauptaktualisierung umfasst beispielsweise Merkmale, die neu sind gegenüber der Ausgangssoftwareversion.
-
Die abhängig von der Hauptaktualisierung ermittelte Ausgangssoftwareversion wird beispielsweise zum Ermitteln der Aktualisierungsinformation für eine weitere Aktualisierung der Softwareversion eingesetzt. Das ermöglicht eine einfache Ermittlung der Aktualisierungsinformation in der Servervorrichtung und einen geringeren Speicherbedarf. Das ermöglicht häufige Aktualisierungen und eine Reduzierung von Infrastrukturkosten für Aktualisierungen. Ferner werden Absicherungsaufwände reduziert da Hauptaktualisierungen regelmäßig nicht oft erfolgen.
-
Das Ermitteln, ob die Aktualisierungsinformation für eine Hauptaktualisierung repräsentativ ist, ermöglicht eine flexible Aktualisierung der Softwareversion.
-
Gemäß einem dritten Aspekt betrifft die Erfindung eine Steuervorrichtung, wobei die Steuervorrichtung dazu ausgebildet ist das Verfahren gemäß dem ersten Aspekt und/oder zweiten Aspekt durchzuführen. Die Steuervorrichtung umfasst beispielweise eine Datenverarbeitungsvorrichtung, die signaltechnisch mit der Servervorrichtung gekoppelt ist. Die Steuervorrichtung ist beispielsweise in einem Steuergerät eines Fahrzeugs realisiert.
-
Gemäß einem vierten Aspekt betrifft die Erfindung ein Computerprogramm zum Aktualisieren einer Softwareversion für eine Steuervorrichtung. Das Computerprogramm ist ausgebildet, das Verfahren gemäß dem ersten Aspekt und/oder dem zweiten Aspekt durchzuführen.
-
Gemäß einem fünften Aspekt betrifft die Erfindung ein Computerprogrammprodukt umfassend ausführbaren Programmcode, wobei der Programcode bei Ausführung durch eine Datenverarbeitungsvorrichtung das Verfahren gemäß dem ersten Aspekt und/oder dem zweiten Aspekt durchführt.
-
Das Computerprogrammprodukt umfasst insbesondere ein von der Datenverarbeitungsvorrichtung lesbares Medium, auf dem der Programmcode gespeichert ist.
-
Ausführungsbeispiele der Erfindung sind im Folgenden anhand der schematischen Zeichnungen näher erläutert. Es zeigen:
- 1 ein erstes Ablaufdiagramm eines Programms zum Aktualisieren einer Softwareversion für eine Steuervorrichtung;
- 2 ein zweites Ablaufdiagramm eines Programms zum Aktualisieren einer Softwareversion für eine Steuervorrichtung;
- 3 eine Abbildung einer Steuervorrichtung.
-
Die 1 zeigt ein Ablaufdiagramm eines ersten Programms zum Aktualisieren einer Softwareversion für eine Steuervorrichtung SV (siehe 3).
-
Elemente gleicher Konstruktion oder Funktion sind figurenübergreifend mit den gleichen Bezugszeichen versehen.
-
Das Ablaufdiagramm der 1 wird im Folgenden näher erläutert.
-
Das Programm wird in einem Schritt S1 gestartet, in dem beispielsweise Variablen initialisiert werden. Das Programm wird anschließend in einem Schritt S3 fortgesetzt.
-
In dem Schritt S3 wird eine Ausgangssoftwareversion bereitgestellt. Die Ausgangssoftwareversion umfasst mindestens eine Ausgangsdatei, wobei der Ausgangsdatei ein Ausgangsdateiinhalt und ein Ausgangsdateiname zugeordnet sind. Die Ausgangssoftwareversion umfasst beispielsweise mindestens ein Ausgangsverzeichnis. Das Ausgangsverzeichnis umfasst mindestens die Ausgangsdatei. Dem Ausgangsverzeichnis sind ein Ausgangsverzeichnisname und ein Ausgangsverzeichnisinhalt zugeordnet, und der Ausgangsverzeichnisinhalt umfasst mindestens den Ausgangsdateiinhalt. Die Ausgangssoftwareversion ist beispielsweise repräsentativ für eine aktuell aktivierte Softwareversion. Die Ausgangssoftwareversion ist beispielsweise in einem aktiven Speicherbereich AB der Steuervorrichtung SV gespeichert. Das Programm wird anschließend in einem Schritt S5 fortgesetzt.
-
In dem Schritt S5 wird eine Aktualisierungsinformation bereitgestellt. Die Aktualisierungsinformation ist für eine Information zu einer Zielsoftwareversion repräsentativ und umfasst mindestens eine Zieldateiinformation, der ein Zieldateiname und eine Zieldateiinhaltsinformation zugeordnet sind. Die Zieldateiinhaltsinformation ist für einen Zieldateiinhalt repräsentativ. Die Aktualisierungsinformation umfasst beispielsweise eine Zielverzeichnisinformation, der ein Zielverzeichnisname und eine Zielverzeichnisinhaltsinformation zugeordnet sind. Die Zielverzeichnisinhaltsinformation ist für einen Zielverzeichnisinhalt repräsentativ und der Zielverzeichnisinhalt umfasst mindestens den Zieldateiinhalt. Die Aktualisierungsinformation umfasst beispielsweise ein Delta-Updatepaket, wobei das Delta-Updatepaket für eine Änderung zwischen der Ausgangssoftwareversion und der Zielsoftwareversion repräsentativ ist. Die Aktualisierungsinformation umfasst beispielsweise eine erste Prüfinformation. Die Aktualisierungsinformation wird beispielsweise in einer Servervorrichtung ermittelt. Das Programm wird anschließend in einem optionalen Schritt S7 fortgesetzt.
-
In dem optionalen Schritt S7 wird geprüft, ob sich aus der Zielverzeichnisinhaltsinformation ergibt, dass der Ausgangsverzeichnisinhalt mit dem Zielverzeichnisinhalt übereinstimmt.
-
Falls der Ausgangsverzeichnisinhalt mit dem Zielverzeichnisinhalt übereinstimmt, wird das Programm in einem optionalen Schritt S9 fortgesetzt.
-
In dem optionalen Schritt S9 wird ein Zielverzeichnis erzeugt durch Zuordnen eines Zielverzeichnisnamens und Referenzieren auf den Ausgangsverzeichnisnamen oder auf den Ausgangsverzeichnisinhalt. Das Referenzieren auf den Ausgangsverzeichnisnamen erfolgt beispielsweise mittels eines symbolischen Links. Das ermöglicht ein einfaches Erzeugen des ersten Zielverzeichnisses. Die ermittelte Zielsoftwareversion wird beispielsweise in einem inaktiven Speicherbereich IB der Steuervorrichtung SV gespeichert. Die Ausgangsdateiinhalte und Zieldateiinhalte werden beispielsweise in einer Partition gespeichert. Die Partition ist beispielsweise ein gemeinsamer Speicherbereich GSB auf den die Ausgangssoftwareversion und die Zielsoftwareversion zugreifen können.
-
Das Programm wird in einem optionalen Schritt S11 fortgesetzt.
-
In dem optionalen Schritt S11 wird überprüft, ob weitere Zielverzeichnisse erzeugt werden sollen.
-
Falls dies der Fall ist, wird das Programm in dem optionalen Schritt S7 fortgesetzt.
-
Falls in dem optionalen Schritt S7 festgestellt wird, dass der Ausgangsverzeichnisinhalt nicht mit dem Zielverzeichnisinhalt übereinstimmt, wird das Programm in einem Schritt S13 fortgesetzt.
-
In dem Schritt S13 wird geprüft, ob sich aus der Zieldateiinformation ergibt, dass der Ausgangsdateiinhalt mit dem Zieldateiinhalt übereinstimmt.
-
Falls der Ausgangsdateiinhalt mit dem Zieldateiinhalt übereinstimmt, wird das Programm in einem Schritt S15 fortgesetzt.
-
In dem Schritt S15 wird die Zieldatei erzeugt durch Zuordnen des Zieldateinamens und Referenzieren auf den Ausgangsdateiinhalt. Das Referenzieren auf den Ausgangsdateiinhalt erfolgt beispielsweise mittels eines harten Links. Das ermöglicht eine einfache Erzeugung der Zieldatei.
-
Falls der Ausgangsdateiinhalt nicht mit dem Zieldateiinhalt übereinstimmt, wird das Programm in dem Schritt S17 fortgesetzt.
-
In dem Schritt S17 wird die Zieldatei erzeugt durch Zuordnen des Zieldateinamens, Speichern des Zieldateiinhalts und Referenzieren auf den Zieldateiinhalt. Das Programm wird in einem optionalen Schritt S19 fortgesetzt.
-
In dem optionalen Schritt S19 wird überprüft, ob weitere Zieldateien in dem Zielverzeichnis erzeugt werden sollen.
-
Falls dies der Fall ist, wird das Programm in dem Schritt S13 fortgesetzt.
-
Andernfalls wird das Programm in dem optionalen Schritt S11 fortgesetzt.
-
Falls in dem optionalen Schritt S11 festgestellt wird, dass keine weiteren Zielverzeichnisse erzeugt werden sollen, wird das Programm in einem optionalen Schritt S21 fortgesetzt.
-
In dem Schritt S21, wird abhängig von der ermittelten Zielsoftwareversion eine zweite Prüfinformation ermittelt. Das Programm wird in einem optionalen Schritt S23 fortgesetzt.
-
In dem optionalen Schritt S23 wird ermittelt, ob die zweite Prüfinformation mit der ersten Prüfinformation übereinstimmt.
-
Falls die zweite Prüfinformation mit der ersten Prüfinformation übereinstimmt wird das Programm in einem optionalen Schritt S25 fortgesetzt.
-
In dem optionalen Schritt S25 wird die Zielsoftwareversion als korrekt erstellt klassifiziert. Das ermöglicht eine sichere Aktualisierung der Softwareversion mit einer höheren Fehlertoleranz. Das Programm wird in einem optionalen Schritt S27 fortgesetzt.
-
In dem optionalen Schritt S27 wird die Zielsoftwareversion aktiviert.
-
Falls in dem optionalen Schritt S23 festgestellt wird, dass die zweite Prüfinformation nicht mit der ersten Prüfinformation übereinstimmt, wird das Programm in einem optionalen Schritt S29 fortgesetzt.
-
In dem optionalen Schritt S29 wird beispielsweise eine Fehlerinformation ermittelt, sodass die ermittelte Zielsoftwareversion nicht aktiviert wird.
-
Das Programm wird in einem Schritt S31 beendet und kann gegebenenfalls wieder in dem Schritt S1 gestartet werden.
-
Die 2 zeigt ein zweites Ablaufdiagramm eines Programms zum Aktualisieren einer Softwareversion für eine Steuervorrichtung SV.
-
Das Programm wird in einem Schritt S41 gestartet in dem beispielsweise Variablen initialisiert werden. Das Programm wird anschießend in einem Schritt S43 fortgesetzt.
-
In dem Schritt S43 wird die Ausgangssoftwareversion bereitgestellt. Die Ausgangssoftwareversion umfasst mindestens eine Ausgangsdatei, wobei der Ausgangsdatei ein Ausgangsdateiinhalt und ein Ausgangsdateiname zugeordnet sind und der Ausgangsdateiinhalt mindestens einen Ausgangsdateiinhaltsblock umfasst. Das Programm wird in einem Schritt S45 fortgesetzt.
-
In dem Schritt S45 wird die Aktualisierungsinformation bereitgestellt. Die Aktualisierungsinformation ist für eine Information zu einer Zielsoftwareversion repräsentativ und umfasst mindestens eine Zieldateiinformation, der ein Zieldateiname und eine Zieldateiinhaltsinformation zugeordnet sind, wobei die Zieldateiinhaltsinformation für einen Zieldateiinhalt repräsentativ ist und der Zieldateiinhalt mindestens einen Zieldateiinhaltsblock umfasst. Das Programm wird in einem Schritt S47 fortgesetzt.
-
In dem Schritt S47 wird ein Zieldateiname ermittelt. Das Programm wird in einem Schritt S49 fortgesetzt.
-
In dem Schritt S49 wird geprüft für die jeweiligen Zieldateiinhaltsblöcke der jeweiligen Zieldateiinformation, abhängig von der Zieldateiinhaltsinformation der jeweiligen Zieldateiinformation und dem Ausgangsdateiinhalt der jeweiligen Ausgangsdatei, ob einer des zumindest einen Ausgangsdateiinhaltsblocks mit dem jeweiligen Zieldateiinhaltsblock übereinstimmt. Falls dies der Fall ist, wird das Programm in einem Schritt S51 fortgesetzt.
-
In dem Schritt S51 wird referenziert auf den jeweiligen Ausgangsdateiinhaltsblock.
-
Falls der jeweilige Zieldateiinhaltsblock mit keinem des zumindest einen Ausgangsdateiinhaltsblocks übereinstimmt, wird das Programm in einem Schritt S53 fortgesetzt.
-
In dem Schritt S53 wird der Ausgangsdateiinhaltsblock gespeichert. Die Ermittlung der Zieldatei erfolgt beispielsweise mittels Copy-On-Write oder Redirect-On-Write. Das ermöglicht eine effiziente Aktualisierung der Softwareversion mit einem geringen Speicherbedarf. Das Programm wird in einem Schritt S55 fortgesetzt.
-
In dem Schritt S55 wird überprüft, ob weitere Inhaltsblöcke in der Datei vorhanden sind.
-
Falls das nicht der Fall ist, wird das Programm in einem Schritt S57 fortgesetzt.
-
Falls in dem Schritt S55 festgestellt wird, dass weitere Inhaltsblöcke in der Datei vorhanden sind, wird das Programm in dem Schritt S59 fortgesetzt.
-
In dem Schritt S57 wird geprüft, ob weitere Dateien in der Zielsoftwareversion vorhanden sind. Falls dies der Fall ist, wird das Programm in dem Schritt S47 fortgesetzt. Falls dies nicht der Fall ist, wird das Programm in einem Schritt S59 fortgesetzt.
-
In dem Schritt S59 wird die zweite Prüfinformation ermittelt. Das Programm wird in einem Schritt S61 fortgesetzt.
-
In dem Schritt S61 wird geprüft, ob die erste Prüfinformation mit der zweiten Prüfinformation übereinstimmt.
-
Falls dies der Fall ist, wird das Programm in einem optionalen Schritt S63 fortgesetzt.
-
In dem optionalen Schritt S63 wird die Zielsoftwareversion als korrekt erstellt klassifiziert. Das Programm wird in einem optionalen Schritt S65 fortgesetzt.
-
In dem Schritt S65 wird die Zielsoftwareversion aktiviert.
-
Das Programm wird dann mit einem Schritt S69 beendet und kann gegebenenfalls wieder in dem Schritt S41 gestartet werden.
-
Falls dies nicht der Fall ist, wird das Programm in dem Schritt S69 beendet und kann gegebenenfalls wieder in dem Schritt S41 gestartet werden.
-
Die 3 zeigt die Steuervorrichtung. Die Steuervorrichtung ist beispielsweise in einem Steuergerät eines Fahrzeugs realisiert.
-
Die Aktualisierungsinformation wird beispielsweise außerhalb des Fahrzeugs ermittelt.
-
Die Ausgangssoftwareversion ist beispielsweise in dem aktiven Speicherbereich AB der Steuervorrichtung SV gespeichert und die erzeugte Zielsoftwareversion ist in dem inaktiven Speicherbereich IB gespeichert.
-
Einem ersten Ausgangsdateiverzeichnis ist ein erster Ausgangsverzeichnisname AV1 zugeordnet. Das erste Ausgangsverzeichnis umfasst eine erste Ausgangsdatei und eine zweite Ausgangsdatei. Der ersten Ausgangsdatei sind ein erster Ausgangsdateiname AD1 und ein erster Ausgangsdateiinhalt ADI1 zugeordnet. Der zweiten Ausgangsdatei sind ein zweiter Ausgangsdateiname AD2 und ein zweiter Ausgangsdateiinhalt ADI2 zugeordnet.
-
Es ergibt sich beispielsweise aus einer ersten Zielverzeichnisinhaltsinformation, dass der erste Ausgangsverzeichnisinhalt mit einem ersten Zielverzeichnisinhalt übereinstimmt. Ein erstes Zielverzeichnis wird beispielsweise erzeugt durch Zuordnen eines ersten Zielverzeichnisnamens ZV1 und Referenzieren auf den ersten Ausgangsverzeichnisnamen AV1.
-
Einem zweiten Ausgangsdateiverzeichnis ist ein zweiter Ausgangsverzeichnisname AV2 zugeordnet. Das zweite Ausgangsverzeichnis umfasst eine dritte Ausgangsdatei und eine vierte Ausgangsdatei. Der dritten Ausgangsdatei sind ein dritter Ausgangsdateiname AD3 und ein dritter Ausgangsdateiinhalt ADI3 zugeordnet. Der vierten Ausgangsdatei sind ein vierter Ausgangsdateiname AD4 und ein vierter Ausgangsdateiinhalt ADI4 zugeordnet.
-
Es ergibt sich beispielsweise aus einer zweiten Zielverzeichnisinhaltsinformation, dass ein zweiter Ausgangsverzeichnisinhalt nicht mit einem zweiten Zielverzeichnisinhalt übereinstimmt.
-
Das zweite Zielverzeichnis wird beispielsweise erzeugt durch Zuordnen eines zweiten Zielverzeichnisnamens ZV2, und Durchführen des Erzeugens der Zielsoftwareversion auf Dateiebene auf Basis der zweiten Zielverzeichnisinhaltsinformation.
-
Beim Erzeugen der Zielsoftwareversion auf Dateiebene ergibt sich beispielsweise, dass der dritte Ausgangdateiinhalt ADI3 mit einem dritten Zieldateiinhalt der dritten Zieldatei übereinstimmt. Die dritte Zieldatei wird erzeugt durch Zuordnen eines dritten Zieldateinamens ZD3 und Referenzieren auf den dritten Ausgangsdateiinhalt ADI3.
-
Beim Erzeugen der Zielsoftwareversion auf Dateiebene ergibt sich desweitern, dass der vierte Ausgangdateiinhalt ADI4 nicht mit einem vierten Zieldateiinhalt ZDI4 der vierten Zieldatei übereinstimmt. Die vierte Zieldatei wird erzeugt durch Zuordnen eines vierten Zieldateinamens ZD4, Speichern des vierten Zieldateiinhalts ZDI4 und Referenzieren auf den vierten Zieldateiinhalt ZDI4.
-
Für eine jeweilige Softwareversion wird beispielsweise eine Dateisystemstruktur so angelegt, dass es für die Softwareversion einen in sich geschlossenen und vollständigen Datensatz gibt.
-
Die Steuervorrichtung kann beispielsweise vollständig mittels der jeweiligen Softwareversion betrieben werden.
-
Beispielsweise überlappen die Ausgangssoftwareversion und die Zielsoftwareversion, indem sie unveränderte Dateiinhalte und Strukturen referenzieren und damit nur einmal vorhalten müssen.
-
Das Referenzieren ermöglicht eine schnelle Installation der Zielsoftwareversion, eine Reduzierung von Schreibzyklen auf einem Speicher der Steuervorrichtung und eine zuverlässige Aktualisierung der Ausgangssoftwareversion. Eine einfache Einführung eines Doppelspeicheransatzes für Steuervorrichtungen wird des Weiteren auch ermöglicht.
-
Die Ermittlung der Zielsoftwareversion ermöglicht eine Aktualisierung der Ausgangssoftwareversion während einer Fahrt. Des Weiteren wird eine größere Flexibilität in einer Datenstrukturierung und eine Vermeidung von Datei System Re-Partitionierungen ermöglicht.
-
Bezugszeichenliste
-
- SV
- Steuervorrichtung
- AB
- Aktiver Speicherbereich
- IB
- Inaktiver Speicherbereich
- GSB
- Gemeinsamer Speicherbereich
- AV1
- Erstes Ausgangsverzeichnisnamens
- AD1
- Erster Ausgangsdateiname
- AD2
- Zweiter Ausgangsdateiname
- ADI1
- Erster Ausgangsdateiinhalt
- ADI2
- Zweiter Ausgangsdateiinhalt
- AV2
- Zweiter Ausgangsverzeichnisname
- AD3
- Dritter Ausgangsdateiname
- AD4
- Vierter Ausgangsdateiname
- ADI3
- Dritter Ausgangsdateiinhalt
- ADI4
- Vierter Ausgangsdateiinhalt
- ZV1
- Erster Zielverzeichnisname
- ZV2
- Zweiter Zielverzeichnisname
- ZD3
- Dritter Zieldateiname
- ZD4
- Vierter Zieldateiname
- ZDI4
- Vierter Zieldateiinhalt
- S1,..,S69
- Programmschritte