DE102011075776A1 - Verfahren und System zum Aktualisieren eines gemeinsam genutzten Speichers - Google Patents

Verfahren und System zum Aktualisieren eines gemeinsam genutzten Speichers Download PDF

Info

Publication number
DE102011075776A1
DE102011075776A1 DE102011075776A DE102011075776A DE102011075776A1 DE 102011075776 A1 DE102011075776 A1 DE 102011075776A1 DE 102011075776 A DE102011075776 A DE 102011075776A DE 102011075776 A DE102011075776 A DE 102011075776A DE 102011075776 A1 DE102011075776 A1 DE 102011075776A1
Authority
DE
Germany
Prior art keywords
memory block
code
shared
application
written
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.)
Withdrawn
Application number
DE102011075776A
Other languages
English (en)
Inventor
Antoni Ferre Fabregas
Jose Gabriel Fernandez Banares
David Gamez Alari
Stanislav Lincer
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.)
Lear Corp
Original Assignee
Lear Corp
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 Lear Corp filed Critical Lear Corp
Publication of DE102011075776A1 publication Critical patent/DE102011075776A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Abstract

Es werden ein Verfahren und ein System zum Aktualisieren eines gemeinsam genutzten Speichers oder einer anderen Speicherposition angegeben, wobei mehrere Einheiten einen im gleichen Speicher gespeicherten Code verwenden, um eine oder mehrere Operationsfunktionen zu unterstützen. Der gemeinsam genutzte Speicher kann derart aktualisiert werden, dass der Code, der den derzeit gespeicherten Code ersetzen soll, verwendet werden kann, bevor er den derzeit in dem gemeinsam genutzten Speicher geschriebenen Code ersetzt.

Description

  • Die vorliegende Patentanmeldung ist mit der gleichzeitig eingereichten US-Patentanmeldung Nr. 12/796,833 mit dem Titel „Shared Memory Architecture” vom 9. Juni 2010 verwandt, die hier vollständig unter Bezugnahme eingeschlossen ist.
  • Die vorliegende Erfindung betrifft Verfahren und Systeme zum Aktualisieren eines gemeinsam genutzten Speichers wie er etwa in einem Fahrzeug verwendet wird.
  • In einer gemeinsam genutzten Architektur muss unter Umständen der in den gemeinsam genutzten Speicherblock geschriebene Code aktualisiert oder auf andere Weise ersetzt werden, während die Softwarefunktion in dem gemeinsam genutzten Speicherblock verwendet wird. Dies kann zum Beispiel dann der Fall sein, wenn der Code Protokolländerungen zum Beheben von Betriebsfehlern usw. unterstützen soll.
  • Die vorliegende Erfindung wird durch die beigefügten Ansprüche definiert. Die Merkmale der Erfindung werden durch die folgende ausführliche Beschreibung mit Bezug auf die Figuren verdeutlicht.
  • 1 zeigt ein Fahrzeug-Steuersystem gemäß einem nicht-einschränkenden Aspekt der Erfindung.
  • 2 ist ein Flussdiagramm zu einem Verfahren zum Aktualisieren eines gemeinsam genutzten Speicherblocks gemäß einem nicht-einschränkenden Aspekt der vorliegenden Erfindung.
  • 1 zeigt ein Fahrzeug-Steuersystem 10 gemäß einem nicht-einschränkenden Aspekt der vorliegenden Erfindung. Das Fahrzeug-Steuersystem 10 kann in einem Fahrzeug (nicht gezeigt) enthalten sein, das eine Anzahl von Fahrzeug-Subsystemen (nicht gezeigt) umfasst, die durch eine oder mehrere Fahrzeug-Subsystem-Steuereinrichtungen 12, 14, 16 gesteuert werden, wobei es sich um Informations- und Unterhaltungs-, Sicherheits-(Passivöffnungs-/Funkschließ-), Beleuchtungs-, Heizungs-, Klimaanlagen- und Motorsteuerungs-Subsysteme handeln kann. Der Betrieb, die Aktualisierung, die Interaktion und die Steuerung der Fahrzeug-Subsysteme können durch Kommunikationen angewiesen werden, die in Übereinstimmung mit Befehlen aus einer Master-Steuereinrichtung 20 über einen Fahrzeugbus 18 übertragen werden. Das hier beschriebene Fahrzeug-Steuersystem 10 stellt lediglich eine beispielhafte Umgebung dar, in der die Erfindung angewendet werden kann. Die Erfindung kann auch auf andere Anwendungen als in Fahrzeugen angewendet werden.
  • Die hier beschriebene Fahrzeug-Umgebung ist eine Umgebung, in der es erforderlich sein kann, einen Speicher 22 mit einem gemeinsam genutzten Speicherblock 24 periodisch zu aktualisieren. Die Fahrzeug-Umgebung ist weiterhin eine Umgebung, in der die Steuereinrichtungen 12, 14, 16 unter Umständen über einen Kommunikationsbus 18 und/oder drahtlos mit anderen Steuereinrichtungen 12, 14, 16 kommunizieren. In der beispielhaften Umgebung ist die Steuereinrichtung 16 eine Batterieüberwachungssystem(BMS)-Steuereinrichtung 16. Die BMS-Steuereinrichtung 16 ist konfiguriert, um in Verbindung mit der Hardware eines BMS (nicht gezeigt) betrieben zu werden, die zum Beispiel verwendet werden kann, um den Stromfluss und die Batterietemperatur zu messen und eine Anzahl von Operationen in Bezug auf eine Fahrzeugbatterie auszuführen. Die US-Patentanmeldung Nr. 12/486,847 mit dem Titel „Battery Monitoring System”, die hier vollständig unter Bezugnahme eingeschlossen ist, beschreibt ein derartiges Batterieüberwachungssystem.
  • Zusätzlich zu dem gemeinsam genutzten Speicherblock 24 umfasst der Speicher 22 der BMS-Steuereinrichtung 16 einen Starter-Speicherblock 28 und einen Anwendungs-Speicherblock 30. Obwohl hier nicht gezeigt, kann der Speicher 22 ein nicht-flüchtiger Speicher wie etwa ein RAM sein, der in Verbindung mit dem Starter, der Anwendung und den gemeinsam genutzten Speicherblöcken 24, 28, 30, die flüchtig oder nicht-flüchtig sein können, verwendet werden kann. Der Anwendungs-Speicherblock 30 speichert Code oder Daten, die mit einer Anwendung assoziiert sind. Die Anwendung kann eine Operation zum Ausführen verschiedener mit dem Batterieüberwachungssystem assoziierten Funktionen sein, die etwa das Messen und Berichten eines Stromflusses zu einer oder mehreren anderen Steuereinrichtungen (der Master ist ebenfalls als eine Steuereinrichtung zu betrachten) umfassen. Der Starter-Speicherblock 28 speichert Code, der mit einem Starter assoziiert ist. Der Starter kann konfiguriert sein, um das Starten oder Initialisieren des Batterieüberwachungssystems zu leisten, wobei er Treiber 32 lädt und/oder andere Operationen ausführt, die die Anwendung benötigt, um die gewünschten Funktionen zu erfüllen.
  • Die hier gezeigte BMS-Steuereinrichtung 16 umfasst eine CPU 34. Die CPU 34 kann konfiguriert sein, um Operationen in Übereinstimmung mit aus dem Speicher 22 gelesenen Befehlen auszuführen, wobei die Operationen zum Beispiel mit dem Starter und der Anwendung assoziiert sind. Die CPU 34 kann auch konfiguriert sein, um Code in den Speicher 22 zu schreiben, und unterstützt auf diese Weise die weiter unten ausführlicher beschriebenen Operationen. Die CPU 34 interagiert mit den Treibern 32, die verwendet werden, um mit den Hardware-Komponenten des Batterieüberwachungssystems wie etwa mit den Hardware-Komponenten zum Unterstützen der Kommunikationen mit den anderen Steuereinrichtungen 12, 14 über den Fahrzeugbus 18 zu interagieren.
  • Die zwischen der BMS-Steuereinrichtung 16 und einer oder mehreren der anderen Steuereinrichtungen 12, 14 ausgeführten Kommunikationen können in Übereinstimmung mit einem in dem gemeinsam genutzten Speicherblock 24 gespeicherten Kommunikationscode angewiesen und/oder ausgeführt werden. Der Kommunikationscode kann in dem gemeinsam genutzten Speicherblock 24 gespeichert sein und kann durch den Starter und die Anwendung verwendet werden, wenn Operationen in Zusammenhang mit der Kommunikation ausgeführt werden (optional kann der gemeinsam genutzte Speicher 24 durch andere in der BMS-Steuereinrichtung 16 ausgeführte Anwendungen und/oder Funktionen verwendet werden). Die Verwendung des gemeinsam genutzten Speichers 24 kann vorteilhaft sein, wenn das Volumen des für die Kommunikationen benötigten Kommunikationscodes größer ist. Indem der Kommunikationscode gemeinsam genutzt werden kann und keine separaten Sätze des Kommunikationscodes für den Starter und die Anwendung gespeichert werden müssen, kann das Gesamtvolumen des Kommunikationscodes für die Unterstützung des Starters, der Anwendung und anderer von der Kommunikation abhängiger Elemente (sofern vorhanden) reduziert werden.
  • 2 ist ein Flussdiagramm 50 zu einem Verfahren zum Aktualisieren eines gemeinsam genutzten Speicherblocks gemäß einem nicht-einschränkenden Aspekt der vorliegenden Erfindung. Mit diesem Verfahren kann ein gemeinsam genutzter Speicherblock aktualisiert werden, ohne dass dabei die durch den gemeinsam genutzten Speicherblock unterstützten Operationen verloren gehen und/oder indem eine Operation in Übereinstimmung mit einem neuen Code ermöglicht wird, bevor der neue Code in den gemeinsam genutzten Speicherblock geschrieben wird. Wenn in diesem Fall der gemeinsam genutzte Speicherblock 24 verwendet wird, um den durch den Starter und die Anwendung benötigten Kommunikationscode zu speichern, wird gemäß wenigstens einem nicht-einschränkenden Aspekt des Verfahrens der Erfindung ermöglicht, dass der gemeinsam genutzte Speicherblock 24 aktualisiert wird, ohne dass dabei die Kommunikationsfähigkeit verloren geht. Auch wenn die vorstehende Beschreibung beispielhaft auf die Konfiguration von 1 Bezug nimmt, ist das Verfahren der vorliegenden Erfindung nicht auf Fahrzeug-Steuereinrichtungen oder die oben beschriebene BMS-Steuereinrichtung 16 beschränkt.
  • In Block 52 wird ein Reset ausgeführt, wenn die BMS-Steuereinrichtung 16 neu gestartet oder auf andere Weise initialisiert wird, weil der Starter neue Treiber laden, Ports identifizieren und/oder andere Funktionen ausführen muss, bevor der Betrieb der Anwendung aktiviert wird (die Funktion des Starters kann natürlich auch in Abhängigkeit von der verwendeten Steuereinrichtung und/oder Anwendung sowie von der Hardware und/oder den damit assoziierten Funktionen variieren). In Block 54 führt die CPU die Operationen des Starters in Übereinstimmung mit einem aus dem Starter-Speicherblock gelesenen Code aus.
  • In Block 56 wird das Vorhandensein des gemeinsam genutzten Codes, d. h also des in den gemeinsam genutzten Speicherblock geschriebenen Kommunikationscodes, geprüft. Wenn der gemeinsam genutzte Code erfasst wird, wird in Block 58 geprüft, ob der Anwendungscode (Code) korrekt in dem Anwendung-Speicherblock 30 gespeichert ist oder ein korrektes Upgrade-Kennwort gesetzt wurde. Der Anwendungscode kann als korrekt gespeichert betrachtet werden, wenn der gesamte mit der Anwendung assoziierte Code in den Anwendungs-Speicherblock 30 geschrieben wurde, sodass die Anwendung vollständig ausgeführt werden kann, und/oder wenn das Kennwort korrekt für eine annehmbare Verwendung des gespeicherten Codes aktualisiert wurde und dementsprechend der Code wieder verwendet werden kann, wenn er zuvor nicht unbrauchbar gemacht wurde. Die korrekt gespeicherte Anwendung kann dann in Block 62 ausgeführt werden. In Block 64 wird geprüft, ob zum Beispiel von der Master-Steuereinrichtung 20 ein Befehl zum Löschen, Upgraden oder andersartigen Ändern des Speichers empfangen wurde, um zum Beispiel den in dem gemeinsam genutzten Speicherblock 22 gespeicherten Kommunikationscode zu aktualisieren. Wenn kein derartiger Befehl empfangen wird, wird die Anwendung weiter ausgeführt.
  • Wenn ein Befehl zum Aktualisieren des Codes empfangen wird, wird der Anwendungs-Speicherblock des Speichers unbrauchbar gemacht oder als nicht in Verbindung mit einem Upgrade zu einem in Block 66 gesetzten Kennwort verwendbar gekennzeichnet. Durch das Unbrauchbarmachen wird die Anwendung außer Funktion gesetzt, sodass der Anwendungscode erneut in den Anwendungs-Speicherblock 30 geschrieben werden muss, um die Anwendung erneut funktionsfähig zu machen. In dem Kennwort-Upgrade wird einfach die mit dem Code assoziierte Bezeichnung geändert, sodass der Code später verwendet werden kann, ohne erneut geladen werden zu müssen, sofern der Code bis dahin nicht überschrieben wurde. In Block 68 wird ein Reset oder eine Rückkehr zu Block 52 implementiert. Danach wird zu Block 56 zurückgekehrt, in dem erneut geprüft wird, ob der gemeinsam genutzte Code korrekt in dem gemeinsam genutzten Speicherblock 22 gespeichert ist. Sofern kein Fehler zu einer Störung des gemeinsam genutzten Codes geführt hat, sollte der gemeinsam genutzte Code korrekt gespeichert sein und wird der Anwendungscode erneut in Block 58 geprüft.
  • Bei einem Unbrauchbarmachen wird der Anwendungscode nicht korrekt gespeichert und wird in Block 74 ein Bootloader ausgeführt. Optional kann der Bootloaer betrieben werden, ohne den Code unbrauchbar zu machen, etwa indem ein Zugriffscode oder eine andere Autorisierungsoption gesetzt wird. Zum Beispiel kann der Bootloader das Aktualisieren des gemeinsam genutzten Codes durch Kommunikationen mit einem autorisierten Master bestätigen. Der Bootloader kann eine Operation oder Reihe von Ereignissen sein, die in Übereinstimmung mit einem entsprechenden in dem Starter-Speicherblock 28 gespeicherten Code implementiert werden. Wenn der in dem Block 64 registrierte Befehl durch die Master-Steuereinrichtung 20 gesendet wurde, um den Kommunikationscode des gemeinsam genutzten Speicherblocks 22 zu aktualisieren, beginnt der Bootloader damit, einen neuen Kommunikationscode zu empfangen, damit dieser anstelle des alten Kommunikationscodes in Block 76 geladen wird. Anstatt den neuen Kommunikationscode direkt in dem gemeinsam genutzten Speicherblock 22 zu speichern, erfordert der Block 78, dass der neue Kommunikationscode in dem Anwendungs-Speicherblock gespeichert wird.
  • Der neue Kommunikationscode kann an einer temporären Speicherposition oder einem Block des Anwendungs-Speicherblocks 30 gespeichert werden. Optional kann Code zum Kopieren des neuen Kommunikationscodes von dem temporären Speicherblock 30 zu dem gemeinsam genutzten Block 24 in dem heruntergeladenen Code enthalten sein. Der temporäre Speicherblock kann einer Position des Anwendungs-Speicherblocks 30 entsprechen, die in Block 66 unbrauchbar gemacht wurde. Optional kann ein Teil des Anwendungs-Speicherblocks 30 mit einer dem temporären Block entsprechenden Größe unbrauchbar gemacht werden, anstatt den gesamten Anwendungs-Speicherblock unbrauchbar zu machen. Durch ein derartiges teilweises Unbrauchbarmachen kann die für das erneute Laden des Anwendungscodes in den Anwendungs-Speicherblock 30 benötigte Zeitdauer verkürzt werden, weil die erneut zu ladenden Teile auf die dem temporären Speicherblock entsprechenden Teile beschränkt werden können. In Block 80 wird bestimmt, ob der neue Kommunikationscode weiterhin von der Master-Steuereinrichtung 20 und/oder von einer anderen mit dem Fahrzeugbus 18 verbundenen oder mit der BMS-Steuereinrichtung kommunizierenden Steuereinrichtung empfangen wird.
  • Nachdem der gesamte neue Kommunikationscode empfangen wurde, wird in Block 82 geprüft, ob der in dem temporären Speicherblock gespeicherte neue Kommunikationscode gültig ist. Die Gültigkeit des neuen Kommunikationscodes kann zum Beispiel durch eine Prüfsummenoperation geprüft werden, in der eine Prüfsumme des neuen Kommunikationscodes mit einem gewünschten Prüfsummenwert verglichen und als gültig bestimmt wird, wenn die Werte übereinstimmen. Diese Prüfung kann auf der Versionsnummer des neuen Kommunikationscodes beruhen, wobei der gemeinsam genutzte Code nur überschrieben werden kann, wenn die Versionsnummer größer als die aktuelle Versionsnummer ist. Optional kann die Prüfung das Vergleichen eines Kennworts oder einer Quellenangabe umfassen, um sicherzustellen, dass der über den vorhandenen gemeinsam genutzten Code zu schreibende Code durch die Partei autorisiert wurde, die für das Schreiben des bestehenden Kommunikationscodes in den gemeinsam genutzten Speicherblock 22 verantwortlich ist. Wenn der Code nicht gültig ist, wird der Code in Block 84 abgelehnt und wird der Prozess wiederholt. Wenn der Code gültig ist, wird mit Block 88 fortgeschritten, in dem geprüft wird, ob der neue Code in den gemeinsam genutzten Speicherblock 22 kopiert werden soll.
  • Wenn ein Schreiben des neuen Codes in den gemeinsam genutzten Speicherblock 22 autorisiert wird, wird in Block 90 ein Wartebefehl zu der Master-Steuereinrichtung 20 und/oder der/den anderen Steuereinrichtung(en) kommuniziert. Die Wartemeldung gibt an, dass die BMS-Steuereinrichtung 16 keine Anforderungen verarbeiten kann, bis der neue Kommunikationscode in den gemeinsam genutzten Speicherblock 20 kopiert wurde. Das Kopieren des neuen Codes in den gemeinsam genutzten Speicherblock 22 wird in Block 92 durchgeführt und entspricht dem Kopieren des Codes von dem temporären Speicherblock über den derzeit in dem gemeinsam genutzten Speicherblock 22 gespeicherten Code. Weil der gemeinsam genutzte Speichercode während der Kopieroperation geschrieben wird, können die Kommunikation oder die anderen durch den gemeinsam genutzten Speicherblock 22 unterstützten Operationen während des Kopierens nicht ausgeführt werden. Deshalb werden die Wartebefehle in Übereinstimmung mit dem in dem temporären Speicherblock gespeicherten Kommunikationscode ausgegeben. Die Wartemeldungen können mit regelmäßigen Intervallen ausgegeben werden und/oder können eine bis zum Abschluss des Kopierens erwartete Zeitperiode angeben.
  • Sobald die Kopieroperation abgeschlossen ist, kehrt die Steuerung der Kommunikationsoperationen in Block 94 zu dem in dem gemeinsam genutzten Speicherblock 22 gespeicherten Code zurück und schreibt dann in Block 96 einen Anwendungscode zurück in den Awendungs-Speicherblock. Optional kann eine Fertigmeldung zu der Master-Steuereinrichtung gegeben werden, nachdem das Kopieren des gemeinsam genutzten Codes abgeschlossen ist. Die Master-Steuereinrichtung kann den Anwendungscode bereitstellen, wobei es sich um denselben oder einen neuen Anwendungscode handeln kann und optional auch nur ein Teil des Anwendungscodes in Entsprechung zu dem temporären Speicherblock ersetzt werden kann. Der Block 98 überwacht, ob der Anwendungscode weiterhin empfangen und/oder in den Anwendungs-Speicherblock geschrieben wird, bevor in Block 100 ein Reset implementiert wird.
  • In Block 56 wird erneut geprüft, ob der gemeinsam genutzte Speichercode korrekt in dem gemeinsam genutzten Speicherblock gespeichert wurde. Nach dem Kopieren von Block 92 wird diese Prüfung in Bezug auf den neu geschriebenen Kommunikationscode vorgenommen. Falls ein Fehler aufgetreten ist und der neue Code falsch in den gemeinsam genutzten Speicherblock 22 geschrieben wurde oder ein anderes Ereignis zu einem Reset geführt hat, wird in Block 102 geprüft, ob der neue Kommunikationscode korrekt in dem temporären Speicherblock gespeichert wurde. Wenn der Reset vor dem Schreiben der Anwendungsdaten in Block 96 aufgetreten ist, kann der neue Kommunikationscode korrekt in dem temporären Speicherblock gespeichert werden und kann ein weiterer Versuch zum Kopieren des Kommunikationscodes aus dem temporären Speicherblock zu dem gemeinsam genutzten Speicherblock in Block 104 durchgeführt werden. Wenn der temporäre Speicherblock keine korrekte Kopie des gemeinsam genutzten Codes enthält, weil aus einem anderen Grund ein Fehler aufgetreten ist, oder nach Block 96, kann in Block 106 ein Notfahrbetrieb implementiert werden. Der Notfahrbetrieb kann in einer Fahrzeugumgebung automatisch einen gewissen Umfang an Standardfunktionen implementieren, um den Fahrzeugbetrieb in einem eingeschränkten Umfang fortzuführen.
  • Wie weiter oben beschrieben, betrifft ein nicht-einschränkender Aspekt der vorliegenden Erfindung eine Verminderung der Gesamtgröße des nicht-flüchtigen Speichers für ECU-Einrichtungen, die einen gemeinsam genutzten Speicher verwenden, sodass der Kommunikationscode aktualisiert werden kann, ohne dass die Programmierstrategie verkompliziert wird oder die Programmierzeit verlängert wird, und ein korrekter Upgrade der Kommunikationssoftware sichergestellt werden kann (nur neue Version und nur validierte Version). Gemäß einem nicht-einschränkenden Aspekt der vorliegenden Erfindung wird eine Möglichkeit zum Programmieren einer ECU über einen Kommunikationskanal vorgesehen. Das bedeutet, dass auch eine Kommunikationssoftware in dem Bootloader implementiert werden muss.
  • Vorstehend wurden verschiedene Ausführungsformen der vorliegenden Erfindung beschrieben, wobei jedoch zu beachten ist, das die hier beschriebenen Ausführungsformen lediglich beispielhaft für die Erfindung sind, die auch auf andere Weise realisiert werden kann. Die Figuren sind nicht notwendigerweise maßstabsgetreu, wobei einige Teile vergrößert oder verkleinert dargestellt sein können, um die Details bestimmter Komponenten zu verdeutlichen. Die hier beschriebenen Details des Aufbaus und der Funktion sind also nicht einschränkend, sondern lediglich als repräsentative Basis für die Ansprüche und/oder als repräsentative Basis für den Fachmann, der die vorliegende Erfindung realisieren möchte, zu verstehen. Die Merkmale der verschiedenen Ausführungsformen können miteinander kombiniert werden, um weitere Ausführungsformen der Erfindung zu bilden.
  • Es wurden verschiedene beispielhafte Ausführungsformen beschrieben, wobei die Erfindung jedoch nicht auf die hier beschriebenen Ausführungsformen beschränkt ist. Die Beschreibung ist beispielhaft und nicht einschränkend aufzufassen, wobei verschiedene Änderungen an den beschriebenen Ausführungsformen vorgenommen werden können, ohne dass deshalb der Erfindungsumfang verlassen wird. Weiterhin können die Merkmale der verschiedenen Ausführungsformen miteinander kombiniert werden, um weitere Ausführungsformen der Erfindung zu bilden.

