DE10001042A1 - Verfahren zum Einleiten einer frei definierbaren Aktion bei einem Mikroprozessor - Google Patents
Verfahren zum Einleiten einer frei definierbaren Aktion bei einem MikroprozessorInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23235—Set 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.
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.
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)
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 |
-
2000
- 2000-01-13 DE DE10001042A patent/DE10001042A1/de not_active Withdrawn
Cited By (4)
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 |