DE19704531C1 - Verfahren und Vorrichtung zum Laden einer Anwendungssoftware in einen programmierbaren Lesespeicher - Google Patents

Verfahren und Vorrichtung zum Laden einer Anwendungssoftware in einen programmierbaren Lesespeicher

Info

Publication number
DE19704531C1
DE19704531C1 DE19704531A DE19704531A DE19704531C1 DE 19704531 C1 DE19704531 C1 DE 19704531C1 DE 19704531 A DE19704531 A DE 19704531A DE 19704531 A DE19704531 A DE 19704531A DE 19704531 C1 DE19704531 C1 DE 19704531C1
Authority
DE
Germany
Prior art keywords
memory
read
ram
eeprom
boot
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
Application number
DE19704531A
Other languages
English (en)
Inventor
Peter Dipl Ing Kiefer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE19704531A priority Critical patent/DE19704531C1/de
Application granted granted Critical
Publication of DE19704531C1 publication Critical patent/DE19704531C1/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators

Description

Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung zum Laden einer Anwendungssoftware in einen pro­ grammierbaren Lesespeicher einer Datenverarbeitungsanlage mit einem Prozessor und einem adressierbaren Schreib-/Le­ sespeicher, wobei der programmierbare Lesespeicher einen Boot-Sektor mit einer Boot-Software und einen für die An­ wendungssoftware reservierten Speicherbereich aufweist und in der Boot-Software und/oder einem Teilabschnitt der An­ wendungssoftware Funktionen zum Löschen und Programmieren des Lesespeichers integriert sind.
Bei Systemen älterer Bauart mußte für ein Software-Update der Baustein mit dem Lesespeicher getauscht werden. Durch die Verfügbarkeit von programmierbaren Lesespeichern, z. B. Flash-EEPROMs ist es möglich, ein Software-Update ohne Tausch des Speicherbausteins durchzuführen. Das Problem bei Flash-Bau­ steinen besteht jedoch darin, daß die Programmierung nicht von einem Ladeprogramm aus dem Boot-Sektor dieses Bausteins durchgeführt werden kann, da Flash-Bausteine bei Durchführen eines Lösch- oder Programmierbefehls nicht mehr gelesen werden können. Die Datenausgänge werden in dieser Phase nämlich zur Statusausgabe verwendet. Eine Möglichkeit zur Lösung dieses Problems besteht darin, daß die in das Flash zu ladende neue Anwendungssoftware und ein sogenannter Loader mit Funktionen zum Löschen und Programmieren des Flash-Bau­ steins auf anderen Adressen des RAM kopiert und von dort aus­ geführt werden.
Aus DE 195 06 957 A1 (Verfahren und Anordnung zum Aktualisie­ ren und Laden von Anwenderprogrammen in einem Programmspei­ cher eines Mikroprozessorsystems) ist bereits ein Verfahren zum Laden von Anwenderprogrammen in einen Speicher bekannt, welches sich dadurch auszeichnet, daß der Programmspeicher in einen lösch- und programmierbaren Speicher (Flash) und einen statischen Schreib-Lesespeicher (SRAM) unterteilt ist. Mit Hilfe von Initialisierungs- und Nachladeroutinen, die zunächst im lösch- und programmierbaren Speicher gespeichert sind, werden dabei die jeweils benötigten Anwenderprogramme in den statischen Speicher kopiert.
Dabei muß sichergestellt werden, daß die Funktionen des Loaders aus diesem Adreßbereich des RAMs ablauffähig sind. Hierfür sind jedoch ein großer RAM-Speicher und ein entsprechend großer Adressierungsbereich erforderlich. Diese Hardware-Komponenten sind in vielen Fällen nicht verfügbar, z. B. bei Peripherie-Bausteinen, bei welchen aus Kostengründen zumeist geringere Speicherkapazitäten und Prozessoren mit geringerem Adressierungsbereich eingesetzt werden.
Es ist daher eine Aufgabe der vorliegenden Erfindung, eine Programmierung des Lesespeichers auch bei einem geringen RAM-Speicherangebot durchführen zu können, um ein Software-Update oder eine Wartung möglichst flexibel und mit geringen Adressierungsbereich des Prozessors durchführen zu können, nämlich entweder beim Hochlauf des Systems oder während des Betriebes einer Anwendungssoftware.
Diese Aufgaben werden bei einem Verfahren der eingangs ge­ nannten Art, bei welchem die Boot-Software zumindest eine Kopierfunktion aufweist und das Update beim Hochlauf des Sy­ stems erfolgt, in vorteilhafter Weise dadurch gelöst, daß durch die Kopierfunktion zumindest ein die Funktionen zum Löschen und Programmieren des Lesespeichers aufweisender Teilabschnitt der Boot-Software auf identische Speicher­ adressen des adressierbaren Schreib-/Lesespeichers kopiert wird und die Anwendungssoftware durch die im adressierbaren Schreib-/Lesespeicher befindliche Boot-Software in den pro­ grammierbaren Lesespeicher geladen wird, wobei durch Gene­ rieren eines programmierbaren Chip-Select Signals zwischen dem programmierbaren Lesespeicher und dem adressierbaren Schreib-/Lesespeicher umgeschalten wird. In analoger Weise werden die genannten Aufgaben bei einem Verfahren der ein­ gangs genannten Art, bei welchem die Boot-Software eine Kopierfunktion und die Anwendungssoftware einen Teilabschnitt mit Funktionen zum Löschen und Programmieren des Lese­ speichers aufweist und das Update während des Betriebes der Anwendungssoftware durchgeführt wird, in vorteilhafter Weise dadurch gelöst, daß durch die Kopierfunktion die Anwendungs­ software in den adressierbaren Schreib-/Lesespeicher an eine zumindest um den Teilabschnitt mit den Funktionen zum Löschen und Programmieren verschobene Adresse dieses Schreib-/Le­ sespeichers kopiert wird und die neue Anwendungssoftware durch den im adressierbaren Schreib-/Lesespeicher befind­ lichen Teilabschnitt mit den Funktionen zum Löschen und Pro­ grammieren der Anwendungssoftware in den programmierbaren Lesespeicher geladen wird, wobei durch Generieren eines pro­ grammierbaren Chip-Select Signals zwischen programmierbaren Lesespeicher und adressierbaren Schreib-/Lesespeicher umge­ schalten wird. Durch diese erfindungsgemäßen Lösungen ist es möglich, bei begrenztem Adressierungsbereich des Prozessors unter optimaler Ausnutzung des vorhandenen Speicherplatzes ein Update bei äußerst geringer Ausfallszeit der Datenver­ arbeitungseinrichtung vorzunehmen.
Bei der Ausführungsvariante, bei welcher das Update beim Hochlauf des Systems erfolgt, bietet sich die Möglichkeit, die gesamte Boot-Software in zwei Teilschritten in den adressierbaren Schreib-/Lesespeicher zu kopieren, nämlich einem ersten Teilschritt, bei welchem ein erster Teilab­ schnitt der Boot-Software mit einer im verbleibenden zweiten Teilabschnitt der Boot-Software im programmierbaren Lese­ speicher befindlichen Kopierfunktion in den Schreib-/Le­ sespeicher kopiert wird, und einem zweiten Teilschritt, bei welchem der zweite Teilabschnitt der Boot-Software mit einer im ersten Teilabschnitt der Boot-Software im program­ mierbaren Lesespeicher befindlichen Kopierfunktion in den adressierbaren Schreib-/Lesespeicher kopiert wird. Alternativ dazu bietet sich die weitere Möglichkeit, daß die Boot-Soft­ ware in zwei Teilabschnitte geteilt ist, nämlich einen Teil­ abschnitt mit den für den Systemhochlauf erforderlichen Funktionen und einer Kopierfunktion und einem zweiten Teilab­ schnitt mit den Funktionen zum Löschen und Programmieren des programmierbaren Lesespeichers, wobei der die Funktionen zum Löschen und Programmieren enthaltende zweite Teilabschnitt durch die im ersten Teilabschnitt im programmierbaren Lese­ speicher befindliche Kopierfunktion in den adressierbaren Schreib-/Lesespeicher kopiert wird.
Bei einer vorteilhaften und einfach zu realisierenden Aus­ führungsform des erfindungsgemäßen Verfahrens wird das zum Auswählen des programmierbaren Lesespeichers bzw. des adressierbaren Schreib-/Lesespeichers erforderliche Chip-Select Signal einerseits in Abhängigkeit von dem Inhalt zweier programmierbarer Register mit je zwei Zuständen und andererseits abhängig von einem Datum für die Grenze zwischen dem ersten und dem zweiten Teilabschnitt der Boot-Software gebildet, wobei das erste, den Speicherbereich oberhalb der Grenze betreffende Boot-Select Register mit seinem ersten Zu­ stand den programmierbaren Lesespeicher und mit seinem zweiten Zustand den adressierbaren Schreib-/Lesespeicher aus­ wählt und das zweite, den Speicherbereich unterhalb der Grenze betreffende Applikations-Select Register mit dessen ersten Zustand den programmierbaren Lesespeicher und mit dessen zweiten Zustand den adressierbaren Schreib-/Le­ sespeicher auswählt. Bei einer besonders einfachen Aus­ führungsform dieser Art wird beim Kopieren der Boot-Software aus dem programmierbaren Lesespeicher in den adressierbaren Schreib-/Lesespeicher die Grenze zwischen dem ersten und dem zweiten Teilabschnitt des Speichers so festgelegt, daß der für die Boot-Software reservierte Boot-Sektor in zwei gleich große Teile geteilt wird. Für den Betrieb der Datenver­ arbeitungsanlage durch Ablauf einer Kopie der Anwendungssoftware in den adressierbaren Schreib-/Le­ sespeicher wird nach dem Kopieren der Boot-Software in den Schreib-/Lesespeicher die Grenze zwischen dem ersten und dem zweiten Teilabschnitt des Speichers auf ein Datum zwischen dem für die Boot-Software reservierten Boot-Sektor und dem für die Anwendungssoftware reservierten Speicherbereich verlegt.
Ferner wird im Rahmen der vorliegenden Erfindung zur Lösung der gestellten Aufgaben zum Durchführen eines Updates beim Hochlauf der Datenverarbeitungsanlage eine Vorrichtung der eingangs erwähnten Art vorgeschlagen, bei welcher ein Mittel zum Kopieren zumindest eines die Funktionen zum Löschen und Programmieren des Lesespeichers aufweisenden Teilabschnittes der Boot-Software in den adressierbaren Schreib-/Lesespeicher und ein Mittel zum Laden der Anwendungssoftware in den programmierbaren Lesespeicher durch die im adressierbaren Schreib-/Lesespeicher befindliche Boot-Software vorgesehen ist, wobei zum Umschalten zwischen dem programmierbaren Lesespeicher und dem adressierbaren Schreib-/Lesespeicher ein Mittel zum Generieren eines Chip-Select Signals vorgesehen ist, welches zwei programmierbare Register mit je zwei Zuständen aufweist, nämlich ein Boot-Select Register für einen ersten Teilabschnitt des Speicherbereichs, dessen erster Zustand den programmierbaren Lesespeicher und dessen zweiter Zustand den adressierbaren Schreib-/Lesespeicher selektiert, und ein Applikations-Select Register für einen zweiten Teilabschnitt des Speicherbereichs, dessen erster Zustand den programmierbaren Lesespeicher und dessen zweiter Zustand den adressierbaren Schreib-/Lesespeicher selektiert, und das Mittel zum Generieren des Chip-Select Signals weiters ein Mittel zum Voreinstellen der Größe des ersten und des zweiten Teilabschnittes des Speicherbereichs aufweist. Das Mittel zum Voreinstellen der Größe des ersten und zweiten Teilabschnittes wird in vorteilhafter Weise durch einen programmierbaren Chip-Select Ausgang des Prozessors gebildet, dessen Signal an eine logische Einheit angelegt ist, um ent­ weder den Inhalt des Boot-Select Registers oder des Appli­ kations-Select Registers zur Generierung eines Chip-Select Signals für den programmierbaren Lesespeicher bzw. den adressierbaren Schreib-/Lesespeicher durchzuschalten.
Analog wird zum Durchführen eines Updates während des Ablaufs der Anwendungssoftware dieser Datenverarbeitungsanlage eine Vorrichtung vorgeschlagen, welche ein Mittel zum Kopieren der Anwendungssoftware in den adressierbaren Schreib-/Lese­ speicher an eine zumindest um den Teilabschnitt mit den Funk­ tionen zum Löschen und Programmieren verschobene Adresse dieses Speichers und ein Mittel zum Laden der neuen Anwendungssoftware in den programmierbaren Lesespeicher durch die Funktionen des im adressierbaren Schreib-/Lesespeicher befindlichen Teilabschnittes der Anwendungssoftware aufweist, wobei die Vorrichtung weiters ein Mittel zum Generieren eines Chip-Select Signals aufweist, um zwischen dem programmierbaren Lesespeicher und dem adressierbaren Schreib-/Le­ sespeicher umzuschalten, und das Mittel zum Generieren eines Chip-Select Signals zwei programmierbare Register mit je zwei Zuständen aufweist, nämlich ein Boot-Select Register für einen ersten Teilabschnitt des Speicherbereichs, dessen erster Zustand den programmierbaren Lesespeicher und dessen zweiter Zustand den adressierbaren Schreib-/Lesespeicher selektiert, und ein Applikations-Select Register für einen zweiten Teilabschnitt des Speicherbereichs, dessen erster Zustand den programmierbaren Lesespeicher und dessen zweiter Zustand den adressierbaren Schreib-/Lesespeicher selektiert.
Weitere Vorteile der vorliegenden Erfindung er­ geben sich aus der folgenden, nicht einschränkenden Beschrei­ bung beispielsweiser Ausführungsvarianten der Erfindung, wobei auf die beiliegenden Figuren Bezug genommen wird, die folgendes zeigen:
Fig. 1 ein Ausführungsbeispiel für eine Vorrichtung der erfindungsgemäßen Art in einer Detailansicht,
Fig. 2a bis 2d ein Ausführungsbeispiel zur Durchführung des erfindungsgemäßen Verfahrens bei Hochlauf des Systems,
Fig. 3 eine alternative Ausführungsvariante des Ver­ fahrens gemäß Fig. 2,
Fig. 4 ein Ausführungsbeispiel zur Durchführung des er­ findungsgemäßen Verfahrens während des Betriebes der Datenverarbeitungsanlage.
Vorerst wird auf die Fig. 1 Bezug genommen, in welcher eine Vorrichtung der erfindungsgemäßen Art in einer Detailansicht dargestellt ist. Die Vorrichtung umfaßt eine herkömmliche, hier nicht dargestellte Datenverarbeitungsanlage mit einem Prozessor, einem programmierbaren Lesespeicher in Form eines Flash-EEPROMs und einen adressierbaren Schreib-/Lesespeicher, einem sogenannten RAM. Zum Laden einer neuen Software (Update) ist die Datenverarbeitungsanlage mit einem Netzwerk oder einen entsprechenden Datenträger verbunden.
Die in Fig. 1 dargestellte Vorrichtung dient zum Umschalten zwischen dem Flash-EEPROM und dem RAM durch Setzen eines Chip-Select Signals entweder an der mit Flash Select be­ zeichneten Leitung für das Flash-EEPROM oder an der mit RAM-Select bezeichneten Leitung für das RAM. Das Chip-Select Signal wird durch eine Dekoder-Einheit in Abhängigkeit von dem am Adreßbus anliegenden Adreßsignal und einem Bank-Select Signal erzeugt. Das Bank Select Signal wird durch den Inhalt zweier durch Software programmierbarer Register, nämlich einem mit Boot-Select bezeichneten Register und einem mit Applikations-Select bezeichneten Register, und einem mit UCS bezeichneten, durch Software programmierbaren Signal be­ stimmt, welches in Abhängigkeit von dem Adreßsignal zur Aus­ wahl des Boot- oder des Applikations-Select Registers dient.
Das Boot-Select und das Applikations-Select Register können je zwei Zustände einnehmen, nämlich einen ersten Zustand, z. B. den Registerinhalt "0", durch welchen das Flash-EEPROM selektiert wird, und einen zweiten Zustand, z. B. den Registerinhalt "1", durch welchen das RAM selektiert wird. Die Register werden in Abhängigkeit von einem Chip-Select Signal an einer mit UCS bezeichneten Leitung an die Dekoder-Ein­ heit zur Erzeugung der Chip-Select Signale für das Flash-EEPROM bzw. das RAM durchgeschalten.
Das UCS Signal ist von einer durch Software definierbaren Speicheradresse abhängig, die als Grenze zwischen einen hohen Speicherbereich, dem Boot-Sektor, und einem niedrigen Speicherbereich, dem Applikations-Sektor, unterscheidet. Das UCS Signal ist bei dem gezeigten Ausführungsbeispiel ein durch Software programmierbarer Chip-Select Ausgang des Pro­ zessors, z. B. bei einem Intel 80C186 das Signal "Upper Chip Select", welches über einen Multiplexer MUX mit den Ausgängen der Register Boot Select und Applikations-Select verknüpft ist. Dadurch ergibt sich die Auswahl eines der beiden Register zur Erzeugung des Bank-Select Signals, nämlich, wenn die am Adreßbus anliegende Adresse in den Bereich des Boot-Sektors fällt, wird das UCS Signal gesetzt und vom Multi­ plexer MUX der Inhalt des Boot-Select Registers durchge­ schalten, wogegen, wenn die am Adreßbus anliegende Adresse in den Bereich des Applikations-Sektors fällt, wird das UCS Signal nicht gesetzt und vom Multiplexer MUX der Inhalt des Applikations-Select Registers durchgeschalten.
Mit der oben beschriebenen Einrichtung kann nun mittels Soft­ ware einerseits eine Grenze zwischen dem hohen Speicherbe­ reich (Boot-Sektor) und dem niedrigen Speicherbereich (Applikations-Sektor) festgelegt werden, andererseits mittels Software für die beiden Speicherbereiche unabhängig vonein­ ander zwischen dem Flash-EEPROM und dem RAM umgeschalten werden.
Die oben beschriebene Vorrichtung kann nun zum Programmieren bzw. Laden einer neuen Software-Version in das Flash-EEPROM genutzt werden. Das hierfür angewandte Verfahren wird im fol­ genden mit Bezug auf die Fig. 2 bis 4 anhand einiger Aus­ führungsvarianten näher erläutert.
In Fig. 2a bis 2d ist die Speicherbelegung des Flash-EEPROM und des RAM, sowie der hohe Speicherbereich (UCS-Be­ reich) in den einzelnen Verfahrensschritten für einen be­ grenzten Speicherbereich von 1024 kByte je Bank dargestellt, wobei in den Figuren Fig. 2 u. 3 nur die oberen 512 kByte des Speichers zu sehen ist.
In Fig. 2a ist die Ausgangssituation nach dem Reset zu Be­ ginn des Systemhochlaufs dargestellt. In diesem Zustand haben das Boot-Select Register und das Applikations-Select Register den Inhalt 0, das heißt, daß für beide Speicherbereiche das Flash-EEPROM ausgewählt ist. Der Boot-Sektor ist mit 32 kByte festgelegt, so daß für den Applikations-Sektor ein Speicherbe­ reich von 480 kByte zur Verfügung steht.
Vorerst muß beim Systemhochlauf der Inhalt des Boot-Sektors, die Boot-Software, welche einen sogenannten ROM-Loader mit Funktionen zum Löschen und Programmieren des Flash-EEPROM um­ faßt, in die RAM Bank kopiert werden. Zu diesem Zweck ist das UCS-Signal zur Auswahl des Boot-Select Registers auf einen Anfangswert programmiert, bei welchem der UCS Bereich des Speichers nur einen Teil des Boot-Sektors umfaßt. Wesentlich ist, daß die in jedem Teilabschnitt des Boot-Sektors befind­ liche Boot-Software eine Kopierfunktion enthält. Bei dem ge­ zeigten Ausführungsbeispiel umfaßt der UCS Bereich genau die Hälfte des Boot-Sektors (16 kByte).
In einem ersten Schritt wird die untere Hälfte der Boot-Soft­ ware durch eine in der oberen Hälfte der Boot-Software be­ findliche Kopierfunktion von dem Flash in das RAM kopiert. Dies erfolgt dadurch, daß ein Block der unteren Hälfte der Boot-Software aus dem Flash gelesen, das Applikations-Select Register auf 1 gesetzt wird (RAM-Bank ausgewählt) und dieser Block auf dieselbe Adresse in das RAM geschrieben wird. Durch aufeinanderfolgendes Lesen des Flash, Umschalten des Appli­ kations-Select Registers von 0 (Flash) auf 1 (RAM) und Durch­ führen von eines Schreibbefehls in das RAM wird so die ge­ samte untere Hälfte der Boot-Software aus dem Flash in das RAM kopiert. Das Boot-Select Register behält dabei immer den Wert 0, so daß die Ausführung des im UCS-Bereich befindlichen Kopierprogramms immer aus dem Flash erfolgt. Der Bereich der Boot-Software mit dem ablaufenden Kopierprogramm ist in den Fig. 2a und 2b stark umrandet dargestellt. Die Speicher­ belegung nach diesem ersten Kopierschritt ist Fig. 2b zu entnehmen.
In dem nächsten, in Fig. 2c veranschaulichten Schritt wird das Applikations-Select Bit auf 0 gesetzt, um das Flash-EEPROM auszuwählen. Mit der in der unteren Hälfte der Boot-Software im Flash-EEPROM befindlichen Kopierfunktion wird nun durch Setzen des Boot-Select Registers auf 0 (Flash), Lesen der oberen Hälfte der Boot-Software aus dem Flash-EEPROM, Um­ schalten des Boot-Select Registers auf 1 (RAM) und Durch­ führen eines Schreibbefehls im RAM in analoger Weise die obere Hälfte der Boot-Software in das RAM kopiert. Die Kopierfunktion läuft aus dem Flash EPROM ab, weshalb die be­ treffende untere Hälfte der Boot-Software in Fig. 2c stark umrandet dargestellt ist.
Nachdem die gesamte Boot-Software aus dem Flash-EEPROM in das RAM kopiert wurde, wird nun das UCS Signal umprogrammiert, und zwar so, daß der UCS-Speicherbereich die gesamte Boot-Software enthält, im vorliegenden Fall 32 kByte des oberen Speicherbereichs. Die unter Hälfte der Boot-Software wird durch das erfolgte Umprogrammieren des UCS-Bereich nun nicht mehr durch das Applikations-Select Register ausgewählt, son­ dern wie auch die obere Hälfte durch das Boot-Select Register. Nach diesem, in Fig. 2d dargestellten Schritt ist die den ROM-Loader mit Funktionen zum Löschen und Program­ mieren des Flash-EEPROM enthaltende Boot-Software aus dem RAM ablauffähig. Dieser Zustand ist durch starke Umrahmung der gesamten Boot-Software im RAM dargestellt. Das Boot-Select Register ist demnach in der Folge immer auf 1 gesetzt.
Wie in Fig. 2d zu sehen ist, befindet sich bei dem gezeigten Ausführungsbeispiel keine Anwendungssoftware im Flash-EEPROM, das heißt, daß das Flash-EEPROM noch nicht programmiert ist. In diesem Fall wird von der im RAM ablaufenden Boot-Software eine Anwendungssoftware angefordert, z. B. aus einem Netzwerk, und mittels der Funktionen des ROM-Loaders in das Flash-EEPROM einprogrammiert. Die Funktionen des ROM-Loaders zum Löschen und Programmieren des Flash-EEPROMs sind dem Fachmann bekannt und werden an dieser Stelle nicht näher erläutert. Nach Einprogrammieren bzw. Laden der Software in das Flash-EEPROM wird die Anwendungssoftware durch die Kopierfunktion der Boot-Software in das RAM kopiert und kann aus diesem ab­ laufen. Beim Einprogrammieren der Anwendungssoftware in das Flash-EEPROM bzw. beim Kopieren dieser Software in das RAM ist wieder ein Umschalten des Applikations-Select Registers in der weiter oben mit Bezug auf die Fig. 2b beschriebenen Weise erforderlich.
Ist bei einer (hier nicht dargestellten Ausführungsvariante) im Flash-EEPROM hingegen bereits eine Anwendungssoftware vor­ handen, so wird beim Systemhochlauf überprüft, ob es sich um eine aktuelle Software Version handelt, oder ob ein Update erforderlich ist. Falls eine aktuelle Version im Flash-EEPROM vorhanden ist, wird die Anwendungssoftware zur Ausführung in das RAM kopiert. Falls es sich jedoch um eine nicht mehr aktuelle Version handelt, wird durch die aus dem RAM ab­ laufende Boot-Software eine neue Anwendungssoftware ange­ fordert, der Applikations-Sektor des Flash-EEPROMs mit der alten Software durch die Löschfunktion des ROM-Loaders aus dem RAM gelöscht und die neue Software durch die Programmier­ funktion des ROM-Loaders in das Flash-EEPROM einprogrammiert. Danach kann diese neue Software zur Ausführung in das RAM kopiert werden.
Fig. 3 zeigt eine Ausführungsvariante des oben mit Bezug auf die Fig. 2a bis 2d beschriebenen Verfahrens, bei welchem die Boot-Software gemäß ihrer Funktionen in zwei Teile ge­ teilt ist, nämlich einen ersten Teil, welcher die für den Systemhochlauf erforderlichen Funktionen und eine Kopier­ funktion enthält, und einen zweiten Teil, welcher die Funktionen des ROM-Loaders (z. B. Löschen, Programmieren) um­ faßt.
Der Vorteil dieser Ausführungsvariante liegt darin, daß nicht die gesamte Boot-Software in zwei Schritten (vgl. Fig. 2b, 2c) in das RAM kopiert werden muß, sondern nur der untere Teilabschnitt der Boot-Software mit dem ROM-Loader, der in einem Schritt aus dem Flash-EEPROM in das RAM kopiert werden kann. Demnach ist auch nur eine Kopierfunktion erforderlich, welche im oberen Teilabschnitt der Boot-Software in dem Hochlaufanteil integriert ist und aus dem Flash-EEPROM ab­ läuft. Die einzelnen Teilschritte zum Kopieren des ROM-Loaders sind weiter oben mit Bezug auf die Fig. 2a und 2b ausführlich beschrieben und werden daher hier nicht mehr näher erläutert. Um die in Fig. 3 dargestellte Konfiguration zu erreichen, wird ausgehend von der in Fig. 2b darge­ stellten Konfiguration das Applikations-Select Register auf 1 (RAM ausgewählt) gesetzt und der UCS-Bereich so umprogram­ miert, so daß er die gesamte Boot-Software umfaßt (vgl. Fig. 2d). Danach wird auch das Boot-Select Register auf 1 gesetzt (RAM ausgewählt), um die Funktionen des ROM-Loaders aus dem RAM ablaufen lassen zu können. Der für den Hochlaufanteil der Boot-Software im Flash-EEPROM erforderliche Teilabschnitt des Boot-Sektors bleibt im RAM unbeschrieben.
Die weiteren Verfahrensschritte zum Einprogrammieren neuer Anwendungssoftware in das Flash-EEPROM und Kopieren der Soft­ ware in das RAM erfolgt bei dieser Ausführungsvariante in der oben mit Bezug auf die Fig. 2d beschrieben Weise.
Die in den Fig. 2 und 3 dargestellten und oben beschrie­ benen Ausführungsbeispiele setzen voraus, daß das Software Update bei einem Hochlauf der Datenverarbeitungsanlage (Reset) durchgeführt wird.
Bei dem in Fig. 4 dargestellten und im folgenden näher er­ läuterten Ausführungsbeispiel ist hingegen ein Software Up­ date (Laden neuer Software in das Flash-EEPROM) während des Ablaufens der (alten) Anwendungssoftware aus dem RAM im Hintergrund möglich.
Der ursprüngliche Hochlauf des Systems erfolgt in herkömm­ licher Weise oder wie oben mit Bezug auf die Fig. 2 und 3 beschrieben. Die Anwendungssoftware wird aus dem Flash-EEPROM in das RAM kopiert und läuft aus diesem ab.
In Fig. 4 ist eine Konfiguration dargestellt, bei welcher die Boot-Software und die Anwendungssoftware im Flash-EEPROM 512 kByte des Speichers von insgesamt 1024 kByte belegen.
Um ein Einprogrammieren eines Software Updates in das Flash-EEPROM zu ermöglichen, muß die Anwendungssoftware einen soge­ nannten RAM-Loader mit Funktionen zum Löschen und Program­ mieren des Flash-EEPROMs enthalten. Die Funktionen des RAM Loaders entsprechen im wesentlichen den Funktionen des in der Boot-Software integrierten ROM-Loaders. Der RAM Loader ist im unteren Endabschnitt der Anwendungssoftware integriert.
Um die Funktionen des RAM-Loaders aus dem RAM während des Ab­ laufs der Anwendungssoftware aus dem RAM durchführen zu können, wird die Anwendungssoftware nach dem Systemhochlauf aus dem Flash-EEPROM nicht auf identische Adressen des RAM kopiert, sondern um einen bestimmten, zumindest den RAM-Loader umfassenden Abschnitt nach unten versetzt. Die zwischen der Kopie der Boot-Software und der versetzten Kopie der Anwendungssoftware entstehende Lücke in der Speicherbe­ legung des RAM kann, wie in Fig. 4 dargestellt, zur Ab­ speicherung von Daten genutzt werden.
Zum Laden einer neuen Software-Version der Anwendungssoftware in das Flash-EEPROM wird nun aus dem RAM-Loader durch Setzen oder Rücksetzen des Applikations-Select Registers zwischen dem Flash-EEPROM und dem RAM umgeschalten. Das Boot-Select Register bleibt in diesem Fall auf 1 gesetzt (RAM).
Die Software wird aus einem Netzwerk oder von einem Datenträger blockweise gelesen und vorerst im RAM zwischengespeichert. Durch Rücksetzen des Applikations-Select Bit auf 0 (EEPROM) und Durchführen eines Schreibbefehls kann nun der im RAM befindliche Datenblock byteweise in das EEPROM einprogrammiert werden. In dieser Ladephase muß jedoch sichergestellt sein, daß in dem Zeitraum (für jedes Byte) zwischen Rücksetzen und Setzen des Applikations-Select Registers die im RAM ablaufende Applikations-Software keine gültige Interrupt Anforderung stellt, so daß die Interrupt-Lei­ tungen durch den RAM-Loader für diesen Zeitraum gesperrt und danach wieder freigegeben werden. Demnach ist ein einfaches Löschen der vorhandenen (alten) Software im Flash-EEPROM und ein Laden einer neuen Software-Version in dieses Flash-EEPROM während des Ablaufens der (alten) Software aus dem RAM möglich.
Das Laden der bereits in das Flash-EEPROM einprogrammierten neuen Software-Version in das RAM wird üblicherweise durch einen neuen Systemhochlauf (Reset) vorgenommen. Dies kann durch einen Kalt- oder Warmstart der Datenverarbeitungsanlage durchgeführt werden.