Claims (20)

  1. Verfahren zum Aktualisieren eines derzeit geschriebenen Kommunikationscodes durch einen neuen Kommunikationscode für die Verwendung mit einem Batterieüberwachungssystem (BMS) einschließlich einer Anwendung, die betrieben werden kann, um den Stromfluss zu einer Fahrzeugbatterie zu messen, und eines Starters, der betrieben werden kann, um durch die Anwendung verwendete Treiber zu aktivieren, wobei der Starter und die Anwendung Kommunikationsfunktionen in Übereinstimmung mit einem in einen gemeinsam genutzten Speicherblock geschriebenen Kommunikationscode implementieren, wobei das Verfahren umfasst: Schreiben des neuen Kommunikationscodes in einen Anwendungs-Speicherblock, der einen Anwendungscode zum Ausführen der Anwendung enthält, wobei die Anwendung nicht betrieben werden kann, während der neue Kommunikationscode in den Anwendungs-Speicherblock geschrieben wird, Ausführen von Kommunikationen auf der Basis des zuvor in den gemeinsam genutzten Speicherblock geschriebenen Kommunikationscodes, während der neue Kommunikationscode in den Anwendungs-Speicherblock geschrieben wird, Kopieren des neuen Kommunikationscodes aus dem Anwendungs-Speicherblock in den gemeinsam genutzten Speicherblock, wobei die durch den in den gemeinsam genutzten Speicherblock geschriebenen Code unterstützten Kommunikationen nicht ausgeführt werden können, während der neue Kommunikationscode in den gemeinsam genutzten Speicherblock geschrieben wird, Ausführen von Kommunikationen auf der Basis des in den Anwendungs-Speicherblock geschriebenen neuen Kommunikationscodes, während der neue Kommunikationscode in den gemeinsam genutzten Speicherblock kopiert wird, und danach Ausführen von weiteren Kommunikationen auf der Basis des in den gemeinsam genutzten Speicherblock geschriebenen neuen Kommunikationscodes, und Schreiben des Anwendungscodes in den Anwendungs-Speicherblock, nachdem das Kopieren des neuen Kommunikationscodes in den gemeinsam genutzten Speicherblock abgeschlossen ist, wobei die Anwendung betrieben werden kann, nachdem der Anwendungscode vollständig in den Anwendungs-Speicherblock geschrieben wurde.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der neue Kommunikationscode überschrieben wird, wenn der Anwendungscode in den Anwendungs-Speicherblock geschrieben wird.
  3. Verfahren nach Anspruch 1, weiterhin gekennzeichnet durch das Empfangen des in den Anwendungs-Speicherblock zu schreibenden neuen Kommunikationscodes durch Kommunikationen, die auf der Basis des derzeit in den ersten Speicher geschriebenen Kommunikationscodes ausgeführt werden.
  4. Verfahren nach Anspruch 1, weiterhin gekennzeichnet durch das Validieren des in den Anwendungs-Speicherblock geschriebenen neuen Kommunikationscodes durch eine Prüfsummen-Operation vor dem Kopieren des neuen Kommunikationscodes in den gemeinsam genutzten Speicherblock.
  5. Verfahren nach Anspruch 1, weiterhin gekennzeichnet durch das Prüfen, ob eine dem neuen Kommunikationscode zugewiesene Versionsnummer ein autorisiertes Update zu einer dem derzeit geschriebenen Kommunikationscode zugewiesenen Versionsnummer ist, bevor der neue Kommunikationscode in den gemeinsam genutzten Speicherblock geschrieben wird.
  6. Verfahren nach Anspruch 1, weiterhin gekennzeichnet durch das periodische Ausgeben eines Befehls, der einen Wartestatus angibt, während der neue Kommunikationscode aus dem Anwendungs-Speicherblock zu dem gemeinsam genutzten Speicherblock kopiert wird.
  7. Steuereinrichtung, die umfasst: eine CPU (34), die betrieben werden kann, um einen Code auszuführen und dadurch Operationen der Steuereinrichtung (16) in Übereinstimmung mit Befehlen zu ermöglichen, die gelesenen werden aus: (i) einem Starter-Speicherblock (28), in dem ein Code für die Ausführung eines Starters gespeichert ist, (ii) einem Anwendungs-Speicherblock (30), in dem ein Code für die Ausführung einer Anwendung gespeichert ist, (iii) einem gemeinsam genutzten Speicherblock (24), in dem ein gemeinsam durch den Starter und die Anwendung genutzter Kommunikationscode gespeichert ist.
  8. Steuereinrichtung nach Anspruch 7, dadurch gekennzeichnet, dass der gemeinsam genutzte Speicherblock (24) den Code speichert, der durch den Starter und die Anwendung benötigt wird, um eine Kommunikation zu ermöglichen, in der Daten über ein Fahrzeug-Netzwerk (18) mit einer damit verbundenen Master- und/oder Fahrzeug-Steuereinrichtung (20) ausgetauscht werden.
  9. Steuereinrichtung nach Anspruch 8, dadurch gekennzeichnet, dass der Starter betrieben werden kann, um einen Bootloader auszuführen, der eine Aktualisierung des gemeinsam genutzten Speicherblocks (24) ohne eine Unterbrechung der Kommunikation ermöglicht.
  10. Steuereinrichtung nach Anspruch 9, dadurch gekennzeichnet, dass der Bootloader betrieben werden kann, um eine Aktualisierung eines in dem gemeinsam genutzten Teil gespeicherten ersten Codesatzes durch einen zweiten Codesatz zu bewerkstelligen und um den zweiten Codesatz zu einem temporären Teil des Anwendungs-Speicherblocks (30) zu schreiben, bevor er in den gemeinsam genutzten Speicherblock (24) kopiert wird.
  11. Steuereinrichtung nach Anspruch 10, dadurch gekennzeichnet, dass der Bootloader weiterhin betrieben werden kann, um Kommunikationen in Übereinstimmung mit dem in dem Anwendungs-Speicherblock (30) gespeicherten zweiten Codesatz auszuführen, während der zweite Codesatz aus dem Anwendungs-Speicherblock (30) zu dem gemeinsam genutzten Teil des Starter-Speicherblocks (28) kopiert wird.
  12. Steuereinrichtung nach Anspruch 11, dadurch gekennzeichnet, dass wenigstens ein Teil der Kommunikationen, die ausgeführt werden, während der zweite Codesatz in den gemeinsam genutzten Teil kopiert wird, das periodische Senden einer Meldung, die einen Wartestatus angibt, an einen Master umfasst.
  13. Steuereinrichtung nach Anspruch 10, dadurch gekennzeichnet, dass die Anwendung nicht weiter betrieben werden kann, sobald mit dem Schreiben des zweiten Codesatzes in den Anwendungs-Speicherblock (30) begonnen wird.
  14. Steuereinrichtung nach Anspruch 10, dadurch gekennzeichnet, dass der Bootloader weiterhin betrieben werden kann, um einen mit der Anwendung assoziierten Code über den in dem Anwendungs-Speicherblock (30) gespeicherten zweiten Codesatz zu schreiben, nachdem das Kopieren des zweiten Codesatzes zu dem gemeinsam genutzten Teil des Starter-Speicherblocks (28) abgeschlossen ist.
  15. Steuereinrichtung nach Anspruch 10, dadurch gekennzeichnet, dass der Bootloader weiterhin betrieben werden kann, um ein Kopieren des zweiten Codesatzes in den gemeinsam genutzten Speicherblock (24) zu verhindern, wenn eine Prüfsumme des zweiten Codesatzes nicht mit einem Prüfsummenwert übereinstimmt.
  16. Steuereinrichtung nach Anspruch 7, dadurch gekennzeichnet, dass der gemeinsam genutzte Speicherblock (24) an einer fixen Position in dem Starter-Speicherblock (28) gespeichert wird.
  17. Verfahren zum Aktualisieren eines gemeinsam genutzten Speicherblocks, das verwendet wird, um einen gemeinsam genutzten Code an einer fixen Speicherposition zu speichern, um Kommunikationen eines ersten Programms und eines zweiten Programms zu unterstützen, wobei das Verfahren umfasst: Schreiben des gemeinsam genutzten Codes in einen temporären Speicherblock, der dem ersten oder dem zweiten Programm zugewiesen ist, wobei das erste oder das zweite Programm nicht betrieben werden kann, während der neue gemeinsam genutzte Code in dem temporären Speicherblock gespeichert wird, Kopieren des neuen gemeinsam genutzten Codes aus dem temporären Speicherblock in den gemeinsam genutzten Speicherblock, und Ausführen der gemeinsam genutzten Funktionen in Übereinstimmung mit dem in dem temporären Speicherblock gespeicherten neuen gemeinsam genutzten Code, während der neue gemeinsam genutzte Code zu dem gemeinsam genutzten Speicherblock kopiert wird.
  18. Verfahren nach Anspruch 17, weiterhin gekennzeichnet durch das Ausführen wenigstens eines Teils der gemeinsam genutzten Funktionen, während der neue gemeinsam genutzte Code zu dem gemeinsam genutzten Speicherblock kopiert wird, einschließlich des periodischen Sendens einer Meldung, die einen Wartestatus angibt, zu einem Client.
  19. Verfahren nach Anspruch 17, weiterhin gekennzeichnet durch das Verhindern des Kopierens des neuen gemeinsam genutzten Codes zu dem gemeinsam genutzten Speicherblock, wenn die Prüfsumme des in dem temporären Speicherblock gespeicherten gemeinsam genutzten Codes nicht einem Prüfsummenwert entspricht.
  20. Verfahren nach Anspruch 17, weiterhin gekennzeichnet durch das Schreiben eines Codes, der mit einem der nicht betreibbar werdenden Programme assoziiert ist, über den in dem temporären Speicherblock geschriebenen neuen gemeinsam genutzten Code, nachdem das Kopieren des neuen gemeinsam genutzten Codes zu dem gemeinsam genutzten Speicherblock abgeschlossen ist, woraufhin das eine Programm wieder betrieben werden kann.
DE102011075776A 2010-06-09 2011-05-13 Verfahren und System zum Aktualisieren eines gemeinsam genutzten Speichers Withdrawn DE102011075776A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/796,774 2010-06-09
US12/796,774 US8539472B2 (en) 2010-06-09 2010-06-09 Method and system of updating shared memory

Publications (1)

Publication Number Publication Date
DE102011075776A1 true DE102011075776A1 (de) 2011-12-15

Family

ID=45020206

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011075776A Withdrawn DE102011075776A1 (de) 2010-06-09 2011-05-13 Verfahren und System zum Aktualisieren eines gemeinsam genutzten Speichers

Country Status (3)

Country Link
US (1) US8539472B2 (de)
CN (1) CN102279807B (de)
DE (1) DE102011075776A1 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9513906B2 (en) 2013-01-23 2016-12-06 International Business Machines Corporation Vector checksum instruction
US9715385B2 (en) 2013-01-23 2017-07-25 International Business Machines Corporation Vector exception code
US9778932B2 (en) 2013-01-23 2017-10-03 International Business Machines Corporation Vector generate mask instruction
US9823924B2 (en) 2013-01-23 2017-11-21 International Business Machines Corporation Vector element rotate and insert under mask instruction
US9471308B2 (en) 2013-01-23 2016-10-18 International Business Machines Corporation Vector floating point test data class immediate instruction
US9804840B2 (en) 2013-01-23 2017-10-31 International Business Machines Corporation Vector Galois Field Multiply Sum and Accumulate instruction
WO2015065429A1 (en) * 2013-10-31 2015-05-07 Hewlett-Packard Development Company, L.P. Copy-on-write update-triggered consistency
KR101635665B1 (ko) * 2013-10-31 2016-07-01 주식회사 엘지화학 응용 모듈 데이터제어장치 및 그 데이터제어방법
US10185551B2 (en) * 2014-07-02 2019-01-22 Hewlett-Packard Development Company, L.P. Firmware update
US9841970B2 (en) * 2015-01-13 2017-12-12 Ford Global Technologies, Llc Vehicle control update methods and systems
US20160378151A1 (en) * 2015-06-26 2016-12-29 Intel Corporation Rack scale architecture (rsa) and shared memory controller (smc) techniques of fast zeroing
GB2540961B (en) * 2015-07-31 2019-09-18 Arm Ip Ltd Controlling configuration data storage
US10176110B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Marking storage keys to indicate memory used to back address translation structures
DE102019202681A1 (de) * 2018-03-29 2019-10-02 Robert Bosch Gmbh Steuergerät
KR102324263B1 (ko) * 2018-09-12 2021-11-08 주식회사 엘지에너지솔루션 비휘발성 메모리 업데이트 장치 및 방법
CN110609697A (zh) * 2019-09-18 2019-12-24 上海元城汽车技术有限公司 电池管理系统的升级方法、装置和电池管理系统
CN112540781A (zh) * 2020-12-15 2021-03-23 东莞新能安科技有限公司 电池管理系统的软件升级方法、用电设备以及存储介质

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320203A (ja) 1997-05-22 1998-12-04 Meidensha Corp 共有メモリシステム
US6407949B1 (en) 1999-12-17 2002-06-18 Qualcomm, Incorporated Mobile communication device having integrated embedded flash and SRAM memory
US6636963B1 (en) 1999-12-30 2003-10-21 Cardiac Pacemakers, Inc. Quick starting for microprocessor-based system by retrieving a target state memory image and a target state data structure from an image storage medium
US20020013822A1 (en) 2000-07-26 2002-01-31 West Karlon K. Shared as needed programming model
US6829769B2 (en) 2000-10-04 2004-12-07 Microsoft Corporation High performance interprocess communication
US6801994B2 (en) * 2000-12-20 2004-10-05 Microsoft Corporation Software management systems and methods for automotive computing devices
FR2820221B1 (fr) 2001-02-01 2004-08-20 Cimai Technology Procede et systeme pour gerer des executables a bibliotheques partagees
US7093244B2 (en) * 2001-04-18 2006-08-15 Domosys Corporation Method of remotely upgrading firmware in field-deployed devices
JP4162401B2 (ja) 2001-12-18 2008-10-08 富士通株式会社 携帯端末装置および間欠受信方法
US7100011B2 (en) * 2002-03-01 2006-08-29 Arris International, Inc. Method and system for reducing storage requirements for program code in a communication device
US20040034861A1 (en) * 2002-08-19 2004-02-19 Ballai Philip N. System and method for automating firmware maintenance
US6836657B2 (en) * 2002-11-12 2004-12-28 Innopath Software, Inc. Upgrading of electronic files including automatic recovery from failures and errors occurring during the upgrade
US7480907B1 (en) * 2003-01-09 2009-01-20 Hewlett-Packard Development Company, L.P. Mobile services network for update of firmware/software in mobile handsets
US7117482B2 (en) * 2003-03-26 2006-10-03 Sony Corporation Migration of configuration data from one software installation through an upgrade
US7555657B2 (en) * 2003-03-28 2009-06-30 Ricoh Company, Ltd. Communication device, software update device, software update system, software update method, and program
US20040237081A1 (en) * 2003-05-19 2004-11-25 Homiller Daniel P. Methods and apparatus for generating upgraded software from initial software and software upgrade packages
US7185191B2 (en) * 2004-05-05 2007-02-27 International Business Machines Corporation Updatable firmware having boot and/or communication redundancy
US7409569B2 (en) 2004-06-08 2008-08-05 Dartdevices Corporation System and method for application driven power management among intermittently coupled interoperable electronic devices
US7249235B2 (en) 2004-06-21 2007-07-24 Oracle International Corporation Architecture for a scalable and user-extensible heap dump analysis tool
US20060259207A1 (en) * 2005-04-20 2006-11-16 Denso Corporation Electronic control system for automobile
US7493460B2 (en) 2005-09-07 2009-02-17 Intel Corporation Preboot memory of a computer system
US8079037B2 (en) 2005-10-11 2011-12-13 Knoa Software, Inc. Generic, multi-instance method and GUI detection system for tracking and monitoring computer applications
US7395263B2 (en) 2005-10-12 2008-07-01 International Business Machines Corporation Realtime-safe read copy update with lock-free readers
US7954094B2 (en) 2006-03-27 2011-05-31 International Business Machines Corporation Method for improving performance of executable code
US8146066B2 (en) 2006-06-20 2012-03-27 Google Inc. Systems and methods for caching compute kernels for an application running on a parallel-processing computer system
US7913236B2 (en) 2006-09-29 2011-03-22 Intel Corporation Method and apparatus for performing dynamic optimization for software transactional memory
US8037460B2 (en) 2007-01-26 2011-10-11 Oracle International Corporation Code persistence and dependency management for dynamic compilation in a database management system
CN101295274B (zh) * 2007-04-29 2011-03-23 国际商业机器公司 用于降低共享存储器的数据讹误的方法和设备
US7769505B2 (en) 2007-05-03 2010-08-03 Gm Global Technology Operations, Inc. Method of operating a plug-in hybrid electric vehicle
US8321637B2 (en) * 2007-05-14 2012-11-27 International Business Machines Corporation Computing system with optimized support for transactional memory
US7671567B2 (en) * 2007-06-15 2010-03-02 Tesla Motors, Inc. Multi-mode charging system for an electric vehicle
GB2463829B (en) 2007-07-17 2012-11-21 Midtronics Inc Battery tester for electric vehicle
CN100583049C (zh) * 2007-11-29 2010-01-20 上海华为技术有限公司 多核处理器共享代码段补丁方法及装置
US8140204B2 (en) 2007-12-10 2012-03-20 Ford Global Technologies, Llc Charge depleting energy management strategy for plug-in hybrid electric vehicles
GB0808575D0 (en) 2008-05-12 2008-06-18 Xmos Ltd Compilign and linking
US20090300595A1 (en) * 2008-05-30 2009-12-03 Ise Corporation System and Method for Remotely Updating Control Software in a Vehicle With an Electric Drive System
US8321850B2 (en) 2008-06-06 2012-11-27 Vmware, Inc. Sharing and persisting code caches
JP5159466B2 (ja) * 2008-06-24 2013-03-06 キヤノン株式会社 画像処理装置、その制御方法、プログラム及び記憶媒体
US8305034B2 (en) * 2008-07-23 2012-11-06 Lear Corporation Battery monitoring system
US8543270B2 (en) 2010-08-10 2013-09-24 Tesla Motors, Inc. Efficient dual source battery pack system for an electric vehicle

Also Published As

Publication number Publication date
US20110307668A1 (en) 2011-12-15
CN102279807A (zh) 2011-12-14
CN102279807B (zh) 2015-01-14
US8539472B2 (en) 2013-09-17

Similar Documents

Publication Publication Date Title
DE102011075776A1 (de) Verfahren und System zum Aktualisieren eines gemeinsam genutzten Speichers
DE102019109672A1 (de) Rückgängigmachung nach einem teilausfall in mehreren elektronischen steuergeräten mittels over-the-air-updates
DE102015221330A1 (de) Verfahren und Vorrichtung zum robusten Aktualisieren von Firmware eines Fahrzeuges über eine Luftschnittstelle
DE102015112040A1 (de) Verfahren und System zur Firmware-Aktualisierung einer Steuereinrichtung zur Prozesssteuerung
DE112016000992T5 (de) Programmneuschreibvorrichtung und programmneuschreibverfahren
DE4332499A1 (de) Verfahren zur vollständigen Neuprogrammierung eines löschbaren, nichtflüchtigen Speichers
WO2013000854A1 (de) Fahrzeugeinheit und verfahren zum betreiben der fahrzeugeinheit
DE102012109617A1 (de) Verfahren zum Ersetzen eines öffentlichen Schlüssels eines Bootloaders
DE102010043011A1 (de) Parallele Programmierung und Aktualisierung von Gebäudetechnik-Busteilnehmern
EP1639603A2 (de) Verfahren zur durchführung eines software-updates eines elektronischen steuergerätes durch eine flash-programmierung über eine serielle schnittstelle und ein entsprechender zustandsautomat
WO2013171122A2 (de) Funktional erweiterbares fahrzeugsteuergerät und verfahren zum ergänzen der funktionalität eines fahrzeugsteuergeräts
EP3128383B1 (de) Feldgerät
DE102016201279A1 (de) Verfahren und Vorrichtung zum Überwachen einer Aktualisierung eines Fahrzeuges
EP3353650B1 (de) System und verfahren zur verteilung und/oder aktualisierung von software in vernetzten steuereinrichtungen eines fahrzeugs
WO2017125181A1 (de) Verfahren zum aktualisieren von software eines steuergerätes, vorzugsweise für ein kraftfahrzeug
DE102015207795A1 (de) Verfahren und Vorrichtung zum Aktualisieren von Software in einem Transportmittel
DE102017125172A1 (de) Verfahren zur Aktualisierung eines Bootloaders eines Controllers einer Leuchte
DE102022110251A1 (de) Ota-master, center, system, verfahren, nicht-transitorisches speichermedium und fahrzeug
DE102022104321A1 (de) Center, aktualisierungsmanagementverfahren und nicht-transitorisches speichermedium
DE102022113922A1 (de) Ota-master, system, verfahren, nicht-transitorisches speichermedium und fahrzeug
WO2020099023A2 (de) Steuergerät für eine fahrzeugkomponente, kit umfassend ein steuergerät und eine testereinrichtung, fahrzeug, verfahren zum aktualisieren eines steuergeräts und computerlesbares speichermedium
DE102012217312B4 (de) Verfahren und System zur Aktualisierung von Code in Verarbeitungssystemen
DE102019214922A1 (de) Konfigurationsverfahren für eine Eisenbahnsignalanlage und Aktualisierungssystem
DE112019004272T5 (de) Installieren von anwendungsprogrammcode auf einem fahrzeugsteuerungssystem
DE102019106796A1 (de) Verfahren und System zur unterbrechungsfreien Verteilung und/oder Änderung von Software in vernetzten Steuereinrichtungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee