DE102011007714B4 - Verfahren für die Verwendung mit einem Batterieüberwachungssystem, Batterieüberwachungssystem und Verwendung des Verfahrens - Google Patents
Verfahren für die Verwendung mit einem Batterieüberwachungssystem, Batterieüberwachungssystem und Verwendung des Verfahrens Download PDFInfo
- Publication number
- DE102011007714B4 DE102011007714B4 DE102011007714.6A DE102011007714A DE102011007714B4 DE 102011007714 B4 DE102011007714 B4 DE 102011007714B4 DE 102011007714 A DE102011007714 A DE 102011007714A DE 102011007714 B4 DE102011007714 B4 DE 102011007714B4
- Authority
- DE
- Germany
- Prior art keywords
- code
- application
- starter
- common
- shared
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60L—PROPULSION OF ELECTRICALLY-PROPELLED VEHICLES; SUPPLYING ELECTRIC POWER FOR AUXILIARY EQUIPMENT OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRODYNAMIC BRAKE SYSTEMS FOR VEHICLES IN GENERAL; MAGNETIC SUSPENSION OR LEVITATION FOR VEHICLES; MONITORING OPERATING VARIABLES OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRIC SAFETY DEVICES FOR ELECTRICALLY-PROPELLED VEHICLES
- B60L3/00—Electric devices on electrically-propelled vehicles for safety purposes; Monitoring operating variables, e.g. speed, deceleration or energy consumption
- B60L3/12—Recording operating variables ; Monitoring of operating variables
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01M—PROCESSES OR MEANS, e.g. BATTERIES, FOR THE DIRECT CONVERSION OF CHEMICAL ENERGY INTO ELECTRICAL ENERGY
- H01M10/00—Secondary cells; Manufacture thereof
- H01M10/42—Methods or arrangements for servicing or maintenance of secondary cells or secondary half-cells
- H01M10/48—Accumulators combined with arrangements for measuring, testing or indicating the condition of cells, e.g. the level or density of the electrolyte
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60L—PROPULSION OF ELECTRICALLY-PROPELLED VEHICLES; SUPPLYING ELECTRIC POWER FOR AUXILIARY EQUIPMENT OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRODYNAMIC BRAKE SYSTEMS FOR VEHICLES IN GENERAL; MAGNETIC SUSPENSION OR LEVITATION FOR VEHICLES; MONITORING OPERATING VARIABLES OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRIC SAFETY DEVICES FOR ELECTRICALLY-PROPELLED VEHICLES
- B60L2240/00—Control parameters of input or output; Target parameters
- B60L2240/40—Drive Train control parameters
- B60L2240/54—Drive Train control parameters related to batteries
- B60L2240/545—Temperature
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60L—PROPULSION OF ELECTRICALLY-PROPELLED VEHICLES; SUPPLYING ELECTRIC POWER FOR AUXILIARY EQUIPMENT OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRODYNAMIC BRAKE SYSTEMS FOR VEHICLES IN GENERAL; MAGNETIC SUSPENSION OR LEVITATION FOR VEHICLES; MONITORING OPERATING VARIABLES OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRIC SAFETY DEVICES FOR ELECTRICALLY-PROPELLED VEHICLES
- B60L2240/00—Control parameters of input or output; Target parameters
- B60L2240/40—Drive Train control parameters
- B60L2240/54—Drive Train control parameters related to batteries
- B60L2240/549—Current
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/36—Arrangements for testing, measuring or monitoring the electrical condition of accumulators or electric batteries, e.g. capacity or state of charge [SoC]
- G01R31/382—Arrangements for monitoring battery or accumulator variables, e.g. SoC
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02E—REDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
- Y02E60/00—Enabling technologies; Technologies with a potential or indirect contribution to GHG emissions mitigation
- Y02E60/10—Energy storage using batteries
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/60—Other road transportation technologies with climate change mitigation effect
- Y02T10/70—Energy storage systems for electromobility, e.g. batteries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Electrochemistry (AREA)
- General Chemical & Material Sciences (AREA)
- Sustainable Development (AREA)
- Sustainable Energy (AREA)
- Power Engineering (AREA)
- Transportation (AREA)
- Mechanical Engineering (AREA)
- Life Sciences & Earth Sciences (AREA)
- Chemical Kinetics & Catalysis (AREA)
- Chemical & Material Sciences (AREA)
- Manufacturing & Machinery (AREA)
- Stored Programmes (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
- Multi Processors (AREA)
Abstract
Verfahren für die Verwendung mit einem Batterieüberwachungssystem BMS, das eine Anwendung zum Messen des Stromflusses zu einer Fahrzeugbatterie und einen Starter zum Aktivieren von durch die Anwendung verwendeten Treibern sowie einen nicht-flüchtigen Speicher (22) und einen flüchtigen Speicher (34) zum Speichern von Code umfasst und in einem Fahrzeug enthalten ist, das einen Fahrzeugbus (18) aufweist, wobei das Verfahren folgende Schritte umfasst:Speichern eines Anwendungscodes für Anwendungsfunktionen, die durch die Anwendung aufgerufen werden können, in einem Anwendungs-Speicherblock (30) des nicht-flüchtigen Speichers (22), wobei der Anwendungscode einen ersten Anwendungscode zum Messen des Stromflusses zu der Fahrzeugbatterie umfasst,Speichern eines Startercodes für Starterfunktionen, die durch den Starter aufgerufen werden können, in einem Starter-Speicherblock (28) des nicht-flüchtigen Speichers (22), wobei der Startercode einen ersten Startercode zum Initialisieren des BMS umfasst und wobei das BMS initialisiert werden muss, bevor die Anwendung den Stromfluss zu der Fahrzeugbatterie bestimmt,Speichern eines gemeinsam genutzten Codes für gemeinsame Funktionen, die durch den Starter und die Anwendung aufgerufen werden können, in einem gemeinsam genutzten Speicherblock (26) des nicht-flüchtigen Speichers (22), wobei der gemeinsam genutzte Code einen ersten Kommunikationscode umfasst, der von Starter und Anwendung verwendet werden kann, wenn Operationen für eine Kommunikation über den Fahrzeugbus (18) ausgeführt werden,Speichern eines Zeigers auf gemeinsame Funktionen in dem gemeinsam genutzten Speicherblock (26) für jede der gemeinsamen Funktionen, wobei jeder der Zeiger auf gemeinsame Funktionen an einer Position im gemeinsamen Speicherblock (26) gespeichert wird und zu einer anderen Position im gemeinsamen Speicherblock (26) zeigt, an der gemeinsam genutzter Code für gemeinsame Funktionen gespeichert wird, und wobei ein erster Zeiger auf gemeinsame Funktionen, der auf die Position zeigt, an der der erste Kommunikationscode gespeichert ist, gespeichert wird, erneutes Kompilieren des gemeinsamen Codes, wobei weiterhin wenigstens die gleichen gemeinsamen Funktionen nach dem erneuten Kompilieren verfügbar bleiben, und wobei jeder Zeiger auf gemeinsame Funktionen nach dem erneuten Kompilieren auf der selben Position im gemeinsam genutzten Speicherblock (26) gespeichert ist.
Description
- Die vorliegende Erfindung betrifft eine Architektur für einen gemeinsam genutzten Speicher, in der Code oder andere Daten zur Unterstützung von gemeinsamen Funktionen in einem gemeinsam genutzten Speicherblock gespeichert sind.
- Die
DE 10 2007 044 405 A1 offenbart ein Verfahren zum Erzeugen von ablauffähigen Programmcodes aus einer Anzahl von Software-Komponenten, die zum Prozessieren durch ein Datenverarbeitungssystem für ein Kraftfahrzeug bestimmt sind. In zwei Laufzeitumgebungen ist jeweils ein Programmcode auszuführen. Um die Aufstartzeit des Systems zu verringern, wird für die Software-Komponenten, die in beiden Laufzeitumgebungen auszuführen sind, in beiden Programmcodes jeweils die Verwendung eines übereinstimmenden Speicher-Layouts definiert. Dies soll dadurch bewerkstelligt werden, dass Daten, die für das übereinstimmende Speicher-Layout repräsentativ sind, beim Übergang von der ersten zu der zweiten Laufzeitumgebung übergeben werden. - Aus der
DE 10 2009 034 409 A1 ist ein Batterieüberwachungssystem zum Messen von Betriebsbedingungen einer Fahrzeugbatterie bekannt. - Softwarecode, wie er etwa zur Unterstützung der durch eine CPU ausgeführten Funktionen verwendet wird, wird gewöhnlich geschrieben, um bestimmte Operationen auszuführen. Der mit einer Softwareeinheit assoziierte Code kann unter Umständen nicht in Verbindung mit einem für eine andere Softwareeinheit geschriebenen Code genutzt werden. Wenn ein Speicher Code für mehrere Softwareeinheiten speichern soll, muss der Code für jede Softwareeinheit vollständig in dem Speicher gespeichert werden. Falls zwei oder mehr Softwareeinheiten verwendet werden, um die Ausführung von identischen oder gleichen Funktionen auszuführen, wird Speicherraum zum Speichern des entsprechenden Codes der zwei oder mehr Softwareeinheiten zugewiesen. Dadurch wird eine Redundanz geschaffen, weil doppelter Code für identische oder gleiche Funktionen gespeichert wird.
- Es ist Aufgabe der Erfindung, ein Verfahren für die Verwendung mit einem Batterieüberwachungssystem (BMS) beziehungsweise ein Batterieüberwachungssystem (BMS) in Bezug auf Effizienz von Speichernutzung zu verbessern.
- Bezüglich des Verfahrens wird diese Aufgabe durch Anspruch 1, bezüglich des Batterieüberwachungssystems durch Anspruch 9 gelöst. Die Unteransprüche geben vorteilhafte Ausführungsformen der Erfindung an.
- Die vorliegende Erfindung wird durch die beigefügten Ansprüche definiert. Verschiedene Merkmale der vorliegenden Erfindung werden durch die folgende ausführliche Beschreibung mit Bezug auf die beigefügten Zeichnungen verdeutlicht.
-
1 zeigt ein Fahrzeug-Steuersystem gemäß der vorliegenden Erfindung. -
2 zeigt eine Speichermap eines nicht-flüchtigen Speichers gemäß der vorliegenden Erfindung. -
3-4 zeigen eine Speichermap eines flüchtigen Speichers gemäß der vorliegenden Erfindung. -
5 zeigt ein Flussdiagramm für die Ausführung einer gemeinsamen Funktion gemäß der vorliegenden Erfindung. -
1 zeigt ein Fahrzeug-Steuersystem10 gemäß 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- (Passivschließ-, RKE- usw.), Beleuchtungs-, Heiz-, Klima- oder Motorsteuerungs-Subsysteme handeln kann. Der Betrieb, die Aktualisierung, die Interaktion und die Steuerung der Fahrzeug-Subsysteme können mittels Kommunikationen über einen Fahrzeugbus18 in Übereinstimmung mit Befehlen aus einer Master-Steuereinrichtung20 erfolgen. Das gezeigte Fahrzeugsystem10 ist nur eine beispielhafte Umgebung für die vorliegende Erfindung. Die vorliegende Erfindung kann auch auf andere als Fahrzeugumgebungen angewendet werden. - Die gezeigte Fahrzeugumgebung ist eine Umgebung, in der ein nicht-flüchtiger Speicher
22 in einem Speicher24 mit einem gemeinsam genutzten Speicherblock26 periodisch aktualisiert werden muss. Außerdem müssen die Steuereinrichtungen12 ,14 ,16 in einer Fahrzeugumgebung unter Umständen in Verbindung mit anderen Steuereinrichtungen12 ,14 ,16 betrieben werden und mit denselben über den Fahrzeugbus18 und/oder per Funk kommunizieren. In dem gezeigten Beispiel ist die Steuereinrichtung16 eine Batterieüberwachungssystem-Steuereinrichtung (BMS-Steuereinrichtung). Die BMS-Steuereinrichtung16 ist konfiguriert, um in Verbindung mit der Hardware eines Batterieüberwachungssystems (nicht gezeigt) betrieben zu werden, wobei das Batterieüberwachungssystem zum Beispiel betrieben werden kann, um den Stromfluss zu messen, die Batterietemperatur zu messen und/oder verschiedene andere Operationen in Bezug auf eine Fahrzeugbatterie auszuführen. Die mit dem Titel „Battery Monitoring System“ beschreibt ein derartiges Batterieüberwachungssystem.US 2010/0 019 733 A1 - Zusätzlich zu dem gemeinsam genutzten Speicherblock
26 umfasst der gezeigte Speicher24 der BMS-Steuereinrichtung16 einen Starter-Speicherblock28 und einen Anwendungs-Speicherblock30 . Der Anwendungs-Speicherblock30 speichert mit einer Anwendung assoziierten Code. Die Anwendung kann betrieben werden, um verschiedene mit dem Batterieüberwachungssystem assoziierte Funktionen wie etwa das Messen des Stromflusses und das Berichten desselben zu einer oder mehreren anderen Steuereinrichtungen (einschließlich der Master-Steuereinrichtung) auszuführen. Der Starter-Speicherblock28 speichert mit einem Starter assoziierten Code. Der Starter kann konfiguriert sein, um einen Start und/oder eine Initialisierung des Batterieüberwachungssystems zu bewerkstelligen, wobei er etwa Treiber32 lädt und/oder andere zur Ausführung der Operationen der Anwendung erforderliche Aktionen ausführt. - Die BMS-Steuereinrichtung
16 kann einen flüchtigen Speicherblock34 mit einem RAM-Block36 umfassen. Der flüchtige Speicher34 löscht im Gegensatz zu dem nicht-flüchtigen Speicher22 den darin gespeicherten Code jedes Mal, wenn die BMS-Steuereinrichtung16 zurückgesetzt wird oder die Stromversorgung unterbrochen wird. In den flüchtigen Speicher34 kann wie nachfolgend beschrieben ein Softwarecode geladen werden, der die mit dem Starter und mit der Anwendung assoziierten Funktionen unterstützt. Optional können verschiedene Codesätze in den RAM36 in Abhängigkeit davon geschrieben werden, ob gerade der Starter oder die Anwendung ausgeführt wird. Gemäß der Erfindung wird eine Anordung angegeben, in der nur Code des Starters oder der Anwendung in den RAM36 oder an bestimmte Positionen des RAMs36 geschrieben wird, um wie weiter unten beschrieben die gemeinsamen Funktionen zu unterstützen. - Die gezeigte BMS-Steuereinrichtung
16 enthält eine CPU38 . Die CPU38 kann konfiguriert sein, um Operationen in Übereinstimmung mit aus dem Speicher22 gelesenen Befehlen für die Operationen des Starters und der Anwendung auszuführen. Die CPU38 kann auch konfiguriert sein, um Code in den Speicher22 für einige der nachfolgend ausführlicher beschriebenen Operationen zu schreiben. Die CPU38 interagiert wie gezeigt mit den Treibern32 , die verwendet werden, um mit den Hardware-Komponenten des BMS zu interagieren. Zu diesen Hardware-Komponenten gehören auch solche, die Kommunikationen mit anderen Steuereinrichtungen12 ,14 über den Fahrzeugbus18 unterstützen. - Die Kommunikationen zwischen der BMS-Steuereinrichtung
16 und einer oder mehreren der anderen Steuereinrichtungen12 ,14 können in Übereinstimmung mit einem in dem gemeinsam genutzten Block26 gespeicherten Kommunikationscode erfolgen. Der Kommunikationscode kann in dem gemeinsam genutzten Block26 gespeichert sein und kann durch den Starter und die Anwendung verwendet werden, wenn Operationen für eine Kommunikation ausgeführt werden (optional kann der gemeinsam genutzte Speicher26 auch durch andere in der BMS-Steuereinrichtung16 betriebene Anwendungen und/oder Funktionen verwendet werden). Die Verwendung des gemeinsam genutzten Speichers26 kann vorteilhaft sein, wenn das Volumen des Kommunikationscodes größer ist. Weil der Kommunikationscode gemeinsam genutzt werden kann und keine separaten Kommunikationscodes für den Starter und die Anwendung gespeichert zu werden brauchen, kann das Gesamtvolumen des Kommunikationscodes für den Starter, für die Anwendung und für andere von einer Kommunikation abhängige Softwareeinheiten (sofern vorhanden) reduziert werden. -
2 zeigt eine Speichermap50 des nicht-flüchtigen Speichers22 gemäß der vorliegenden Erfindung. Die Speichermap50 zeigt den Aufbau der Daten in dem nicht-flüchtigen Speicher22 in Bezug auf die Funktion oder Operation, die in Übereinstimmung mit den aus der entsprechenden Speicherposition ausgelesenen Daten auszuführen ist. Die Daten (nachfolgend auch als Code bezeichnet) zum Ausführen der angegebenen Funktionen/Operationen müssen nicht in den gezeigten Mustern gruppiert oder angeordnet sein. Dem Fachmann sollte deutlich sein, dass ein mit jedem Abschnitt des Speichers24 assoziierter Compiler die Daten auch streuen oder in anderen Mustern organisieren kann. Der Compiler behält den Überblick über die Speicherpositionen, die für das Ausführen der angegebenen Funktionen gelesen werden müssen. - Die Speichermap
50 zeigt den nicht-flüchtigen Speicher22 mit wenigstens drei Maps, nämlich mit jeweils einer Map für den Anwendungs-Speicherblock30 , für den gemeinsam genutzten Speicherblock26 und für den Starter-Speicherblock28 . - Eine Speichermap
52 für die Anwendung zeigt eine Anzahl von Funktionen, die durch das Lesen des darin gespeicherten Codes ausgeführt werden können, die hier beispielhaft als Aufrufe für gemeinsame Funktionen1 ,2 ,3 ,4 , n des gemeinsam genutzten Speicherblocks26 , als proprietäre Anwendungsfunktionen der Anwendung wie etwa zum Bestimmen des Stromflusses, der Temperatur oder anderer mit dem Betrieb des BMS16 assoziierter Informationen und als Anwendungs-Rückfragefunktionen bei Auftreten eines Fehlers oder für andere in Reaktion auf wenigstens eine der gemeinsamen Funktionen auszuführende Aktionen gezeigt sind. - Eine Speichermap
54 für den Starter zeigt eine Anzahl von Funktionen, die durch das Lesen des darin gespeicherten Codes ausgeführt werden können, die hier beispielhaft als Aufrufe für gemeinsame Funktion1 ,2 ,3 ,4 , n des gemeinsam genutzten Speicherblocks20 , als proprietäre Starterfunktionen wie etwa zum Laden von Treibern und zum Aktivieren von Ports und als Anwendungs-Rückfragefunktionen bei Auftreten eines Fehlers oder für andere in Reaktion auf wenigstens eine der gemeinsamen Funktionen auszuführende Aktionen gezeigt sind. - Eine Speichermap
56 für die gemeinsamen Funktionen zeigt eine Anzahl von Funktionen, die durch das Lesen des darin gespeicherten Codes ausgeführt werden, die hier beispielhaft als gemeinsame Funktionen1 ,2 ,3 ,4 , n wie etwa eine Datenübertragungsfunktion, die durch die Anwendung oder den Starter verwendet werden kann, um Daten über den Fahrzeugbus zu übertragen, und als Zeiger auf die gemeinsamen Funktionen1 ,2 ,3 ,4 , n gezeigt sind. Eine beliebige Anzahl von gemeinsamen Funktionen kann durch den in dem gemeinsamen Speicherblock26 gespeicherten Code ausgeführt werden. Die gemeinsamen Funktionen sind jeweils eindeutig gekennzeichnet, wobei die Nummern lediglich beispielhaft sind und auch eine beliebige andere Kennzeichnung verwendet werden könnte. Die Zeiger verweisen von dem Starter und der Anwendung empfangene Aufrufe auf eine der gemeinsam genutzten Funktion entsprechende Position des gemeinsam genutzten Speicherblocks26 . - Die Positionen des gemeinsam genutzten Speicherblocks
26 für die Zeiger auf gemeinsame Funktionen bleiben in ihrer Größe und/oder Position fixiert, solange Code für die Anzahl n der gemeinsamen Funktionen in dem gemeinsamen Speicherblock gespeichert ist. Auf diese Weise kann der in dem gemeinsam genutzten Speicherblock26 gespeicherte Code aktualisiert oder auf andere Weise durch einen Compiler manipuliert werden, ohne dass sich dies auf die Speicherposition und die Kennzeichnung der Zeiger auf gemeinsame Funktionen auswirkt. Dagegen können die durch die Zeiger auf den gemeinsam Funktionscode angegebenen Positionen aktualisiert werden, etwa dann, wenn sich die Größe einer oder mehrere der gemeinsamen Funktionen nach dem Kompilieren ändert. - Indem die Positionen der Zeiger auf gemeinsame Funktion fixiert bleiben, kann die Erfindung eine bekannte Position für die von dem Starter und der Anwendung empfangenen Aufrufe vorsehen. Der Starter und die Anwendung müssen lediglich die Aufrufe der gemeinsamen Funktionen derart programmieren, dass sie auf die den gewünschten gemeinsamen Funktionen entsprechenden Zeiger verweisen. Der Starter und die Anwendung müssen also keinen Überblick über die Positionen der gemeinsamen Funktionen behalten, weil die Zeiger auf die gemeinsamen Funktionen bekannt sind und fixiert bleiben.
- Gemäß der vorliegenden Erfindung werden die Zeiger auf gemeinsame Funktionen in Übereinstimmung mit der damit assoziierten eindeutigen Kennzeichnung gespeichert, wobei der mit dem Zeiger
1 auf eine gemeinsame Funktion assoziierte Code vor dem mit dem Zeiger2 auf eine gemeinsame Funktion assoziierten Code angeordnet wird, der mit dem Zeiger2 auf eine gemeinsame Funktion assoziierte Code vor dem mit dem Zeiger3 auf eine gemeinsame Funktion assoziierten Code angeordnet wird usw. Eine derartige Anordnung kann der Anordnung einer physischen Speicherposition des entsprechenden Zeigercodes und/oder der Adresse für die Speicherung des Codes entsprechen, wobei der Zeigercode an einer beliebigen Position gespeichert werden kann, solange dieselbe Adresse immer auf die Position des Zeigercodes verweist. Wenn weitere gemeinsame Funktionen hinzugefügt werden, können weitere Zeiger hinzugefügt werden, die auf physikalische Positionen hinter den anderen Zeigern und/oder auf Adressen hinter den anderen Zeigern verweisen (z.B. kann eine neue Adresse ein Inkrement von eins zu der letzten Adresse der anderen Zeiger sein). -
3-4 zeigen eine Speichermap58 des flüchtigen Speichers34 gemäß der vorliegenden Erfindung. Die Speichermap58 gibt den Aufbau der Daten in dem flüchtigen Speicher34 für die Funktion oder Operation an, die in Übereinstimmung mit den von der entsprechenden Speicherposition gelesenen Daten ausgeführt werden soll.3 zeigt die mit dem RAM36 assoziierte Speichermap58 für die Ausführung der Anwendung; und4 zeigt die mit dem RAM36 assoziierte Speichermap58 für die Ausführung des Starters, insbesondere wenn eine Bootloader-Anwendung als Teil des Starters ausgeführt wird. - Die durch den Code in dem RAM
36 vorgesehene Funktion wird durch die damit assoziierte eindeutige Kennzeichnung identifiziert. In Abhängigkeit davon, ob die Anwendung oder der Bootloader betriebsfähig sind, speichert ein Teil des RAMs36 einen mit proprietären Funktionen der Anwendung oder des Bootloaders assoziierten Code, der für den Betrieb der Anwendung oder des Bootloaders erforderlich ist. Dabei kann es sich um einen Code zum Ausführen von Messungen und anderen Operationen handeln, die mit höheren Geschwindigkeiten ausgeführt werden als es mit einem in dem nicht-flüchtigen Speicher gespeicherten ähnlichen Code möglich ist, und zum Ausführen von Kommunikationsfunktionen, die nicht gemeinsam genutzt werden müssen. Andere Teile des RAMs36 speichern Zeiger auf Rückfragefunktionen für jede der gemeinsamen Funktionen1 ,2 ,3 ,4 bis n. Die Zeiger für Rückfragefunktionen können als Bootloader-Rückfragefunktion-Zeiger oder Anwendungs-Rückfragefunktion-Zeiger identifiziert werden und werden verwendet, um auf spezifische Rückfragefunktionen in den Speichermaps52 ,54 der Anwendung bzw. des Bootloaders zu verweisen, die bei Auftreten eines Fehlers oder für andere in Reaktion auf die entsprechend gekennzeichneten gemeinsamen Funktionen ausgeführte Aktionen auszuführen sind. - Wie die in dem gemeinsam genutzten Speicherblock
26 gespeicherten Zeiger können auch die in dem flüchtigen Speicherblock34 gespeicherten Zeiger an fixen Positionen gespeichert werden, die jeweils der Anzahl von n gemeinsamen Funktionen zugewiesen sind. Die gemeinsamen Funktionen sind jeweils konfiguriert, um auf eine Position in dem RAM36 zu zeigen, die der Identität der die Rückfrage verursachenden gemeinsamen Funktion entspricht. Dabei muss in dem gemeinsamen Funktionscode nicht identifiziert werden, ob der Bootloader oder die Anwendung betrieben wird, weil die Position der Zeiger in dem RAM36 fixiert ist und verschiedene Zeiger in Abhängigkeit davon, ob die Anwendung oder der Bootloader betrieben wird, an den fixierten Positionen gespeichert sind. -
5 zeigt ein Flussdiagramm für die Ausführung einer gemeinsamen Funktion gemäß der vorliegenden Erfindung. Zum Beispiel veranlasst die Anwendung einen Aufruf der gemeinsamen Funktion, wobei die Erfindung jedoch nicht hierauf beschränkt ist. Gemäß einem nicht-einschränkenden Aspekt der vorliegenden Erfindung wird der Aufruf durch den Starter oder die Anwendung veranlasst, sodass derselbe Code also durch mehrere Softwareeinheiten wie etwa den Starter und die Anwendung genutzt werden kann. Die gemeinsame Funktion wird dann unabhängig davon, ob sie durch die Anwendung, den Starter oder eine andere Softwareeinheit aufgerufen wurde, ähnlich wie in5 gezeigt ausgeführt. - In dem für die vorliegende Beschreibung gewählten Beispiel ist die aufgerufene gemeinsame Funktion eine Datenübertragungsfunktion. Die Datenübertragungsfunktion kann erfolgen, nachdem die Anwendung eine Erlaubnis von dem Master
20 für die Übertragung von Daten über den Fahrzeugbus18 angefordert hat, um etwa mit einem aktuellen Messwert assoziierte Daten oder andere durch das Batterieüberwachungssystem16 berechnete Informationen zu einem oder mehreren der Fahrzeug-Subsysteme12 ,14 zu übertragen. Wenn eine andere Beziehung zwischen dem Batterieüberwachungssystem16 und dem Master20 gegeben ist, etwa wenn der Master20 ein Client ist und das Batterieüberwachungssystem16 ein Server ist, kann ein anderer Austausch zwischen dem Master20 und dem Batterieüberwachungssystem16 stattfinden, bevor die Datenübertragungsfunktion ausgeführt wird, wobei etwa das Batterieüberwachungssystem16 Daten auf seine eigene Initiative hin übertragen kann. Die aufgerufene gemeinsame Funktion wird hier anhand des Beispiels einer Kommunikationsfunktion beschrieben, wobei gemäß der vorliegenden Erfindung der mit Kommunikationsfunktionen assoziierte Speicherraum reduziert werden kann, indem eine oder mehrere Softwareeinheiten wenigstens einen Teil desselben Codes gemeinsam nutzen, um die Kommunikationsfunktionen auszuführen. - In Block
62 führt die CPU38 einen Aufruf zum Ausführen einer Datenübertragungsfunktion (gemeinsamen Funktion) in Übereinstimmung mit einem aus dem Anwendungs-Speicherblock30 gelesenen Code aus. Der Aufruf wird durch die CPU38 ausgeführt, die den Teil des Anwendungs-Speicherblocks30 liest, der gemäß der Anwendungs-Speichermap52 der gewünschten gemeinsamen Funktion entspricht, die in diesem Beispiel die gemeinsame Funktion3 ist. In Block64 liest die CPU38 einen als Teil der aufgerufenen gemeinsamen Funktion gespeicherten Zeiger, der auf den Zeiger der in dem gemeinsam genutzten Speicherblock26 gespeicherten aufgerufenen gemeinsamen Funktion zeigt. Jeder Aufruf einer gemeinsamen Funktion durch die Anwendung oder den Starter umfasst einen Zeiger auf den entsprechenden in dem gemeinsam genutzten Speicherblock26 gespeicherten Zeiger. Weil die in dem gemeinsam genutzten Speicherblock26 gespeicherten Zeiger fixiert sind, zeigen auch die Zeiger jeder der Aufrufe der gemeinsamen Funktion entsprechend auf eine fixe Position. - In Block
66 führt die CPU38 die gemeinsame Funktion in Übereinstimmung mit dem aus dem gemeinsamen Speicherblock26 gelesenen Code aus. Wenn die gemeinsame Funktion ausgeführt wird, ohne dass eine Rückfrage erforderlich ist, weil die gemeinsame Funktion beendet wird und/oder keine andere Rückfrage aus der Beendigung der Funktion resultiert, wird die gemeinsame Funktion als abgeschlossen betrachtet und wird zu Block62 zurückgekehrt. Wenn eine Rückfrage auftritt und somit die aufgerufene gemeinsame Funktion nicht vollständig ausgeführt ist oder die vollständige Ausführung der aufgerufenen gemeinsamen Funktion zu einem eine Rückfrage auslösenden Ergebnis führt, erhält die CPU38 in Block68 den der entsprechenden gemeinsamen Funktion aus dem RAM36 zugewiesenen Rückfrage-Zeiger. - Der in der Speichermap
56 für die gemeinsamen Funktionen gespeicherte gemeinsame Funktionscode umfasst einen Zeiger, der auf eine Position in dem RAM36 zeigt, die dem Zeiger für die Rückfragefunktion zugewiesen ist, die im Fall einer Rückfrage durch die CPU38 ausgeführt werden soll (eine oder mehrere der gemeinsamen Funktionen können Zeiger auf eine oder mehrere gleiche oder verschiedene Positionen im RAM36 enthalten). Weil die in dem RAM36 gespeicherten Rückfrage-Zeiger in Abhängigkeit davon, ob die Anwendung oder der Starter ausgeführt werden, geladen werden, muss der in dem gemeinsam genutzten Speicherblock26 gespeicherte Code der gemeinsamen Funktionen nicht die mit dem Starter oder der Anwendung zu assoziierende Rückfragefunktion identifizieren. In Block70 führt die CPU38 dann die Rückfragefunktion, auf die durch den in dem RAM36 gespeicherten Rückfrage-Zeiger gezeigt wird, in Übereinstimmung mit einem in dem Anwendungs-Speicherblock30 gespeicherten Code für die entsprechende Rückfragefunktion oder im Fall der Ausführung des Starters in Übereinstimmung mit dem in dem Starter-Speicherblock28 gespeicherten Rückfragecode aus. Optional kann die Verarbeitung nach Abschluss der Rückfragefunktion zu der Verarbeitung der die Rückfragefunktion veranlassenden gemeinsamen Funktion zurückkehren. - Vorstehend wurden verschiedene Ausführungsformen der vorliegenden Erfindung beschrieben, wobei jedoch zu beachten ist, dass die beschriebenen Ausführungsformen lediglich beispielhaft für die Erfindung sind, die auch durch verschiedene andere Ausführungsformen 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 nicht einschränkend aufzufassen, sondern lediglich als repräsentative Basis für die Ansprüche und/oder als repräsentative Basis für den Fachmann, der die Erfindung realisieren möchte. Außerdem können Merkmale aus verschiedenen Ausführungsformen miteinander kombiniert werden, um weitere Ausführungsformen der Erfindung zu bilden.
Claims (17)
- Verfahren für die Verwendung mit einem Batterieüberwachungssystem BMS, das eine Anwendung zum Messen des Stromflusses zu einer Fahrzeugbatterie und einen Starter zum Aktivieren von durch die Anwendung verwendeten Treibern sowie einen nicht-flüchtigen Speicher (22) und einen flüchtigen Speicher (34) zum Speichern von Code umfasst und in einem Fahrzeug enthalten ist, das einen Fahrzeugbus (18) aufweist, wobei das Verfahren folgende Schritte umfasst: Speichern eines Anwendungscodes für Anwendungsfunktionen, die durch die Anwendung aufgerufen werden können, in einem Anwendungs-Speicherblock (30) des nicht-flüchtigen Speichers (22), wobei der Anwendungscode einen ersten Anwendungscode zum Messen des Stromflusses zu der Fahrzeugbatterie umfasst, Speichern eines Startercodes für Starterfunktionen, die durch den Starter aufgerufen werden können, in einem Starter-Speicherblock (28) des nicht-flüchtigen Speichers (22), wobei der Startercode einen ersten Startercode zum Initialisieren des BMS umfasst und wobei das BMS initialisiert werden muss, bevor die Anwendung den Stromfluss zu der Fahrzeugbatterie bestimmt, Speichern eines gemeinsam genutzten Codes für gemeinsame Funktionen, die durch den Starter und die Anwendung aufgerufen werden können, in einem gemeinsam genutzten Speicherblock (26) des nicht-flüchtigen Speichers (22), wobei der gemeinsam genutzte Code einen ersten Kommunikationscode umfasst, der von Starter und Anwendung verwendet werden kann, wenn Operationen für eine Kommunikation über den Fahrzeugbus (18) ausgeführt werden, Speichern eines Zeigers auf gemeinsame Funktionen in dem gemeinsam genutzten Speicherblock (26) für jede der gemeinsamen Funktionen, wobei jeder der Zeiger auf gemeinsame Funktionen an einer Position im gemeinsamen Speicherblock (26) gespeichert wird und zu einer anderen Position im gemeinsamen Speicherblock (26) zeigt, an der gemeinsam genutzter Code für gemeinsame Funktionen gespeichert wird, und wobei ein erster Zeiger auf gemeinsame Funktionen, der auf die Position zeigt, an der der erste Kommunikationscode gespeichert ist, gespeichert wird, erneutes Kompilieren des gemeinsamen Codes, wobei weiterhin wenigstens die gleichen gemeinsamen Funktionen nach dem erneuten Kompilieren verfügbar bleiben, und wobei jeder Zeiger auf gemeinsame Funktionen nach dem erneuten Kompilieren auf der selben Position im gemeinsam genutzten Speicherblock (26) gespeichert ist.
- Verfahren nach
Anspruch 1 , dadurch gekennzeichnet, dass bei dem erneuten Kompilieren des gemeinsamen Codes die für das Speichern des gemeinsamen Codes benötigte Speichergröße für wenigstens eine der gemeinsamen Funktionen nach dem erneuten Kompilieren vergrößert wird. - Verfahren nach
Anspruch 1 oder2 , dadurch gekennzeichnet, dass vor und nach dem erneuten Kompilieren dieselbe Speichergröße in dem gemeinsam genutzten Speicherblock (26) für das Speichern der Zeiger auf gemeinsame Funktionen verwendet wird. - Verfahren nach einem der vorangehenden Ansprüche, weiterhin gekennzeichnet durch folgende Schritte: Speichern von Starter-Zeigern auf Starter-Rückfragefunktionen in einem gemeinsam benutzten Rückfragefunktionen-Speicherblock des flüchtigen Speichers (34), während der Starter betrieben wird, wobei die Starter-Zeiger auf wenigstens eine aus Starter-Rückfragefunktionen zeigen, die für die gemeinsamen Funktionen auszuführen ist, und Speichern von Anwendungs-Zeigern auf Anwendungs-Rückfragefunktionen in dem gemeinsam benutzten Rückfragefunktionen-Speicherblock des flüchtigen Speichers (34), während die Anwendung betrieben wird, wobei die Anwendungs-Zeiger auf wenigstens eine Anwendungs-Rückfragefunktion zeigen, die für die gemeinsamen Funktionen auszuführen ist.
- Verfahren nach
Anspruch 4 , dadurch gekennzeichnet, dass jeder der gemeinsamen Funktionen eine eindeutige Kennzeichnung zugewiesen ist und jedem der Zeiger auf gemeinsame Funktionen, der Starter-Zeiger und der Anwendungs-Zeiger die der korrespondierenden gemeinsamen Funktion zugewiesene eindeutige Kennzeichnung zugewiesen ist. - Verfahren nach
Anspruch 5 , dadurch gekennzeichnet, dass das Speichern der Starter-Zeiger und der Anwendungs-Zeiger in dem gemeinsam genutzten Rückfragefunktionen-Speicherblock in Übereinstimmung mit der zugewiesenen eindeutigen Kennzeichnung organisiert wird, sodass die Starter-Zeiger und die Anwendungs-Zeiger, denen die gleiche eindeutige Kennzeichnung zugewiesen ist, an derselben Speicherposition des gemeinsam genutzten Rückfragefunktionen-Speicherblocks gespeichert werden. - Verfahren nach einem der
Ansprüche 4 bis6 , dadurch gekennzeichnet, dass die Starter-Zeiger überschrieben werden, wenn die Anwendungs-Zeiger in dem gemeinsam genutzten Rückfragenfunktionen-Speicherblock gespeichert werden. - Verfahren nach einem der vorangehenden Ansprüche, wobei der erste Kommunikationscode aus dem nicht-flüchtigen Speicher (22) in den flüchtigen Speicher (34) geladen wird, wenn die Anwendung den Stromfluss über den Fahrzeugbus (18) übermitteln will, und wobei eine CPU (38) dadurch, dass sie den ersten Zeiger auf gemeinsame Funktionen ausliest, die Position, an der der erste Kommunikationscode im nicht-flüchtigen Speicher (22) gespeichert ist, ermittelt, wobei die CPU den ersten Zeiger auf gemeinsame Funktionen identifiziert, indem sie den ersten Anwendungscode liest, wobei der erste Anwendungscode einen ersten Zeiger spezifiziert, der zu der Position zeigt, an der der erste gemeinsam genutzte Zeiger in dem nicht-flüchtigen Speicherblock (22) gespeichert ist.
- Batterieüberwachungssystem BMS, das eine Anwendung zum Messen des Stromflusses zu einer Fahrzeugbatterie und einen Starter zum Aktivieren von durch die Anwendung verwendeten Treibern (32) umfasst, in einem Fahrzeug enthalten ist, das einen Fahrzeugbus (18) aufweist, und einen nicht-flüchtigen Speicher (22) und einen flüchtigen Speicher (34) zum Speichern von Code umfasst, wobei ein Anwendungscode für Anwendungsfunktionen, die durch die Anwendung aufgerufen werden können, in einem Anwendungs-Speicherblock (30) des nicht-flüchtigen Speichers (22) gespeichert ist, wobei der Anwendungscode einen ersten Anwendungscode zum Messen des Stromflusses zu der Fahrzeugbatterie umfasst, ein Startercode für Starterfunktionen, die durch den Starter aufgerufen werden können, in einem Starter-Speicherblock (28) des nicht-flüchtigen Speichers (22) gespeichert ist, wobei der Startercode einen ersten Startercode zum Initialisieren des BMS umfasst und wobei das BMS initialisiert werden muss, bevor die Anwendung den Stromfluss zu der Fahrzeugbatterie bestimmt, ein gemeinsam genutzter Code für gemeinsame Funktionen, die durch den Starter und die Anwendung aufgerufen werden können, in einem gemeinsam genutzten Speicherblock (26) des nicht-flüchtigen Speichers (22) gespeichert ist, wobei der gemeinsam genutzte Code einen ersten Kommunikationscode umfasst, der von Starter und Anwendung verwendet werden kann, wenn Operationen für eine Kommunikation über den Fahrzeugbus (18) ausgeführt werden, ein Zeiger auf gemeinsame Funktionen in dem gemeinsam genutzten Speicherblock (26) für jede der gemeinsamen Funktionen gespeichert ist, wobei jeder der Zeiger auf gemeinsame Funktionen an einer Position im gemeinsam genutzten Speicherblock (26) gespeichert ist und zu einer anderen Position im gemeinsam genutzten Speicherblock (26) zeigt, an der gemeinsam genutzter Code für gemeinsame Funktionen gespeichert ist, und wobei ein erster Zeiger auf gemeinsame Funktionen gespeichert ist, der zu der Position zeigt, an der der erste Kommunikationscode gespeichert ist, das Batterieüberwachungssystem mit einem Compiler assoziiert ist, sodass bei einem erneuten Kompilieren des gemeinsamen Codes wenigstens die gleichen gemeinsamen Funktionen nach dem erneuten Kompilieren verfügbar bleiben und jeder Zeiger auf gemeinsame Funktionen nach dem erneuten Kompilieren auf der selben Position im gemeinsam genutzten Speicherblock (26) gespeichert ist.
- Batterieüberwachungssystem nach
Anspruch 9 , weiterhin gekennzeichnet durch eine in einem flüchtigen Speicher (34) gespeicherten Vielzahl von Rückfrage-Zeigern, wobei jeder der Rückfrage-Zeiger jeweils mit einer gemeinsamen Funktion assoziiert ist. - Batterieüberwachungssystem nach
Anspruch 10 , dadurch gekennzeichnet, dass die Rückfrage-Zeiger (i) auf einen in dem Anwendungs-Speicherblock (30) gespeicherten Rückfragefunktionscode zeigen, wenn die Anwendung ausgeführt wird, und (ii) auf einen in dem Starter-Speicherblock (28) gespeicherten Rückfragefunktionscode zeigen, wenn der Starter ausgeführt wird. - Batterieüberwachungssystem nach
Anspruch 11 , dadurch gekennzeichnet, dass der flüchtige Speicher (34) nicht gleichzeitig Zeiger auf in dem Anwendungs-Speicherblock (30) und in dem Starter-Speicherblock (28) gespeicherte Rückfragefunktionscode speichert. - Batterieüberwachungssystem nach
Anspruch 10 , dadurch gekennzeichnet, dass die Rückfrage-Zeiger an fixen Speicherpositionen in dem flüchtigen Speicher (34) gespeichert sind, sodass die Rückfrage-Zeiger für jede der gemeinsamen Funktionen für die Anwendung und den Starter an gleichen Positionen gespeichert sind. - Batterieüberwachungssystem nach
Anspruch 13 , dadurch gekennzeichnet, dass der in dem gemeinsam genutzten Speicherblock (26) gespeicherte Code für jede der gemeinsamen Funktionen einen Zeiger auf die fixe Speicherposition eines mit dieser gemeinsamen Funktion assoziierten Rückfrage-Zeigers enthält. - Batterieüberwachungssystem nach einem der
Ansprüche 9 bis14 , dadurch gekennzeichnet, dass die fixen Speicherpositionen nach jedem Kompilieren jeweils dieselben Zeiger auf gemeinsame Funktionen speichern und wenigstens dieselben gemeinsamen Funktionen verfügbar sind. - Batterieüberwachungssystem nach
Anspruch 15 , dadurch gekennzeichnet, dass die für das Speichern des gemeinsamen Codes für wenigstens eine der gemeinsamen Funktionen benötigte Speichergröße nach dem Kompilieren größer sein kann und die Zeiger auf gemeinsame Funktionen nach dem Kompilieren an denselben Speicherpositionen bleiben. - Verwendung des Verfahrens nach einem der
Ansprüche 1 bis8 für den Betrieb des Batterieüberwachungssystems.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/796,833 US8495601B2 (en) | 2010-06-09 | 2010-06-09 | Shared memory architecture |
| US12/796,833 | 2010-06-09 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE102011007714A1 DE102011007714A1 (de) | 2011-12-15 |
| DE102011007714B4 true DE102011007714B4 (de) | 2019-02-14 |
Family
ID=45020165
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE102011007714.6A Expired - Fee Related DE102011007714B4 (de) | 2010-06-09 | 2011-04-20 | Verfahren für die Verwendung mit einem Batterieüberwachungssystem, Batterieüberwachungssystem und Verwendung des Verfahrens |
Country Status (3)
| Country | Link |
|---|---|
| US (2) | US8495601B2 (de) |
| CN (2) | CN104002685B (de) |
| DE (1) | DE102011007714B4 (de) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20170010896A1 (en) * | 2015-07-06 | 2017-01-12 | Lear Corporation | Shared Memory Architecture Autoupdater |
| WO2019118976A1 (en) | 2017-12-17 | 2019-06-20 | Axon Therapies, Inc. | Methods and devices for endovascular ablation of a splanchnic nerve |
| JP6950634B2 (ja) * | 2018-07-03 | 2021-10-13 | オムロン株式会社 | 制御装置および制御方法 |
| KR102324263B1 (ko) * | 2018-09-12 | 2021-11-08 | 주식회사 엘지에너지솔루션 | 비휘발성 메모리 업데이트 장치 및 방법 |
| CN110837048A (zh) * | 2019-10-30 | 2020-02-25 | 深圳市新威尔电子有限公司 | 基于虚拟机的电池检测系统及其工作方法 |
| US11070621B1 (en) * | 2020-07-21 | 2021-07-20 | Cisco Technology, Inc. | Reuse of execution environments while guaranteeing isolation in serverless computing |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5297284A (en) * | 1991-04-09 | 1994-03-22 | Microsoft Corporation | Method and system for implementing virtual functions and virtual base classes and setting a this pointer for an object-oriented programming language |
| JPH10320203A (ja) * | 1997-05-22 | 1998-12-04 | Meidensha Corp | 共有メモリシステム |
| DE102007044405A1 (de) | 2007-09-18 | 2009-03-19 | Continental Automotive Gmbh | Verfahren zum Erzeugen von ablauffähigen Programmcodes |
| US20100019733A1 (en) | 2008-07-23 | 2010-01-28 | Lear Corporation | Battery monitoring system |
| DE102009034409A1 (de) | 2008-07-23 | 2010-02-04 | Lear Corp., Southfield | Batterieüberwachungssystem |
Family Cites Families (45)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE69330691T2 (de) * | 1992-06-03 | 2002-07-04 | Sun Microsystems, Inc. | Dynamisch konfigurierbares Kernsystem |
| US6023704A (en) * | 1998-01-29 | 2000-02-08 | International Business Machines Corporation | Apparatus and method for swapping identities of two objects to reference the object information of the other |
| US6708223B1 (en) * | 1998-12-11 | 2004-03-16 | Microsoft Corporation | Accelerating a distributed component architecture over a network using a modified RPC communication |
| WO2001014959A2 (en) * | 1999-08-16 | 2001-03-01 | Z-Force Corporation | System of reusable software parts and methods of use |
| JP2001116527A (ja) * | 1999-10-20 | 2001-04-27 | Matsushita Electric Ind Co Ltd | 立体物検出方法及び装置 |
| 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 |
| FR2820221B1 (fr) | 2001-02-01 | 2004-08-20 | Cimai Technology | Procede et systeme pour gerer des executables a bibliotheques partagees |
| WO2002084484A2 (en) | 2001-04-18 | 2002-10-24 | Domosys Corporation | Method of remotely upgrading firmware in field-deployed devices |
| US20030014555A1 (en) * | 2001-06-29 | 2003-01-16 | Michal Cierniak | System and method for efficient dispatch of interface calls |
| JP4162401B2 (ja) | 2001-12-18 | 2008-10-08 | 富士通株式会社 | 携帯端末装置および間欠受信方法 |
| JP3788400B2 (ja) * | 2002-07-19 | 2006-06-21 | 住友電気工業株式会社 | 画像処理装置、画像処理方法及び車両監視システム |
| US20040034861A1 (en) | 2002-08-19 | 2004-02-19 | Ballai Philip N. | System and method for automating firmware maintenance |
| US7353521B1 (en) * | 2002-10-19 | 2008-04-01 | Borland Software Corporation | Object oriented distributed software system with methodology for piggybacked reflective callbacks |
| CN1504891A (zh) * | 2002-11-29 | 2004-06-16 | 笙泉科技股份有限公司 | 扩充性储存装置 |
| US7496906B2 (en) * | 2004-03-31 | 2009-02-24 | International Business Machines Corporation | Evaluation of a code segment |
| US7185191B2 (en) | 2004-05-05 | 2007-02-27 | International Business Machines Corporation | Updatable firmware having boot and/or communication redundancy |
| US20050289266A1 (en) * | 2004-06-08 | 2005-12-29 | Daniel Illowsky | Method and system for interoperable content player device engine |
| US7249235B2 (en) | 2004-06-21 | 2007-07-24 | Oracle International Corporation | Architecture for a scalable and user-extensible heap dump analysis tool |
| US7565279B2 (en) * | 2005-03-07 | 2009-07-21 | Nvidia Corporation | Callbacks in asynchronous or parallel execution of a physics simulation |
| US20060242635A1 (en) * | 2005-04-21 | 2006-10-26 | Scott Broussard | Method and system for optimizing array sizes in a JAVA virtual machine |
| 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 |
| EP1966701A2 (de) * | 2005-12-21 | 2008-09-10 | Nxp B.V. | Speicher mit blocklöschbaren speicherzellen |
| 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 |
| US20100033571A1 (en) | 2006-09-28 | 2010-02-11 | Pioneer Corporation | Traffic information detector, traffic information detecting method, traffic information detecting program, and recording medium |
| 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 |
| US7769505B2 (en) * | 2007-05-03 | 2010-08-03 | Gm Global Technology Operations, Inc. | Method of operating a plug-in hybrid electric vehicle |
| US7671567B2 (en) * | 2007-06-15 | 2010-03-02 | Tesla Motors, Inc. | Multi-mode charging system for an electric vehicle |
| DE112008001881B4 (de) * | 2007-07-17 | 2024-04-11 | Midtronics, Inc. | Batterieprüfgerät für Elektrofahrzeug |
| 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 |
| US8321850B2 (en) * | 2008-06-06 | 2012-11-27 | Vmware, Inc. | Sharing and persisting code caches |
| US8364857B2 (en) * | 2009-08-31 | 2013-01-29 | Qualcomm Incorporated | Wireless modem with CPU and auxiliary processor that shifts control between processors when in low power state while maintaining communication link to wireless network |
| US8689234B2 (en) * | 2009-11-25 | 2014-04-01 | Red Hat, Inc. | Providing real-time widgets in a web application framework |
| US8180512B2 (en) * | 2010-08-10 | 2012-05-15 | Tesla Motors, Inc. | Efficient dual source battery pack system for an electric vehicle |
| US8892850B2 (en) * | 2011-01-17 | 2014-11-18 | International Business Machines Corporation | Endpoint-based parallel data processing with non-blocking collective instructions in a parallel active messaging interface of a parallel computer |
| US8583305B2 (en) * | 2011-03-31 | 2013-11-12 | GM Global Technology Operations LLC | System and method for detecting vehicle wake-up failure |
| US8615771B2 (en) * | 2011-06-20 | 2013-12-24 | International Business Machines Corporation | Effective management of blocked-tasks in preemptible read-copy update |
| US8732674B1 (en) * | 2012-11-14 | 2014-05-20 | Microsoft Corporation | Revertable managed execution image instrumentation |
-
2010
- 2010-06-09 US US12/796,833 patent/US8495601B2/en not_active Expired - Fee Related
-
2011
- 2011-04-20 DE DE102011007714.6A patent/DE102011007714B4/de not_active Expired - Fee Related
- 2011-06-08 CN CN201410252271.6A patent/CN104002685B/zh not_active Expired - Fee Related
- 2011-06-08 CN CN201110156252.XA patent/CN102331972B/zh not_active Expired - Fee Related
-
2013
- 2013-06-19 US US13/921,452 patent/US9195576B2/en not_active Expired - Fee Related
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5297284A (en) * | 1991-04-09 | 1994-03-22 | Microsoft Corporation | Method and system for implementing virtual functions and virtual base classes and setting a this pointer for an object-oriented programming language |
| JPH10320203A (ja) * | 1997-05-22 | 1998-12-04 | Meidensha Corp | 共有メモリシステム |
| DE102007044405A1 (de) | 2007-09-18 | 2009-03-19 | Continental Automotive Gmbh | Verfahren zum Erzeugen von ablauffähigen Programmcodes |
| US20100019733A1 (en) | 2008-07-23 | 2010-01-28 | Lear Corporation | Battery monitoring system |
| DE102009034409A1 (de) | 2008-07-23 | 2010-02-04 | Lear Corp., Southfield | Batterieüberwachungssystem |
Also Published As
| Publication number | Publication date |
|---|---|
| CN102331972B (zh) | 2014-06-04 |
| US8495601B2 (en) | 2013-07-23 |
| CN104002685B (zh) | 2017-04-12 |
| US20110307669A1 (en) | 2011-12-15 |
| DE102011007714A1 (de) | 2011-12-15 |
| US9195576B2 (en) | 2015-11-24 |
| CN104002685A (zh) | 2014-08-27 |
| CN102331972A (zh) | 2012-01-25 |
| US20130282990A1 (en) | 2013-10-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE102011007714B4 (de) | Verfahren für die Verwendung mit einem Batterieüberwachungssystem, Batterieüberwachungssystem und Verwendung des Verfahrens | |
| DE69605568T2 (de) | Verfahren zum schaffen eines benutzerglobalen namenraums in einem mehrbenutzer-betriebssystem | |
| DE19983768B4 (de) | Verfahren zum Ausführen von für verschiedene Befehlssatzarchitekturen geschriebener Firmware | |
| DE69427174T2 (de) | Dynamische Hochleistungsprogrammverknüpfung durch Cachespeicherung | |
| DE69618221T2 (de) | Mechanismus zur wartung objektorientierter "methoden" der keine unterbrechung des computersystems erfordert | |
| DE102010001339A1 (de) | Verwalten von Anforderungen von Betriebssystemen, die in virtuellen Maschinen ablaufen | |
| DE10338031A1 (de) | Verfahren und Vorrichtung zum Verwalten eines Speichersystems | |
| DE02016631T1 (de) | Verfahren zur zusammenhängenden Speicherung von Daten in einer industriellen Steuerung | |
| EP0500973A1 (de) | Initialisierungsroutine im EEPROM | |
| DE69622301T2 (de) | Konsistenzprüfung einer Instruktionsverarbeitungsfolge für ein Multiprozessorsystem | |
| DE102013213314A1 (de) | Hinterlegen mindestens eines berechenbaren Integritätsmesswertes in einem Speicherbereich eines Speichers | |
| EP3015995A1 (de) | Verfahren zum konfigurieren einer schnittstelleneinheit eines computersystems | |
| DE102018202446A1 (de) | Verfahren zum Modularisieren einer Softwarearchitektur | |
| DE10003268A1 (de) | Verfahren und Vorrichtung zum Feststellen der Laufwerksbuchstaben-Bezeichnung eines CD-Rom-Laufwerks während der anfänglichen Systemvorbereitung eines Computersystems | |
| DE102004060301A1 (de) | Verfahren zum Initialisieren eines elektronischen Systems umfassend mehrere Plug-Ins | |
| DE112010005509T5 (de) | Robotersystemsteuerverfahren und eine Vorrichtung davon | |
| EP4099163A1 (de) | Verfahren und system zum erkennen und beseitigen von schwachstellen in einzelnen dateisystemschichten eines container-images | |
| EP3705993B1 (de) | System und verfahren zum auffinden und identifizieren von rechenknoten in einem netzwerk | |
| DE10146516A1 (de) | Programmgesteuerte Einheit | |
| DE112011105402T5 (de) | Symboltabellen-Erzeugungsverfahren; Kommunikationsverfahren mit peripherer Ausrüstung und programmierbare Logiksteuerung | |
| DE69126761T2 (de) | Verfahren zur Entwicklung von Software | |
| DE102021210547A1 (de) | Steuergerät für Fahrzeuge mit besserer Speicherausnutzung | |
| DE102015218589A1 (de) | Verfahren und Vorrichtung zum Betreiben eines Many-Core-System | |
| EP1299802B1 (de) | Elektronisches system zur entwicklung von software und ein verfahren zum zugriff auf interne daten der software | |
| DE102017121167A1 (de) | Verfahren zum Betreiben eines Computersystems |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R012 | Request for examination validly filed | ||
| R016 | Response to examination communication | ||
| R018 | Grant decision by examination section/examining division | ||
| R020 | Patent grant now final | ||
| R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |