DE10001042A1 - Verfahren zum Einleiten einer frei definierbaren Aktion bei einem Mikroprozessor - Google Patents

Verfahren zum Einleiten einer frei definierbaren Aktion bei einem Mikroprozessor

Info

Publication number
DE10001042A1
DE10001042A1 DE10001042A DE10001042A DE10001042A1 DE 10001042 A1 DE10001042 A1 DE 10001042A1 DE 10001042 A DE10001042 A DE 10001042A DE 10001042 A DE10001042 A DE 10001042A DE 10001042 A1 DE10001042 A1 DE 10001042A1
Authority
DE
Germany
Prior art keywords
program
memory
action
program sequence
mask
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE10001042A
Other languages
English (en)
Inventor
Joachim Beck
Bruno Birk
Harald Fimpel
Ralph Stohr
Margret Wiest
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.)
Diehl AKO Stiftung and Co KG
Original Assignee
Diehl AKO Stiftung and Co KG
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 Diehl AKO Stiftung and Co KG filed Critical Diehl AKO Stiftung and Co KG
Priority to DE10001042A priority Critical patent/DE10001042A1/de
Publication of DE10001042A1 publication Critical patent/DE10001042A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23235Set address code in register to switch between program in ram and in eprom, flash

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Programmable Controllers (AREA)
  • Control By Computers (AREA)

Abstract

Um einen durch Maskenprogrammierung an sich festgelegten Programmablauf nachträglich beeinflussen zu können, ist in einem Mikrocontroller ein Breakmodul M durch in einem veränderlichen Speicher V abgelegte Daten aktivierbar. In das Breakmodul M ist eine in dem veränderlichen Speicher V festgelegte frei wählbare Programmadresse eingebbar. In dem veränderlichen Speicher V ist eine gegebenenfalls bei der Programmadresse durchführbare frei definierbare Aktion gespeichert.

Description

Die Erfindung betrifft ein Verfahren zum Einleiten einer frei definierbaren Aktion bei einem maskenprogrammierten Mikroprozessor oder -controller, der einen Programmzähler, ein diesen überwachendes Unterbrechermodul (Break-Modul) und einen veränderlichen Speicher aufweist.
Maskenprogrammierbare Mikroprozessoren oder -controller werden in einer Vielzahl von Geräten zur Steuerung und/ oder Regelung ihrer Funktionen eingesetzt. Solche Geräte sind beispielsweise Haushaltsgeräte, wie Waschmaschinen, Wäschetrockner, Spülmaschinen oder Geräte in Kraftfahrzeugen.
Die vom jeweiligen Entwickler der Geräte gewünschte und von ihm erstellte Programm-Software wird als Programmcode an den Hersteller des Mikroprozessors bzw. -controllers gegeben und von diesem in einen Speicher, beispielsweise ROM des Mikroprozessors bzw. -controllers in Maskenprogrammiertechnik festgeschrieben. Dadurch besteht normalerweise keine Möglichkeit mehr Befehle, Tabellen etc. zu modifizieren als vorher vorgesehen sind. Dies hat zur Folge, dass für Modifikationen der Programme oder bei Fehlern im Programmablauf eine neue Maskensoftware erstellt werden muss. Dies hat Erstellungszeiten zur Folge, weil für jede neue Maske neue Maskenlaufzeiten nötig sind.
Um eine gewisse nachträgliche Beeinflussbarkeit des Programmablaufs bei maskenprogrammierbaren Mikroprozessoren und -controllern zu erreichen, werden nach dem Stand der Technik an bestimmten Stellen des Programmcodes mögliche Verzweigungspunkte für Sprünge (Optional Jumps) in nachträglich veränderbaren Speicherbereichen, beispielsweise EEPROM, Flash vorgesehen. Diese sind vom Programmentwickler an solche Stellen gelegt, die schon bei der Erstellung des Programmcodes als möglicherweise änderungsbedürftig erscheinen. Dadurch kann bisher nur an bezüglich der Adresse ganz vorbestimmten Bereichen in einen veränderbaren Code verzweigt werden. Die Auswahl der Verzweigungsmöglichkeiten ist dabei immer von der Erfahrung und dem Fingerspitzengefühl des einzelnen Programmentwicklers abhängig. Wenn er im voraus nicht die sich ggf. später notwendig werdenden Verzweigungspunkte trifft, bedeutet dies, dass eine neue Maskenprogrammierung notwendig ist, was zu erheblichen Kosten hinsichtlich der Neuprogrammierung und Umrüstung führt.
Maskenprogrammierbare Mikrocomputer bzw. Mikroprozessoren sind beispielsweise in dem Fachbuch U. Tietze, Ch. Schenk, Halbleiterschaltungstechnik, Springer Verlag, Berlin, Heidelberg, New York, 5. Auflage, 1980, Seite 526 ff., und im Fachbuch Werner Diehl, Mikroprozessor und Mikrocomputer, Vogel-Verlag, 1977, Seite 105 ff. beschrieben.
Einige Mikroprozessoren bzw. -controller arbeiten mit einem Unterbrechermodul (Break Modul). Ein solches Modul ist im HC 08-Datenbuch der Fa. Motorola beschrieben. Dieses Modul kann eine Unterbrechung (Interrupt) erzeugen, die bei einer definierten Adresse den normalen Programmablauf unterbricht, um die Ausführung eines Hintergrund-Programms einzuleiten. Das Modul überwacht den Programmzähler des Mikroprozessors bzw. -controllers. Der Programmzähler gibt an, an welcher Stelle sich das gerade abgerufene Programm im Befehlsspeicher befindet. Erreicht der Programmzähler eine beliebige Stelle im Programmcode, die mit einer im Modul vorher eingestellten Adresse übereinstimmt, wird eine höher interne Logik mit höherer Priorität, beispielsweise Interrupt aufgerufen.
Aufgabe der Erfindung ist es, ein Verfahren der eingangs genannten Art vorzuschlagen, mit dem es möglich ist, den durch Maskenprogrammierung an sich festgelegten Programmablauf nachträglich zu beeinflussen.
Erfindungsgemäß ist obige Aufgabe durch die Merkmale des Anspruchs 1 gelöst.
Dadurch ist erreicht, dass dann, wenn sich nachträglich herausstellt, dass der fest programmierte Programmablauf an irgendeiner Steile irgendeinen Fehler hat oder irgendwie veränderungsbedürftig ist, eine entsprechende Beeinflussung des tatsächlichen Programmablaufs dadurch geschaffen werden kann, dass in den veränderlichen Speicher zu gegebener Zeit eingegeben wird, dass eine Änderung oder Ergänzung nötig ist, in welchem Programmschritt sie erfolgen soll und in welcher Aktion sie bestehen soll.
Es ist hierbei nicht nötig, eine neue Serie von Mikroprozessoren bzw. Mikrocontrollern mit neuer Maskenprogrammierung herzustellen. Die Umprogrammierung des veränderlichen Speichers kann von einem Programmierer leicht über eine entsprechende Schnittstelle oder mittels eines üblichen Programmiergeräts vorgenommen werden.
Vorteilhafte Ausgestaltungen ergeben sich aus den Unteransprüchen und der folgenden Beschreibung. Die Figur zeigt ein Flussdiagramm eines Programmablaufs des Verfahren, in dem beispielsweise auch eine Temperatur gemessen und angezeigt werden soll.
Ein Mikrocontroller P mit einem unveränderlichen Speicher (ROM) weist einen nicht näher dargestellten Programmzähler, ein Unterbrechermodul (Break Modul) M und einen veränderlichen Speicher V, beispielsweise EEPROM, auf. Die Schritte des Programmablaufs sind z. B. etwa folgende:
Im Schritt 1 erfolgt der Start des Programmablaufs. Im Schritt 2 wird geprüft, ob ein adressflexibler, d. h. ein hinsichtlich der Programmschrittadresse frei wählbarer bedingter Sprung (Optional Jump) gültig j oder nicht gültig n ist. Er ist gültig j und wird durchgeführt, wenn im veränderlichen Speicher V eine bestimmte Bedingung gesetzt ist. Er ist im anderen Fall nicht gültig n.
Dieser Schritt 2 dient dazu zu entscheiden, ob ein Programmcode in dem veränderlichen Speicher V ausgeführt werden darf, wenn der Programmzähler die unten genannte Break-Adresse erreicht. Die Gültigkeit oder Nichtgültigkeit wird vom Programmierer irgendwann, nachdem die Maskenprogrammierung des Mikroprozessors bzw. -controllers geschaffen ist, dadurch gewählt, dass er den veränderlichen Speicher V entsprechend konfiguriert.
Ist der adressflexible bedingte Sprung nicht gültig, dann wird im Programmschritt 3 das Modul M deaktiviert, so dass es auf den weiteren Programmablauf keinen Einfluss hat. Es laufen dann die Programmschritte 5 bis 1001 ab, wobei im Programmschritt 1000 eine Temperaturmessung veranlasst wird und im Schritt 1001 der gemessene Temperaturwert zur Anzeige gebracht wird.
Die Programmschritte 2 und 3 und der unten genannte Programmschritt 4 sind im unveränderlichen Speicher durch Maskenprogrammierung vorgegeben.
Es kann sich beispielsweise jedoch bei der Prüfung des den Mikrocontroller beinhaltenden Geräts, beispielsweise eine Waschmaschine, Wäschetrockner oder Spülmaschine, durch eine Vergleichsmessung herausstellen, dass die angezeigte Temperatur nicht mit der in der Vergleichsmessung festgestellten, tatsächlichen Temperatur übereinstimmt, sondern von dieser um einen bestimmten numerischen Wert x, beispielsweise -1, fälschlicherweise abweicht.
Es wird dann vom Programmierer nach der Maskenprogrammierung des Mikroprozessors bzw. -controllers eingegeben:
  • a) in den veränderlichen Speicher V ein Kriterium zum Gültigschalten der Bedingung (Aktivierungskriterium) V2,
  • b) in den veränderlichen Speicher V die Break-Adresse, also die Adresse bei der der normale Programmablauf unterbrochen werden soll (Unterbrechungsschritt) V3, im Beispielsfall 1001 (Break-Adresse). Im Programmschritt 4 wird dann veranlasst, dass die jeweilige Break-Adresse in den Block M2 geschrieben wird, und
  • c) in den veränderlichen Speicher V die frei definierbare Aktion, im Beispielsfall "+1".
Diese Eingaben erfolgen im Bedarfsfall dadurch, dass ein Programmierer über eine serielle Schnittstelle des Prozessors oder über ein Programmiergerät in den veränderlichen Speicher V in dessen Felder V1, V2, V3 die entsprechenden Daten eingibt, nämlich für das Aktivierungskriterium, für 1 aus n Break-Adressen - durch Setzen eines Zeigers - und für die auszuführende Aktion.
Es ist auch möglich, im veränderlichen Speicher V für mehrere Programmadressen neue, weiters Aktionen zu programmieren.
Nach diesen Eingaben ist der Programmablauf nach dem Programmstartschritt 1 im wesentlichen dann folgender:
Im Programmschritt 4 wird das Modul M gestartet (vgl. Schritt bzw. Block M1), weil es aktiviert ist. Anschließend laufen die Programmschritte 5 bis 999 wie vorher ab. Ist der Programmschritt 1001 (vgl. Schritt bzw. Block M2) erreicht, was das Modul M im Block M2 durch Vergleich mit dem Programmzähler erfasst, wird der normale Programmablauf durch den Schritt bzw. Block M3 unterbrochen und es wird die in V1 gespeicherte Aktion durchgeführt. Im Beispielsfall wird der im Schritt 1000 gemessene Temperaturwert um +1 erhöht. Anschließend wird durch den Schritt bzw. Block M4 der normale Programmablauf fortgesetzt, so dass nun im Programmschritt 1001 nicht der im Programmschritt 1000 ermittelte, um -1 numerisch falsche Wert, sondern der um demgegenüber +1 entsprechend der Vergleichsmessung erhöhte, richtige numerische Temperaturwert (frei definierbare, gewünschte Aktion) angezeigt wird.
Um dies zu erreichen, ist keine neue Maskenprogrammierung des Mikroprozessors bzw. -controllers nötig. Vielmehr lässt sich der einmal maskenprogrammierte Mikroprozessor bzw. -controller durch einfache nachträgliche Programmier-Maßnahmen an die tatsächlichen Verhältnisse anpassen.
Mittels des gleichen Verfahrens können selbstverständlich nicht nur anzuzeigende Temperaturwerte, sondern auch alle anderen bei dem jeweiligen Mikrocontroller relevanten Mess- oder Regelgrößen als frei definierbare Aktion in beliebig vorgebbaren Programmschritten beeinflusst werden, d. h. frei definiert werden, ohne dass es hierzu eines neuen maskenprogrammierten Mikroprozessors bzw. -controllers bedarf. Solche Größen können beispielsweise Drehzahlen, Füllstände oder andere Parameter sein, die für die Funktion des den Mikrocontroller aufweisenden Geräts, wie Haushaltsmaschine oder Kraftfahrzeug, nötig sind.