Claims (10)

1. Verfahren zum Laden einer Anwendungssoftware in einen programmierbaren Lesespeicher (EEPROM) einer Datenver­ arbeitungsanlage, wobei der programmierbare Lesespeicher (EEPROM) einen Boot-Sektor mit einer Boot-Software auf­ weist, welche Funktionen zum Löschen und Programmieren des Lesespeichers (EEPROM) und zumindest eine Kopier­ funktion umfaßt, dadurch gekennzeichnet, daß durch die Kopierfunktion zumindest ein die Funktionen zum Löschen und Programmieren des Lesespeichers (EEPROM) aufweisender Teilabschnitt der Boot-Software auf identische Speicher­ adressen des adressierbaren Schreib-/Lesespeichers (RAM) kopiert wird und die Anwendungssoftware durch die im adressierbaren Schreib-/Lesespeicher (RAM) befindliche Boot-Software in den programmierbaren Lesespeicher (EEPROM) geladen wird, wobei durch Generieren eines pro­ grammierbaren Chip-Select Signals zwischen dem pro­ grammierbaren Lesespeicher (EEPROM) und dem adressier­ baren Schreib-/Lesespeicher (RAM) umgeschalten wird.
2. Verfahren zum Laden einer Anwendungssoftware in einen programmierbaren Lesespeicher (EEPROM) einer Datenver­ arbeitungsanlage, wobei der programmierbare Lesespeicher (EEPROM) einen Boot-Sektor mit einer Boot-Software, die eine Kopierfunktion aufweist, und einen Sektor mit zu­ mindest einer Anwendungssoftware umfaßt, welche einen Teilabschnitt mit Funktionen zum Löschen und Program­ mieren des Lesespeichers (EEPROM) aufweist, dadurch ge­ kennzeichnet, daß durch die Kopierfunktion die An­ wendungssoftware in den adressierbaren Schreib-/Le­ sespeicher (RAM) an eine zumindest um den Teilab­ schnitt mit den Funktionen zum Löschen und Programmieren verschobene Adresse dieses Schreib-/Lesespeichers (RAM) kopiert wird und die neue Anwendungssoftware durch den im adressierbaren Schreib-/Lesespeicher (RAM) befindlichen Teilabschnitt mit den Funktionen zum Löschen und Program­ mieren der Anwendungssoftware in den programmierbaren Lesespeicher (EEPROM) geladen wird, wobei durch Generieren eines programmierbaren Chip-Select Signals zwischen programmierbaren Lesespeicher (EEPROM) und adressierbaren Schreib-/Lesespeicher (RAM) umgeschalten wird.
3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die gesamte Boot-Software in zwei Teilschritten in den adressierbaren Schreib-/Lesespeicher (RAM) kopiert wird, nämlich einem ersten Teilschritt, bei welchem ein erster Teilabschnitt der Boot-Software mit einer im verbleiben­ den zweiten Teilabschnitt der Boot-Software im program­ mierbaren Lesespeicher (EEPROM) befindlichen Kopier­ funktion in den Schreib-/Lesespeicher (RAM) kopiert wird, und einem zweiten Teilschritt, bei welchem der zweite Teilabschnitt der Boot-Software mit einer im ersten Teil­ abschnitt der Boot-Software im programmierbaren Lese­ speicher (EEPROM) befindlichen Kopierfunktion in den adressierbaren Schreib-/Lesespeicher (RAM) kopiert wird.
4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Boot-Software zwei Teilabschnitte aufweist, nämlich einen Teilabschnitt mit den für den Systemhochlauf er­ forderlichen Funktionen und einer Kopierfunktion und einem zweiten Teilabschnitt mit den Funktionen zum Löschen und Programmieren des programmierbaren Lese­ speichers (EEPROM), wobei der die Funktionen zum Löschen und Programmieren enthaltende zweite Teilabschnitt durch die im ersten Teilabschnitt im programmierbaren Lese­ speicher (EEPROM) befindliche Kopierfunktion in den adressierbaren Schreib-/Lesespeicher (RAM) kopiert wird.
5. Verfahren nach einem der Ansprüche 3 oder 4, dadurch ge­ kennzeichnet, daß zum Auswählen des programmierbaren Lesespeichers (EEPROM) bzw. des adressierbaren Schreib-/Le­ sespeichers (RAM) ein Chip-Select Signal erzeugt wird, welches in Abhängigkeit von dem Inhalt zweier program­ mierbarer Register mit je zwei Zuständen und einem Datum für die Grenze zwischen dem ersten und dem zweiten Teil­ abschnitt der Boot-Software gebildet wird, wobei das erste, den Speicherbereich oberhalb der Grenze be­ treffende Boot-Select Register mit seinem ersten Zustand den programmierbaren Lesespeicher (EEPROM) und mit seinem zweiten Zustand den adressierbaren Schreib-/Lesespeicher (RAM) auswählt und das zweite, den Speicherbereich unter­ halb der Grenze betreffende Applikations-Select Register mit dessen ersten Zustand den programmierbaren Lese­ speicher (EEPROM) und mit dessen zweiten Zustand den adressierbaren Schreib-/Lesespeicher (RAM) auswählt.
6. Verfahren nach Anspruch 3 oder 4 und 5, dadurch gekenn­ zeichnet, daß beim Kopieren der Boot-Software aus dem programmierbaren Lesespeicher (EEPROM) in den adressier­ baren Schreib-/Lesespeicher (RAM) die Grenze zwischen dem ersten und dem zweiten Teilabschnitt des Speichers den für die Boot-Software reservierten Boot-Sektor in zwei gleich große Teile teilt.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß nach dem Kopieren der Boot-Software in den Schreib-/Le­ sespeicher (RAM) die Grenze zwischen dem ersten und dem zweiten Teilabschnitt des Speichers auf ein Datum zwischen dem für die Boot-Software reservierten Boot-Sektor und dem für die Anwendungssoftware reservierten Speicherbereich verlegt wird.
8. Vorrichtung zum Laden einer Anwendungssoftware in einen programmierbaren Lesespeicher (EEPROM) einer Datenver­ arbeitungsanlage mit einem Prozessor und einem adressier­ baren Schreib-/Lesespeicher (RAM), wobei der programmier­ bare Lesespeicher (EEPROM) einen Boot-Sektor mit einer Boot-Software aufweist, welche Funktionen zum Löschen und Programmieren des Lesespeichers (EEPROM) und zumindest eine Kopierfunktion umfaßt, wobei die Vorrichtung weiters ein Mittel zum Kopieren zumindest eines die Funktionen zum Löschen und Programmieren des Lesespeichers (EEPROM) aufweisenden Teilabschnittes der Boot-Software in den adressierbaren Schreib-/Lesespeicher (RAM) und ein Mittel zum Laden der Anwendungssoftware in den programmierbaren Lesespeicher (EEPROM) durch die im adressierbaren Schreib-/Lesespeicher (RAM) befindliche Boot-Software aufweist, dadurch gekennzeichnet, daß zum Umschalten zwischen dem programmierbaren Lesespeicher (EEPROM) und dem adressierbaren Schreib-/Lesespeicher (RAM) ein Mittel zum Generieren eines Chip-Select Signals vorgesehen ist, welches zwei programmierbare Register mit je zwei Zuständen aufweist, nämlich ein Boot-Select Register für einen ersten Teilabschnitt des Speicherbereichs, dessen erster Zustand den programmierbaren Lesespeicher (EEPROM) und dessen zweiter Zustand den adressierbaren Schreib-/Le­ sespeicher (RAM) selektiert, und ein Applikations-Select Register für einen zweiten Teilabschnitt des Speicherbereichs, dessen erster Zustand den programmier­ baren Lesespeicher (EEPROM) und dessen zweiter Zustand den adressierbaren Schreib-/Lesespeicher (RAM) selektiert, und daß das Mittel zum Generieren des Chip-Select Signals weiters ein Mittel zum Voreinstellen der Größe des ersten und des zweiten Teilabschnittes des Speicherbereichs aufweist.
9. Vorrichtung nach Anspruch 8, dadurch gekennzeichnet, daß das Mittel zum Voreinstellen der Größe des ersten und zweiten Teilabschnittes durch einen programmierbaren Chip-Select Ausgang (UCS) des Prozessors gebildet wird, dessen Signal an eine logische Einheit (MUX) angelegt ist, um entweder den Inhalt des Boot-Select Registers oder des Applikations-Select Registers zur Generierung eines Chip-Select Signals für den programmierbaren Lese­ speicher (EEPROM) bzw. den adressierbaren Schreib-/Le­ sespeicher (RAM) durchzuschalten.
10. Vorrichtung zum Laden einer neuen Anwendungssoftware in einen programmierbaren Lesespeicher (EEPROM) einer Daten­ verarbeitungsanlage mit einem Prozessor und einem adres­ sierbaren Schreib-/Lesespeicher (RAM) während des Ablaufs einer Anwendungssoftware dieser Datenverarbeitungsanlage aus dem adressierbaren Schreib-/Lesespeicher (RAM), wobei der programmierbare Lesespeicher (EEPROM) einen Boot-Sektor mit einer Boot-Software und einen Sektor mit zu­ mindest einer Anwendungssoftware aufweist, welche einen Teilabschnitt mit Funktionen zum Löschen und Programmieren des Lesespeichers (EEPROM) umfaßt, dadurch gekennzeichnet daß sie weiters ein Mittel zum Kopieren der Anwendungssoftware in den adressierbaren Schreib-/Le­ sespeicher (RAM) an eine zumindest um den Teilab­ schnitt mit den Funktionen zum Löschen und Programmieren verschobene Adresse dieses Speichers und ein Mittel zum Laden der neuen Anwendungssoftware in den programmier­ baren Lesespeicher (EEPROM) durch die Funktionen des im adressierbaren Schreib-/Lesespeicher (RAM) befindlichen Teilabschnittes der Anwendungssoftware aufweist, wobei die Vorrichtung zum Umschalten zwischen dem programmierbaren Lesespeicher (EEPROM) und dem adressierbaren Schreib-/Lesespeicher (RAM) ein Mittel zum Generieren eines Chip-Select Signals aufweist, welches zwei programmierbare Register mit je zwei Zuständen aufweist, nämlich ein Boot-Select Register für einen ersten Teilabschnitt des Speicherbereichs, dessen erster Zustand den programmierbaren Lesespeicher (EEPROM) und dessen zweiter Zustand den adressierbaren Schreib-/Le­ sespeicher (RAM) selektiert, und ein Applikations-Select Register für einen zweiten Teilabschnitt des Speicherbereichs, dessen erster Zustand den programmier­ baren Lesespeicher (EEPROM) und dessen zweiter Zustand den adressierbaren Schreib-/Lesespeicher (RAM) selektiert.
DE19704531A 1997-02-06 1997-02-06 Verfahren und Vorrichtung zum Laden einer Anwendungssoftware in einen programmierbaren Lesespeicher Expired - Fee Related DE19704531C1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19704531A DE19704531C1 (de) 1997-02-06 1997-02-06 Verfahren und Vorrichtung zum Laden einer Anwendungssoftware in einen programmierbaren Lesespeicher

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19704531A DE19704531C1 (de) 1997-02-06 1997-02-06 Verfahren und Vorrichtung zum Laden einer Anwendungssoftware in einen programmierbaren Lesespeicher

Publications (1)

Publication Number Publication Date
DE19704531C1 true DE19704531C1 (de) 1998-04-09

Family

ID=7819513

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19704531A Expired - Fee Related DE19704531C1 (de) 1997-02-06 1997-02-06 Verfahren und Vorrichtung zum Laden einer Anwendungssoftware in einen programmierbaren Lesespeicher

Country Status (1)

Country Link
DE (1) DE19704531C1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004114131A1 (de) * 2003-06-24 2004-12-29 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum nachladen einer software in den bootsektor eines programmierbaren lesespeicher

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19506957A1 (de) * 1995-02-28 1996-08-29 Siemens Ag Verfahren und Anordnung zum Aktualisieren und Laden von Anwenderprogrammen in einem Programmspeicher eines Mikroprozessorsystems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19506957A1 (de) * 1995-02-28 1996-08-29 Siemens Ag Verfahren und Anordnung zum Aktualisieren und Laden von Anwenderprogrammen in einem Programmspeicher eines Mikroprozessorsystems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004114131A1 (de) * 2003-06-24 2004-12-29 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum nachladen einer software in den bootsektor eines programmierbaren lesespeicher
US7584350B2 (en) 2003-06-24 2009-09-01 Bayerische Motoren Werke Aktiengesellschaft Method for booting up software in the boot sector of a programmable read-only memory

Similar Documents

Publication Publication Date Title
DE69726304T2 (de) Nichtflüchtiger schreibbarer speicher mit programmierungsaufhebungsbefehl
DE4215063C2 (de) Einrichtung und Verfahren zum Seitenwechsel bei einem nicht-flüchtigen Speicher
EP2923261B1 (de) VERFAHREN ZUR STEUERUNG EINES FLASH-SPEICHERS ZUR MASSENSPEICHERUNG, DER VON EINEM AN EINEN HOST ANSCHLIEßBAREN KOMMUNIKATIONSGERÄT UMFASST IST, UND COMPUTERPROGRAMMPRODUKT ZUR AUSFÜHRUNG DES VERFAHRENS
DE2916658C2 (de)
DE19836748C1 (de) Verfahren zum Applizieren von Steuerdaten eines elektronischen Kraftfahrzeug-Steuergeräts
DE60317347T2 (de) Speicherschaltung mit nichtflüchtigem ram und ram
EP0067364B1 (de) Verfahren und Anordnung zum nichtflüchtigen Speichern des Zählerstandes einer elektronischen Zählschaltung
DE102006029690A1 (de) Beibehaltung einer Identifikation einer elektronischen Steuereinheit bei Umprogrammierungsereignissen
EP0500973B1 (de) EEPROM und Verfahren zum Ändern einer Initialisierungsroutine im EEPROM
EP1314135A1 (de) Verfahren zur virtuellen vergrösserung des stacks eines tragbaren datenträgers
DE4411389C2 (de) Programmierbare Steuereinheit und Betriebsverfahren
DE10330607A1 (de) Einzelchip-Mikrocomputer und Verfahren zu dessen Boot-Region-Schaltern
DE60300360T2 (de) Informationsspeichervorrichtung
DE19931184A1 (de) Verfahren und Vorrichtung zur Veränderung des Speicherinhalts von Steuergeräten
DE19704531C1 (de) Verfahren und Vorrichtung zum Laden einer Anwendungssoftware in einen programmierbaren Lesespeicher
DE4238099A1 (de)
EP1625592B1 (de) Vorrichtung und verfahren zum behandeln eines zustands eines speichers
DE10050604A1 (de) Verfahren zum Starten einer Datenverarbeitungsanlage sowie zugehörige Komponenten
DE19751093A1 (de) Programmgesteuerte Einheit
WO2009074499A1 (de) Verfahren zum betreiben eines steuergerätes und steuergerät
DE10057782C1 (de) Verfahren und Vorrichtung zum Überführen einer Prozesssteuerung von einem Solobetrieb in einen redundanten Steuerungsbetrieb
DE10251477B4 (de) Vorrichtung und Verfahren zum selektiven Ändern von ROM-Daten für Test- und Diagnosezwecke
WO2001042923A2 (de) Verfahren zum speichern von daten in einer datei eines datenspeichersystems
DE3643560A1 (de) Flexible korrektur von firmware
WO2024078825A1 (de) Ändern des speicherinhalts eines hauptspeichers eines mikrocontrollers ohne separate speicherverwaltungseinheit

Legal Events

Date Code Title Description
8100 Publication of the examined application without publication of unexamined application
D1 Grant (no unexamined application published) patent law 81
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee