DE102011075776A1 - Verfahren und System zum Aktualisieren eines gemeinsam genutzten Speichers - Google Patents
Verfahren und System zum Aktualisieren eines gemeinsam genutzten Speichers Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software 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-Steuersystem10 gemäß einem nicht-einschränkenden Aspekt der vorliegenden Erfindung. Das Fahrzeug-Steuersystem10 kann in einem Fahrzeug (nicht gezeigt) enthalten sein, das eine Anzahl von Fahrzeug-Subsystemen (nicht gezeigt) umfasst, die durch eine oder mehrere Fahrzeug-Subsystem-Steuereinrichtungen12 ,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-Steuereinrichtung20 über einen Fahrzeugbus18 übertragen werden. Das hier beschriebene Fahrzeug-Steuersystem10 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 Speicherblock24 periodisch zu aktualisieren. Die Fahrzeug-Umgebung ist weiterhin eine Umgebung, in der die Steuereinrichtungen12 ,14 ,16 unter Umständen über einen Kommunikationsbus18 und/oder drahtlos mit anderen Steuereinrichtungen12 ,14 ,16 kommunizieren. In der beispielhaften Umgebung ist die Steuereinrichtung16 eine Batterieüberwachungssystem(BMS)-Steuereinrichtung16 . Die BMS-Steuereinrichtung16 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 Speicher22 der BMS-Steuereinrichtung16 einen Starter-Speicherblock28 und einen Anwendungs-Speicherblock30 . Obwohl hier nicht gezeigt, kann der Speicher22 ein nicht-flüchtiger Speicher wie etwa ein RAM sein, der in Verbindung mit dem Starter, der Anwendung und den gemeinsam genutzten Speicherblöcken24 ,28 ,30 , die flüchtig oder nicht-flüchtig sein können, verwendet werden kann. Der Anwendungs-Speicherblock30 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-Speicherblock28 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 Treiber32 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 CPU34 . Die CPU34 kann konfiguriert sein, um Operationen in Übereinstimmung mit aus dem Speicher22 gelesenen Befehlen auszuführen, wobei die Operationen zum Beispiel mit dem Starter und der Anwendung assoziiert sind. Die CPU34 kann auch konfiguriert sein, um Code in den Speicher22 zu schreiben, und unterstützt auf diese Weise die weiter unten ausführlicher beschriebenen Operationen. Die CPU34 interagiert mit den Treibern32 , 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 Steuereinrichtungen12 ,14 über den Fahrzeugbus18 zu interagieren. - Die zwischen der BMS-Steuereinrichtung
16 und einer oder mehreren der anderen Steuereinrichtungen12 ,14 ausgeführten Kommunikationen können in Übereinstimmung mit einem in dem gemeinsam genutzten Speicherblock24 gespeicherten Kommunikationscode angewiesen und/oder ausgeführt werden. Der Kommunikationscode kann in dem gemeinsam genutzten Speicherblock24 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 Speicher24 durch andere in der BMS-Steuereinrichtung16 ausgeführte Anwendungen und/oder Funktionen verwendet werden). Die Verwendung des gemeinsam genutzten Speichers24 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 Flussdiagramm50 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 Speicherblock24 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 Speicherblock24 aktualisiert wird, ohne dass dabei die Kommunikationsfähigkeit verloren geht. Auch wenn die vorstehende Beschreibung beispielhaft auf die Konfiguration von1 Bezug nimmt, ist das Verfahren der vorliegenden Erfindung nicht auf Fahrzeug-Steuereinrichtungen oder die oben beschriebene BMS-Steuereinrichtung16 beschränkt. - In Block
52 wird ein Reset ausgeführt, wenn die BMS-Steuereinrichtung16 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 Block54 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 Block58 geprüft, ob der Anwendungscode (Code) korrekt in dem Anwendung-Speicherblock30 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-Speicherblock30 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 Block62 ausgeführt werden. In Block64 wird geprüft, ob zum Beispiel von der Master-Steuereinrichtung20 ein Befehl zum Löschen, Upgraden oder andersartigen Ändern des Speichers empfangen wurde, um zum Beispiel den in dem gemeinsam genutzten Speicherblock22 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-Speicherblock30 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 Block68 wird ein Reset oder eine Rückkehr zu Block52 implementiert. Danach wird zu Block56 zurückgekehrt, in dem erneut geprüft wird, ob der gemeinsam genutzte Code korrekt in dem gemeinsam genutzten Speicherblock22 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 Block58 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-Speicherblock28 gespeicherten Code implementiert werden. Wenn der in dem Block64 registrierte Befehl durch die Master-Steuereinrichtung20 gesendet wurde, um den Kommunikationscode des gemeinsam genutzten Speicherblocks22 zu aktualisieren, beginnt der Bootloader damit, einen neuen Kommunikationscode zu empfangen, damit dieser anstelle des alten Kommunikationscodes in Block76 geladen wird. Anstatt den neuen Kommunikationscode direkt in dem gemeinsam genutzten Speicherblock22 zu speichern, erfordert der Block78 , 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 Speicherblock30 zu dem gemeinsam genutzten Block24 in dem heruntergeladenen Code enthalten sein. Der temporäre Speicherblock kann einer Position des Anwendungs-Speicherblocks30 entsprechen, die in Block66 unbrauchbar gemacht wurde. Optional kann ein Teil des Anwendungs-Speicherblocks30 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-Speicherblock30 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 Block80 wird bestimmt, ob der neue Kommunikationscode weiterhin von der Master-Steuereinrichtung20 und/oder von einer anderen mit dem Fahrzeugbus18 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 Speicherblock22 verantwortlich ist. Wenn der Code nicht gültig ist, wird der Code in Block84 abgelehnt und wird der Prozess wiederholt. Wenn der Code gültig ist, wird mit Block88 fortgeschritten, in dem geprüft wird, ob der neue Code in den gemeinsam genutzten Speicherblock22 kopiert werden soll. - Wenn ein Schreiben des neuen Codes in den gemeinsam genutzten Speicherblock
22 autorisiert wird, wird in Block90 ein Wartebefehl zu der Master-Steuereinrichtung20 und/oder der/den anderen Steuereinrichtung(en) kommuniziert. Die Wartemeldung gibt an, dass die BMS-Steuereinrichtung16 keine Anforderungen verarbeiten kann, bis der neue Kommunikationscode in den gemeinsam genutzten Speicherblock20 kopiert wurde. Das Kopieren des neuen Codes in den gemeinsam genutzten Speicherblock22 wird in Block92 durchgeführt und entspricht dem Kopieren des Codes von dem temporären Speicherblock über den derzeit in dem gemeinsam genutzten Speicherblock22 gespeicherten Code. Weil der gemeinsam genutzte Speichercode während der Kopieroperation geschrieben wird, können die Kommunikation oder die anderen durch den gemeinsam genutzten Speicherblock22 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 Speicherblock22 gespeicherten Code zurück und schreibt dann in Block96 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 Block98 überwacht, ob der Anwendungscode weiterhin empfangen und/oder in den Anwendungs-Speicherblock geschrieben wird, bevor in Block100 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 Block92 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 Speicherblock22 geschrieben wurde oder ein anderes Ereignis zu einem Reset geführt hat, wird in Block102 geprüft, ob der neue Kommunikationscode korrekt in dem temporären Speicherblock gespeichert wurde. Wenn der Reset vor dem Schreiben der Anwendungsdaten in Block96 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 Block104 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 Block96 , kann in Block106 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)
- 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.
- Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der neue Kommunikationscode überschrieben wird, wenn der Anwendungscode in den Anwendungs-Speicherblock geschrieben wird.
- 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.
- 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.
- 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.
- 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.
- 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. - 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. - 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. - 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. - 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. - 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.
- 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. - 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. - 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. - Steuereinrichtung nach Anspruch 7, dadurch gekennzeichnet, dass der gemeinsam genutzte Speicherblock (
24 ) an einer fixen Position in dem Starter-Speicherblock (28 ) gespeichert wird. - 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
2010
- 2010-06-09 US US12/796,774 patent/US8539472B2/en not_active Expired - Fee Related
-
2011
- 2011-05-13 DE DE102011075776A patent/DE102011075776A1/de not_active Withdrawn
- 2011-06-08 CN CN201110156240.7A patent/CN102279807B/zh not_active Expired - Fee Related
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 |