Claims (3)

1. Verfahren zur Einleitung einer frei definierbaren Aktion bei einem maskenpro­ grammierten Mikroprozessor oder -controller, der einen Programmzähler, ein diesen überwachendes Unterbrechermodul (Break Modul) und einen verän­ derlichen Speicher aufweist, dadurch gekennzeichnet,
daß im Programmablauf das Break Modul (M) durch in einem veränderlichen Speicher (V) abgelegte Daten aktivierbar und deaktivierbar ist, daß in das Break Modul (M) eine in dem veränderlichen Speicher (V) festgelegte frei wählbare Programmadresse (1001) eingebbar ist und
daß der Programmablauf bei Erreichen der Adresse vom aktivierten Break Modul (M) unterbrochen wird und daraufhin eine frei definierbare, in dem ver­ änderlichen Speicher (V) abgelegte Aktion ausgeführt wird und anschließend der Programmablauf fortgesetzt wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der Programmablauf an mehreren Adressen unterbrechbar ist und dort frei definierbare Aktionen durchführbar sind.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß der Programmablauf in einem maskenprogrammierten unveränderlichen Speicher (P) abgelegt ist und daß durch nachträgliche Änderung des veränder­ lichen Speichers (V) der Programmablauf beeinflußt wird.
DE10001042A 2000-01-13 2000-01-13 Verfahren zum Einleiten einer frei definierbaren Aktion bei einem Mikroprozessor Withdrawn DE10001042A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE10001042A DE10001042A1 (de) 2000-01-13 2000-01-13 Verfahren zum Einleiten einer frei definierbaren Aktion bei einem Mikroprozessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10001042A DE10001042A1 (de) 2000-01-13 2000-01-13 Verfahren zum Einleiten einer frei definierbaren Aktion bei einem Mikroprozessor

Publications (1)

Publication Number Publication Date
DE10001042A1 true DE10001042A1 (de) 2001-07-26

Family

ID=7627317

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10001042A Withdrawn DE10001042A1 (de) 2000-01-13 2000-01-13 Verfahren zum Einleiten einer frei definierbaren Aktion bei einem Mikroprozessor

Country Status (1)

Country Link
DE (1) DE10001042A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003038611A1 (en) * 2001-09-14 2003-05-08 Medtronic,Inc. Method and apparatus for hardware /firmware trap
WO2009156884A1 (en) * 2008-06-27 2009-12-30 Nxp B.V. Method of interruption of meta language program code execution

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6915167B2 (en) 2001-01-05 2005-07-05 Medtronic, Inc. Method and apparatus for hardware/firmware trap
WO2003038611A1 (en) * 2001-09-14 2003-05-08 Medtronic,Inc. Method and apparatus for hardware /firmware trap
WO2009156884A1 (en) * 2008-06-27 2009-12-30 Nxp B.V. Method of interruption of meta language program code execution
US9513933B2 (en) 2008-06-27 2016-12-06 Nxp B.V. Method of interruption of meta language program code execution

Similar Documents

Publication Publication Date Title
AT389716B (de) Verfahren zur steuerung einer elektrischen, von einem prozessor gesteuerte anlage bei einer stoerung in der stromspeisung und anordnung zur durchfuehrung des verfahrens
DE10115729B4 (de) Vielseitiges Boot-Verfahren für eine Anwendungs-Software eines Mikrocontrollers
DE2704978A1 (de) Elektronisches programmiergeraet
DE10001042A1 (de) Verfahren zum Einleiten einer frei definierbaren Aktion bei einem Mikroprozessor
DE10064025B4 (de) Verfahren zum Booten eines Mikroprozessors sowie Mikroprozessor mit einem bedingten deterministischen Rücksetzvektor
DE4001279A1 (de) Verfahren und vorrichtung zum abspeichern von prozessparametern in elektronischen steuerungs- oder regelkreisen von haushalt- wasch- und geschirrspuelmaschinen
DE10061001B4 (de) Verfahren und Steuergerät zur Steuerung von technischen Vorgängen in einem Kraftfahrzeug, sowie Speicherelement und Steuerprogramm hierfür
DE4204399C2 (de) Programmgesteuertes Haushaltgerät
DE10115101C1 (de) Verfahren zum Ausgleichen des Ansprechfehlers einer Füllstands-Druckdose in einer Waschmaschine
DE10014561A1 (de) Verfahren zur Programmierung eines Steuergerätes
EP1563358A2 (de) Verfahren zur sicheren überprüfung eines speicherbereiches eines mikrocontrollers in einem steuergerät und steuergerät mit einem geschützten mikrocontroller
EP2338111B1 (de) Verfahren und vorrichtung zum testen eines rechnerkerns in einer mindestens zwei rechnerkerne aufweisenden recheneinheit
DE69612325T3 (de) Waschmaschine mit Vorrichtung und Verfahren zur Steuerung der Spülung
DE102019120417A1 (de) Verfahren und Vorrichtung zum Betreiben eines Haushaltgeräts und Haushaltsystem
EP2573633B1 (de) Verfahren zum Betrieb eines Haushaltsgeräts und nach dem Verfahren arbeitendes Haushaltsgerät
DE10303452B4 (de) Verfahren zur Steuerung der Unterbrechung und/oder der Aufzeichnung von Ausführungsdaten eines Programms in einem Mikrocontroller und Mikrocontroller mit einer Anordnung zur Durchführung des Verfahrens
DE102004035831A1 (de) Verfahren und Vorrichtung zur Inbetriebnahme eines Geräts
DE69535510T2 (de) Startverfahren und Einrichtung
DE10116127A1 (de) Verfahren zum Betrieb eines Haushaltsgeräts
DE10030980A1 (de) Verfahren zur Steuerung des Programmablaufs in einem Mikrocontroller
DE10255541B4 (de) Speicheranordnung für eine Mikrorechnerschaltung
EP0760972A1 (de) Programmiergerät
EP2606807B1 (de) Hausgerät und einstellverfahren mit wahlfreiem standard
DE102011078254A1 (de) Haushaltsgerät und Steuerungsverfahren für ein Haushaltsgerät
DE3843957A1 (de) Verfahren zur steuerung des programms fuer waschmaschinen und programmsteuerung zur durchfuehrung des verfahrens

Legal Events

Date Code Title Description
OR8 Request for search as to paragraph 43 lit. 1 sentence 1 patent law
8105 Search report available
8127 New person/name/address of the applicant

Owner name: DIEHL AKO STIFTUNG & CO. KG, 88239 WANGEN, DE

8139 Disposal/non-payment of the annual fee