DE102009010004A1 - Device i.e. digital tachograph, operation monitoring method, involves detecting failure of operation of digital tachograph when actual value of memory stack pointer deviates from reference value of memory stack pointer - Google Patents
Device i.e. digital tachograph, operation monitoring method, involves detecting failure of operation of digital tachograph when actual value of memory stack pointer deviates from reference value of memory stack pointer Download PDFInfo
- Publication number
- DE102009010004A1 DE102009010004A1 DE200910010004 DE102009010004A DE102009010004A1 DE 102009010004 A1 DE102009010004 A1 DE 102009010004A1 DE 200910010004 DE200910010004 DE 200910010004 DE 102009010004 A DE102009010004 A DE 102009010004A DE 102009010004 A1 DE102009010004 A1 DE 102009010004A1
- Authority
- DE
- Germany
- Prior art keywords
- stack
- pointer
- actual value
- program
- stp
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0736—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
- G06F11/0739—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
Die Erfindung betrifft ein Verfahren zum Überwachen eines Betriebs einer Vorrichtung und eine Vorrichtung, die ausgebildet ist zum Überwachen ihres Betriebs. Die Erfindung betrifft insbesondere einen digitalen Tachographen als die Vorrichtung.The The invention relates to a method for monitoring an operation of a Device and device adapted for monitoring their operation. The invention particularly relates to a digital Tachographs as the device.
Digitale Tachographen weisen mindestens eine Recheneinrichtung und mindestens einen Speicher auf. In dem mindestens einen Speicher ist mindestens ein Programm gespeichert, das durch die mindestens eine Recheneinrichtung ausführbar ist. Fehler in einer Programmausführung des mindestens einen Programms können beispielsweise zu einem unerwünschten Überschreiben von Speicherzellen oder Speicherbereichen des Speichers führen. Dies kann einen dauerhaft zuverlässigen Betrieb des Tachographen beeinträchtigen.digital Tachographs have at least one computing device and at least a memory on. In the at least one memory is at least a program stored by the at least one computing device executable is. Error in a program execution of the at least one Program can for example, to an undesirable overwriting lead from memory cells or memory areas of the memory. This can be a permanently reliable Operating the tachograph impair.
Die Aufgabe der Erfindung ist, ein Verfahren zum Überwachen eines Betriebs einer Vorrichtung und eine Vorrichtung, die ausgebildet ist zum Überwachen ihres Betriebs, zu schaffen, durch das bzw. durch die ein Fehler in dem Betrieb der Vorrichtung einfach und zuverlässig erkennbar ist.The The object of the invention is a method for monitoring an operation of a Device and device adapted for monitoring of their operation, to create, by or through which a mistake easily and reliably recognizable in the operation of the device is.
Die Aufgabe wird gelöst durch die Merkmale der unabhängigen Patentansprüche. Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet.The Task is solved by the characteristics of the independent Claims. Advantageous developments of the invention are characterized in the subclaims.
Die Erfindung zeichnet sich aus durch ein Verfahren zum Überwachen eines Betriebs einer Vorrichtung und durch eine entsprechende Vorrichtung, die ausgebildet ist zum Überwachen ihres Betriebs. In der Vorrichtung sind ein Stapelspeicher und ein zugehöriger Stapelspeicherzeiger vorgesehen. In der Vorrichtung ist mindestens ein Programm ausführbar. An min destens einer ersten Position innerhalb eines Programmablaufs dieses mindestens einen ausführbaren Programms wird jeweils ein Istwert des Stapelspeicherzeigers des Stapelspeichers ermittelt. Der jeweilige ermittelte Istwert des Stapelspeicherzeigers wird mit einem jeweils vorgegebenen Sollwert des Stapelspeicherzeigers verglichen. Ein Fehler des Betriebs der Vorrichtung wird erkannt, wenn der jeweilige Istwert des Stapelspeicherzeigers von dem jeweils zugehörigen Sollwert des Stapelspeicherzeigers abweicht.The Invention is characterized by a method for monitoring an operation of a device and by a corresponding device, the is designed for monitoring their operation. In the device are a stack and a associated Stack memory pointer provided. In the device is at least a program executable. At at least one first position within a program sequence this at least one executable Program is an actual value of the stack pointer of the Stack memory determined. The respective determined actual value of the Stack memory pointer is provided with a respective predetermined setpoint compared to the stack memory pointer. An error of operation of the Device is detected when the respective actual value of the stack memory pointer from the respectively associated The setpoint of the stack pointer deviates.
Der Vorteil ist, dass Abweichungen des Istwerts von dem Sollwert des Stapelspeicherzeigers so sehr einfach erkennbar sind und bei Vorliegen einer solchen Abweichung auf einen fehlerhaften Betrieb der Vorrichtung geschlossen werden kann. Der Betrieb der Vorrichtung kann so sehr einfach und zuverlässig überwacht werden und bei Erkennen des Fehlers des Betriebs können sehr einfach Maßnahmen eingeleitet werden, um den korrekten Betrieb der Vorrichtung wieder herzustellen, beispielsweise indem ein Neustart der Vorrichtung herbeigeführt wird. Negative Auswirkungen des fehlerhaften Betriebs der Vorrichtung können so sehr einfach minimiert werden. Die Vorrichtung kann so dauerhaft zuverlässig betrieben werden. Vorzugsweise wird der jeweilige Istwert des Stapelspeicherzeigers durch eine jeweilige Programmanweisung ermittelt, die an der jeweiligen ersten Position in dem Programmablauf angeordnet ist.Of the The advantage is that deviations of the actual value from the nominal value of the Stack memory pointers are very easily recognizable and present such a deviation on a faulty operation of the device can be closed. The operation of the device can be so much easily and reliably monitored can be very and at detecting the error of the operation easy action be initiated to the correct operation of the device again For example, by restarting the device is brought about. Negative effects of faulty operation of the device can be minimized so easily. The device can be so durable reliable operate. Preferably, the respective actual value of the stack memory pointer determined by a respective program instruction, which at the respective first position in the program flow is arranged.
In einer vorteilhaften Ausgestaltung ist der jeweilige vorgegebene Sollwert des Stapelspeicherzeigers als eine jeweilige Konstante vorgegeben. Dies hat den Vorteil, dass eine solche Konstante im Vergleich zu einer Variablen besser vor unerwünschten Änderungen geschützt sein kann, die beispielsweise durch einen fehlerhaften Programmablauf oder Betrieb verursacht werden können. Der Betrieb der Vorrichtung kann so besonders sicher und zuverlässig sein. Die jeweilige Konstante wird vorzugsweise bereits bei einer Herstellung der Vorrichtung vorgegeben.In an advantageous embodiment is the respective predetermined Setpoint of the stack pointer as a respective constant specified. This has the advantage that such a constant in the Compared to a variable better protected against unwanted changes can, for example, by a faulty program flow or operation can be caused. The operation of the device can be so safe and reliable. The respective constant is preferably already in a production predetermined the device.
Alternativ dazu ist es vorteilhaft, wenn an mindestens einer zweiten Position innerhalb des Programmablaufs, die jeweils einer ersten Position zugeordnet ist, jeweils der Istwert des Stapelspeicherzeigers ermittelt wird. Der an der mindestens einen zweiten Position ermittelte jeweilige Istwert des Stapelspeicherzeigers wird als der jeweils zugehörige vorgegebene Sollwert des Stapelspeicherzeigers vorgegeben. Der Vorteil ist, dass dann keine Konstante bereits bei der Herstellung der Vorrichtung vorgegeben werden muss. Dies ist besonders einfach. Vorzugsweise wird der jeweilige an der mindestens einen zweiten Position ermittelte Istwert des Stapelspeichers an jeweils mindestens einer von dem Stapelspeicherzeiger abweichenden Speicherstelle gespeichert. Der jeweilige Sollwert wird vorzugsweise aus dieser jeweiligen mindestens einen Speicherstelle gelesen.alternative For this it is advantageous if at least a second position within the program, each of a first position is assigned, in each case the actual value of the stack memory pointer determined becomes. The respective determined at the at least one second position Actual value of the stack memory pointer is given as the respective predetermined Specified setpoint of the stack memory pointer. The advantage is, that then no constant already in the manufacture of the device must be specified. This is very easy. Preferably the respective determined at the at least one second position Actual value of the stack to at least one of the Stack memory pointer different storage location stored. Of the respective setpoint is preferably from this respective at least read a memory location.
In diesem Zusammenhang ist es vorteilhaft, wenn zumindest eine der mindestens einen zweiten Position in dem Programmablauf jeweils vor einem Aufruf eines jeweiligen Unterprogramms angeordnet ist und die jeweils zugehörige erste Position in dem Programmablauf jeweils nach diesem Aufruf dieses jeweiligen Unterprogramms angeordnet ist. Dies hat den Vorteil, dass Fehler, die im Zusammenhang mit diesem jeweiligen Unterprogramm stehen und die den Stapelspeicherzeiger unerwünscht verändern, einfach und zuverlässig erkennbar sind. Bei Unterprogrammaufrufen werden beispielsweise gegebenenfalls vorgesehene Übergabeparameter und/oder eine Rücksprungadresse auf dem Stapelspeicher abgelegt und der Istwert des Stapelspeicherzeigers entsprechend verändert. Nach korrektem Ausführen des Unterprogramms muss im Allgemeinen der Istwert des Stapelspeicherzeigers gegenüber dem vor dem Aufruf des Unterprogramms ermittelten Sollwert des Stapelspeicherzeigers unverändert sein, das heißt, alle Elemente, die im Zusammenhang mit dem Ausführen dieses Unterprogramms auf dem Stapelspeicher abgelegt wurden, müssen auch wieder entnommen worden sein. Dies ist so sehr einfach überprüfbar und der Fehler ist sehr einfach erkennbar.In this context, it is advantageous if at least one of the at least one second position in the program sequence is arranged in each case before a call of a respective subroutine and the respectively associated first position in the program sequence is arranged in each case after this call of this respective subroutine. This has the advantage that errors that are related to this particular subroutine and that change the stack memory pointer undesirably, are easily and reliably recognizable. Subroutine calls, for example, optionally provided transfer parameters and / or a return address are stored on the stack and the actual value of the stack memory pointer changed accordingly. After correct execution of the In general, the subroutine must have the actual value of the stack pointer unchanged from the setpoint value of the stack pointer that was determined before the subroutine was called, that is, all elements that were placed on the stack in connection with executing this subroutine must also have been removed. This is so easily verifiable and the error is very easily recognizable.
In diesem Zusammenhang ist es weiter vorteilhaft, wenn dem jeweiligen Unterprogramm eine jeweilige Kennung zugeordnet ist und die Kennung bei Erkennen des Fehlers in einen Fehlerspeicher gespeichert wird. Der Vorteil ist, dass das Auftreten des Fehlers so einfach nachvollziehbar ist und genutzt werden kann, um die Vorrichtung so zu verbessern, dass der Fehler in Zukunft nicht mehr auftritt. Vorzugsweise werden mit der Kennung auch der Istwert des Stapelspeicherzeigers und/oder ein Inhalt des Stapelspeichers in dem Fehlerspeicher gespeichert.In In this context, it is also advantageous if the respective Subprogram is assigned a respective identifier and the identifier is stored in a fault memory when the error is detected. The advantage is that the occurrence of the error is so easy to understand is and can be used to improve the device so that the error will not occur in the future. Preferably be with the identifier also the actual value of the stack memory pointer and / or a content of the stack is stored in the error memory.
In einer weiteren vorteilhaften Ausgestaltung ist zumindest eine der mindestens einen zweiten Position gleich der zugehörigen mindestens einen ersten Position. Das Ermitteln des jeweiligen Istwerts des Stapelspeicherzeigers für diese mindesten eine zugehörige zweite Position und das Vorgeben als der zugehörige vorgegebene Sollwert werden nur bei einem erstmaligen Ausführen des Programmablaufs ausgeführt. Das Ermitteln des jeweiligen Istwerts des Stapelspeicherzeigers für diese mindestens eine zugehörige erste Position und das Vergleichen mit dem jeweils zugehörigen vorgegebenen Sollwert werden bei weiteren Ausführungen des Programmablaufs ausgeführt. Der Betrieb der Vorrichtung ist so besonders einfach überprüfbar. Im Allgemeinen ist der Istwert des Stapelspeicherzeigers an einer vorgegebenen Position des Programmablaufs bei jedem Ausführen des Programmablaufs gleich, wenn der Betrieb fehlerfrei ist. Der Fehler ist so sehr einfach und zuverlässig erkennbar.In a further advantageous embodiment is at least one of at least one second position equal to the associated at least a first position. Determining the respective actual value of the Stack memory pointer for these at least one associated second position and the default as the associated predetermined setpoint only for a first time run of the program run. Determining the respective actual value of the stack pointer for this at least one associated first position and comparing with the respectively associated predetermined Reference values are executed in further executions of the program sequence. Of the Operation of the device is so particularly easy to verify. in the Generally, the actual value of the stack pointer is at a given value The position of the program sequence is the same every time the program is executed, if the operation is faultless. The mistake is so simple and reliable recognizable.
In einer weiteren vorteilhaften Ausgestaltung wird der jeweils vorgegebene Sollwert des Stapelspeicherzeigers an jeweils mindestens drei Speicherstellen in voneinander unterschiedlichen Speicherbereichen gespeichert. Für das Vergleichen mit dem jeweils zugehörigen Istwert werden die jeweiligen mindestens drei Speicherstellen gelesen und wird jeweils derjenige Wert als der jeweilige vorgegebene Sollwert gewählt, der aus mindestens zwei der mindestens drei Speicher stellen übereinstimmend gelesen wurde. Dies hat den Vorteil, dass dies besonders sicher ist. Selbst wenn einer der gespeicherten Sollwerte durch den Fehler überschrieben und somit verändert sein sollte, kann der Fehler zuverlässig erkannt werden.In a further advantageous embodiment of each predetermined Setpoint of the stack pointer to at least three memory locations stored in different memory areas. For the Compare with the respective associated actual value, the respective at least three memory locations are read and will be the one each Value selected as the respective predetermined setpoint, which consists of at least two the at least three memory locations have been read consistently. This has the advantage that this is particularly safe. Even if one of the stored setpoints is overwritten by the error and thus changed should be, the error can be reliably detected.
In einer weiteren vorteilhaften Ausgestaltung der Vorrichtung ist die Vorrichtung als ein digitaler Tachograph ausgebildet. Der Tachograph ist so dauerhaft zuverlässig betreibbar.In a further advantageous embodiment of the device is the Device designed as a digital tachograph. The tachograph is so permanently reliable operated.
Ausführungsbeispiele der Erfindung sind im Folgenden anhand der schematischen Zeichnungen erläutert. Es zeigen:embodiments The invention are explained below with reference to the schematic drawings. It demonstrate:
Elemente gleicher Konstruktion oder Funktion sind figurenübergreifend mit den gleichen Bezugszeichen versehen.elements same construction or function are cross-figurative with the same Provided with reference numerals.
Eine
Vorrichtung umfasst mindestens eine Recheneinrichtung CPU und mindestens
einen Speicher MEM, der elektrisch mit der mindestens einen Recheneinrichtung
CPU gekoppelt ist (
Die Vorrichtung umfasst ferner mindestens einen Stapelspeicher ST, der auch als ”Stack” bezeichnet werden kann. Der mindestens eine Stapelspeicher ST ist vorzugsweise in dem mindestens einen Speicher MEM angeordnet und umfasst eine vorgegebene Anzahl von Speicherstellen, die so vorgegeben ist, dass mehrere Elemente auf dem Stapelspeicher ST abgelegt werden können, das heißt, in diesem gespeichert werden können. Die Elemente umfassen insbesondere lokale Variablen innerhalb von Unterprogrammen wie dem mindestens einen Unterprogramm F, dem mindestens einen Kontrollunterprogramm F1 oder dem mindestens einen Kontrollunterprogramm F2. Die Elemente können jedoch beispielsweise auch Rücksprungadressen und/oder Übergabeparameter von solchen Unterprogrammen umfassen. Dem jeweiligen Stapelspeicher ST ist ein Stapelspeicherzeiger SP zugeordnet, der auch als ”Stackpointer” bezeichnet werden kann. Der Stapelspeicherzeiger SP ist vorzugsweise in dem mindestens einen Speicher MEM angeordnet. Der Stapelspeicherzeiger SP kann jedoch auch beispielsweise in einem Register der mindestens einen Recheneinrichtung CPU angeordnet sein.The device further comprises at least one stack ST, which may also be referred to as a "stack". The at least one stack ST is preferably arranged in the at least one memory MEM and comprises a predetermined number of memory locations, which is predetermined so that a plurality of elements can be stored on the stack ST, that is, can be stored therein. In particular, the elements comprise local variables within subroutines such as the at least one subroutine F, the at least one control subroutine F1 or the at least one control subroutine F2. However, the elements may also include, for example, return addresses and / or transfer parameters of such subroutines. The respective stack ST is assigned a stack memory pointer SP, which is also known as "Stackpointer" can be called. The stack memory pointer SP is preferably arranged in the at least one memory MEM. However, the stack memory pointer SP can also be arranged, for example, in a register of the at least one computing device CPU.
Vorzugsweise wird der mindestens eine Stapelspeicher ST sowie der jeweils zugehörige Stapelspeicherzeiger SP während einer Entwicklung oder Herstellung der Vorrichtung und insbesondere des mindestens einen Programms PROG durch ein Übersetzungsprogramm, das auch als ”Compiler” bezeichnet werden kann, zum Beispiel durch einen C-Compiler, erzeugt oder angelegt, so dass der mindestens eine Stapelspeicher ST und der jeweils zugehörige Stapelspeicherzeiger SP während eines Programmablaufs des mindestens einen Programms PROG zur Verfügung stehen. Der mindestens eine Stapelspeicher ST und der jeweils zugehörige Stapelspeicherzeiger SP können jedoch auch auf andere Weise zur Verfügung gestellt werden.Preferably is the at least one stack ST and the respective associated stack memory pointer SP while a development or manufacture of the device and in particular of the at least one PROG program through a translation program that too referred to as a "compiler" can be, for example, created or created by a C compiler, such that the at least one stack memory ST and the respectively associated stack memory pointer SP while a program sequence of at least one program PROG available. The at least one stack ST and the respective associated stack memory pointer SP can but also be made available in other ways.
Ein Istwert AV des jeweiligen Stapelspeicherzeigers SP zeigt bei korrektem Betrieb der Vorrichtung auf eine Speicherstelle des zugehörigen Stapelspeichers ST. Wird ein Element auf dem Stapelspeicher ST abgelegt, wird dieses an dieser Speicherstelle gespeichert und wird der Istwert AV des Stapelspeicherzeigers SP so verändert, dass dieser auf eine nächste Speicherstelle des Stapelspeichers ST zeigt. Bei einem Entnehmen eines Elements von dem Stapelspeicher ST wird der Istwert AV des Stapelspeicherzeigers SP so verändert, dass dieser auf die Speicherstelle des zuletzt abgelegten Elements zeigt und dieses Element wird gelesen. Eine Reihenfolge in Bezug auf das Verändern des Istwerts AV des Stapelspeicherzeigers SP einerseits und das Speichern beziehungsweise Lesen des Elements andererseits kann auch umgekehrt sein. Der mindestens eine Stapelspeicher ST wird also gemäß einem ”Last in – First out” – Prinzip, oder kurz: LIFO, betrieben, das heißt, das jeweils zuletzt abgelegte Element wird als erstes wieder entnommen.One Actual value AV of the respective stack memory pointer SP points at correct Operation of the device to a storage location of the associated stack ST. If an element is placed on the stack ST, this becomes stored at this memory location and the actual value AV of Stack memory pointer SP changed so that this one on next Storage location of the stack ST shows. With a removal of an element of the stack ST becomes the actual value AV of the Stack memory pointer SP changed so that this to the location of the last deposited element shows and this element is read. An order in relation on changing the actual value AV of the stack memory pointer SP on the one hand and the Saving or reading the element on the other hand can also be the other way around. The at least one stack ST is so according to a "last-in-first-out" principle, or in short: LIFO, operated, that is, the most recently filed Element is removed first again.
Die Vorrichtung ist insbesondere als ein Tachograph ausgebildet und weist vorzugsweise Sicherheitseinrichtungen auf, die unbefugte Manipulationen der Vorrichtung verhindern oder zumindest erkennbar machen. Insbesondere kann beispielsweise vorgesehen sein, einen Inhalt des Speichers MEM zumindest teilweise zu löschen, um ein unbefugtes Auslesen von vertraulichen Informationen zu verhindern, wenn eine unbefugte Manipulation der Vorrichtung, zum Beispiel ein unbefugtes Öffnen eines Gehäuses der Vorrichtung, erkannt wurde. Insbesondere kann auch vorgesehen sein, das mindestens eine Programm PROG zu löschen, wenn die unbefugte Manipulation erkannt wurde.The Device is designed in particular as a tachograph and preferably has security devices that unauthorized manipulation Prevent the device or at least make it recognizable. Especially For example, it may be provided a content of the memory To at least partially erase MEM, to prevent unauthorized reading of confidential information, if an unauthorized manipulation of the device, for example, a unauthorized opening a housing the device was detected. In particular, can also be provided be at least one program PROG delete when unauthorized manipulation was detected.
Zum Überwachen
eines Betriebs der Vorrichtung sind das mindestens eine Kontrollunterprogramm
E1 und/oder das mindestens eine Kontrollunterprogramm F2 vorgesehen.
In einem Schritt S5 wird der Istwert AV des Stapelspeicherzeigers SP ermittelt, beispielsweise durch Lesen der Speicherstelle, an der der Stapelspeicherzeiger SP gespeichert ist. In einem Schritt S6 wird der vorgegebene Sollwert STP des Stapelspeicherzeigers SP ermittelt, beispielsweise durch Lesen eines aktuellen Werts des mindestens einen gespeicherten Stapelspeicherzeigers SSP. In einem Schritt S7 wird überprüft, ob der Istwert AV des Stapelspeicherzeigers SP von dem Sollwert STP des Stapelspeicherzeigers SP abweicht. Stimmen beide überein, dann wird das mindestens eine erste Kontrollunterprogramm F1 in einem Schritt 58 beendet. Wird in dem Schritt S7 jedoch eine Abweichung erkannt, dann wird in einem Schritt S9 ein Fehler ERR des Betriebs der Vorrichtung erkannt. Vorzugsweise wird der Fehler ERR in dem mindestens einen Fehlerspeicher EM gespeichert. Bevorzugt ist dem mindestens einen Unterprogramm F jeweils eine eindeutige Kennung zugeordnet und wird diese Kennung ebenfalls in dem mindestens einen Fehlerspeicher EM gespeichert. Ferner kann es vorteilhaft sein, bei Vorliegen des Fehlers ERR auch einen Inhalt des Stapelspeichers ST und/oder des zugehörigen Stapelspei cherzeigers SP in dem mindestens einen Fehlerspeicher EM zu speichern. Vorzugsweise werden in dem Schritt S9 Maßnahmen eingeleitet zum Wiederherstellen des korrekten Betriebs der Vorrichtung. Bevorzugt wird die Vorrichtung dazu automatisch neu gestartet.In a step S5, the actual value AV of the stack memory pointer SP determined, for example, by reading the memory location at the the stack memory pointer SP is stored. In a step S6 the predetermined setpoint STP of the stack memory pointer SP is determined, for example, by reading a current value of the at least a stored stack pointer SSP. In one step S7 is checked if the Actual value AV of the stack pointer SP from the setpoint STP of the stack pointer SP deviates. Both agree, then the at least one first control subroutine F1 in a step 58 finished. However, in step S7, a deviation detected, then in a step S9, an error ERR of the operation the device recognized. Preferably, the error ERR is in the stored at least one error memory EM. Preference is the at least one subroutine F each have a unique identifier and this identifier is also in the at least one Error memory EM stored. Furthermore, it may be advantageous in the presence of the error ERR also a content of the stack ST and / or the associated Stack memory pointer SP in the at least one fault memory To save EM. Preferably, measures are taken in step S9 initiated to restore the correct operation of the device. Preferably, the device is restarted automatically.
Bevorzugt werden die Schritte S5 und S6 an einer ersten Position P1 des Programmablaufs des Programms PROG ausgeführt und werden die Schritte S2 und S3 an einer zweiten Position P2 des Programmablaufs des Programms PROG ausgeführt. Bevorzugt liegt die zweite Position P2 jeweils vor und vorzugsweise unmittelbar vor dem Aufruf des mindestens einen Unterprogramms F und liegt die erste Position P1 in dem Programmablauf jeweils nach und vorzugsweise unmittelbar nach diesem mindestens einen Unterprogramm F. Dadurch sind unerwünschte Veränderungen des Istwerts AV des Stapelspeicherzeigers SP, die im Rahmen des Aufrufs und der Ausführung des mindestens einen Unterprogramms F auftreten, einfach und zuverlässig erkennbar.Preferably, the steps S5 and S6 are executed at a first position P1 of the program flow of the program PROG, and the steps S2 and S3 are executed at a second position P2 of the program flow of the program PROG leads. Preferably, the second position P2 is in each case before and preferably immediately before the call of the at least one subroutine F and the first position P1 in the program sequence is after and preferably immediately after this at least one subroutine F. This undesirable changes the actual value AV of the stack memory pointer SP , which occur in the context of the call and execution of the at least one subroutine F, easily and reliably recognizable.
Insbesondere alternativ zu den Schritten S2 und S3 kann auch ein Schritt S10 vorgesehen sein, in dem der Sollwert STP des Stapelspeicherzeigers SP als Konstante C vorgegeben ist und der Sollwert STP des Stapelspeicherzeigers SP somit unabhängig von dem jeweiligen Istwert AV des Stapelspeicherzeigers SP vorgegeben ist.Especially Alternatively to the steps S2 and S3, a step S10 may also be used be provided in which the setpoint STP of the stack memory pointer SP is specified as a constant C and the setpoint STP of the stack memory pointer SP thus independent predetermined by the respective actual value AV of the stack memory pointer SP is.
Das mindestens eine erste Kontrollunterprogramm F1 kann dazu ausgebildet sein, das mindestens eine Unterprogramm F oder den Aufruf des mindestens einen Unterprogramms F zu kapseln. Vorzugsweise wird bei dem jeweiligen Aufruf des mindestens einen ersten Kontrollunterprogramms F1 ein Unterprogrammzeiger FP als Übergabeparameter übergeben, der auf das mindestens eine aufzurufende Unterprogramm F zeigt. Anstatt das mindestens eine Unterprogramm F unmittelbar in dem Programm PROG aufzurufen, wird das mindestens eine Kontrollunterprogramm F1 aufgerufen und diesem der dem aufzurufenden Unter programm F zugehörige Unterprogrammzeiger FP übergeben. Ferner wird dem mindestens einen ersten Kontrollunterprogramm F1 vorzugsweise auch die Kennung FID als Übergabeparameter übergeben. Das mindestens eine erste Kontrollunterprogramm F1 kann jedoch auch anders ausgebildet sein.The At least one first control subroutine F1 can be designed for this purpose be that at least one subroutine F or calling the at least to encapsulate a subroutine F. Preferably, at the respective Calling the at least one first control subroutine F1 a subroutine pointer Passing FP as transfer parameter, pointing to the at least one subprogram F to be called. Instead of the at least one subroutine F directly in the program PROG call, the at least one control subroutine F1 is called and this the subprogram pointer associated with the subroutine F to call Pass FP. Furthermore, the at least one first control subroutine F1 preferably also pass the identifier FID as a transfer parameter. However, the at least one first control subroutine F1 can also be trained differently.
Wird in dem Schritt S12 jedoch festgestellt, dass das mindestens eine zweite Kontrollunterprogramm F2 bereits zuvor ausgeführt wurde und daher die Schritte S13 und S14 bereits ausgeführt wurden, dann werden in Schritten S16 und S17, die im Wesentlichen den Schritten S5 und S6 entsprechen, der Istwert AV des Stapelspeicherzeigers SP und der Sollwert STP des Stapelspeicherzeigers SP ermittelt. In einem Schritt S18, der im Wesentlichen dem Schritt S7 entspricht, wird überprüft, ob der Istwert AV des Stapelspeicherzeigers SP von dem Sollwert STP des Stapelspeicherzeigers SP abweicht. Falls dies nicht der Fall ist, dann wird das mindestens eine zweite Kontrollunterprogramm F2 in dem Schritt S15 beendet. Andernfalls wird in einem Schritt S19, der im Wesentlichen dem Schritt S9 entspricht, der Fehler ERR des Betriebs der Vorrichtung erkannt. Es kann ebenfalls vorgesehen sein, den Fehler ERR in dem mindestens einen Fehlerspeicher EM zu speichern. Ferner kann es vorteilhaft sein, bei Vorliegen des Fehlers ERR auch den Inhalt des Stapelspeichers ST und/oder des zugehörigen Stapel speicherzeigers SP in dem mindestens einen Fehlerspeicher EM zu speichern. Das mindestens eine zweite Kontrollunterprogramm F2 endet in dem Schritt S15. Vorzugsweise werden in dem Schritt S19 Maßnahmen eingeleitet zum Wiederherstellen des korrekten Betriebs der Vorrichtung. Bevorzugt wird die Vorrichtung dazu automatisch neu gestartet. Bevorzugt stimmen die erste Position P1 und die zweite Position P2 überein, so dass die Schritte S13, S14 einerseits sowie die Schritte S16, S17 andererseits an der gleichen Position des Programmablaufs des Programms PROG ausgeführt werden.Becomes however, in step S12, it is determined that the at least one second control subroutine F2 was previously executed and therefore steps S13 and S14 have already been performed, then be in steps S16 and S17, which are essentially the steps S5 and S6 correspond to the actual value AV of the stack pointer SP and the setpoint STP of the stack memory pointer SP determined. In a step S18 substantially corresponding to the step S7, is checked if the Actual value AV of the stack pointer SP from the setpoint STP of Stack memory pointer SP deviates. If this is not the case, then the at least one second control subroutine F2 in the step S15. Otherwise, in a step S19, which substantially corresponds to the step S9, the error ERR of Operation of the device detected. It can also be provided to store the error ERR in the at least one error memory EM. Furthermore, it may be advantageous, in the presence of the ERR error as well the contents of the stack ST and / or the associated stack memory pointer SP to save in the at least one error memory EM. That at least a second control subroutine F2 ends in step S15. Preferably In the step S19 measures are initiated to restore the correct operation of the device. Prefers the device is restarted automatically. Preferably, the vote first position P1 and the second position P2 match, so the steps S13, S14 on the one hand, and the steps S16, S17 on the other the same position of the program execution of the PROG program.
Bevorzugt
umfasst dass mindestens eine Programm PROG eine Programmschleife
und insbesondere eine Hauptprogrammschleife (
Beispielsweise sind mindestens zwei Unterprogramme F vorgesehen. Beispielsweise wird ein erstes Unterprogramm von den mindestens zwei Unterprogrammen F in dem Programm PROG aufgerufen, indem das mindestens eine erste Kontrollunterprogramm F1 ausgeführt wird mit einer ersten Kennung FID1 und einem ersten Unterprogrammzeiger FP1 als Übergabeparameter. Die erste Kennung FID1 und der erste Unterprogrammzeiger FP1 sind dem ersten Unterprogramm zugeordnet. Entsprechend wird ein zweites Unterprogramm von den mindestens zwei Unterprogrammen F in dem Programm PROG aufgerufen, indem das mindestens eine erste Kontrollunterprogramm F1 ausgeführt wird mit einer zweiten Kennung FID2 und einem zweiten Unterprogrammzeiger FP2 als Übergabeparameter. Die zweite Kennung FID2 und der zweite Unterprogrammzeiger FP2 sind dem zweiten Unterprogramm zugeordnet. Entsprechendes kann für weitere Unterprogramme F vorgesehen sein.For example, at least two subprograms F are provided. For example, a first subroutine is called by the at least two subroutines F in the program PROG by the at least one first control sub Program F1 is executed with a first identifier FID1 and a first subroutine pointer FP1 as a transfer parameter. The first identifier FID1 and the first subroutine pointer FP1 are assigned to the first subroutine. Accordingly, a second subroutine is called by the at least two subroutines F in the program PROG by executing the at least one first control subroutine F1 with a second identifier FID2 and a second subroutine pointer FP2 as the transfer parameter. The second identifier FID2 and the second subroutine pointer FP2 are assigned to the second subroutine. The same can be provided for further subprograms F.
Es kann auch vorgesehen sein, dass jeweilige Programmschritte des mindestens einen ersten oder zweiten Kontrollunterprogramms F1, F2 unmittelbar in dem Programm PROG und insbesondere in der Programmschleife des Programms PROG angeordnet sind, also nicht in einem jeweiligen Unterprogramm oder Kontrollunterprogramm angeordnet sind.It can also be provided that respective program steps of at least a first or second control subroutine F1, F2 immediately in the PROG program and in particular in the program loop of the Program PROG are arranged, so not in a respective subroutine or control subroutine are arranged.
Vorzugsweise wird der jeweilige Sollwert STP des Stapelspeicherzeigers SP an mindestens drei Speicherstellen gespeichert. Vorzugsweise liegen diese Speicherstellen in unterschiedlichen Speicherbereichen, so dass die Gefahr gering ist, dass alle der mindestens drei Speicherstellen unerwünscht überschrieben werden. Vorzugsweise werden im Rahmen des Ermittelns des jeweiligen Sollwerts STP des Stapelspeicherzeigers SP, insbesondere in den Schritten S6 und S17, alle der mindestens drei Speicherstellen gelesen, in denen der Sollwert STP des Stapelspeicherzeigers SP zuvor gespeichert wurde. Ferner wird vorzugsweise überprüft, ob die Werte der dort gespeicherten Stapelspeicherzeiger SSP übereinstimmen. Falls diese nicht übereinstimmen, dann wird vorzugsweise ein entsprechender Eintrag in dem mindestens einen Fehlerspeicher EM gespeichert. Ferner wird bevorzugt derjenige Wert als der Sollwert STP des Stapelspeicherzeigers SP vorgegeben, der an mindestens zwei der mindestens drei Speicherstellen übereinstimmend gespeichert ist.Preferably is the respective set value STP of the stack memory pointer SP stored at least three memory locations. Preferably lie these locations in different memory areas, so that the risk is low, that all of the at least three storage locations unwanted overwritten become. Preferably, in the context of determining the respective Setpoint STP of the stack pointer SP, in particular in the Steps S6 and S17, all of the at least three memory locations read, in which the setpoint STP of the stack pointer SP previously stored has been. Furthermore, it is preferably checked whether the Values of the stored stack pointers SSP match. If these do not match, then preferably a corresponding entry in the at least stored a fault memory EM. Further, it is preferable that one Value specified as the desired value STP of the stack pointer SP, the stored on at least two of the at least three memory locations coincident is.
Claims (9)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE200910010004 DE102009010004A1 (en) | 2009-02-23 | 2009-02-23 | Device i.e. digital tachograph, operation monitoring method, involves detecting failure of operation of digital tachograph when actual value of memory stack pointer deviates from reference value of memory stack pointer |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE200910010004 DE102009010004A1 (en) | 2009-02-23 | 2009-02-23 | Device i.e. digital tachograph, operation monitoring method, involves detecting failure of operation of digital tachograph when actual value of memory stack pointer deviates from reference value of memory stack pointer |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| DE102009010004A1 true DE102009010004A1 (en) | 2010-08-26 |
Family
ID=42356674
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE200910010004 Ceased DE102009010004A1 (en) | 2009-02-23 | 2009-02-23 | Device i.e. digital tachograph, operation monitoring method, involves detecting failure of operation of digital tachograph when actual value of memory stack pointer deviates from reference value of memory stack pointer |
Country Status (1)
| Country | Link |
|---|---|
| DE (1) | DE102009010004A1 (en) |
-
2009
- 2009-02-23 DE DE200910010004 patent/DE102009010004A1/en not_active Ceased
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP1192543B1 (en) | Method and system for determining a fault tree of a technical system, computer program product and a computer readable storage medium therefor | |
| EP2318920B1 (en) | Control appliance for a vehicle, and method for updating data for a control appliance for a vehicle | |
| DE69331292T2 (en) | Electronic device and method for fixed information modification | |
| DE102007038763A1 (en) | Method and device for securing a program against a control flow manipulation and against a faulty program sequence | |
| DE19839680B4 (en) | Method and device for modifying the memory contents of control units | |
| EP2943748B1 (en) | Method and device for managing map data of a digital map for a navigation apparatus | |
| EP1262856A2 (en) | Program controlled storage device | |
| DE4004740A1 (en) | IC CARD | |
| DE3210616A1 (en) | COMPUTER | |
| EP0664387B1 (en) | Process to change the working mode of a control device in vehicles | |
| DE102009010004A1 (en) | Device i.e. digital tachograph, operation monitoring method, involves detecting failure of operation of digital tachograph when actual value of memory stack pointer deviates from reference value of memory stack pointer | |
| DE69112107T2 (en) | System for controlling recovery from an error in a queue structure of control data. | |
| EP1563358B1 (en) | Method for the secure checking of a memory region of a microcontroller in a control device and control device with a protected mikrocontroller | |
| EP1810139A1 (en) | Method, operating system and computing element for running a computer program | |
| DE102009002898A1 (en) | Method for actualizing controller of vehicle, involves providing comparative results based on comparison of two conditions, and accomplishing actualization of controller based on one of comparative results | |
| DE102015008751A1 (en) | NUMERIC CONTROL WITH FUNCTION FOR AUTOMATIC RECONSTRUCTION OF SETTINGS AND FUNCTION TO PREVENT INCORRECT SETTINGS | |
| EP2990941B1 (en) | Computer-implemented method for generating a control device program codes and related report management environment | |
| DE102018202626A1 (en) | Method for the computer-aided parameterization of a technical system | |
| WO2008031776A1 (en) | Microcontroller and method for starting an application program on a microcontroller | |
| WO2022042950A1 (en) | Device for capturing and processing a measurement value of a sensor in a motor vehicle | |
| DE102008004923B4 (en) | Method for updating a control sequence of a machine control system and device for carrying out the method | |
| DE102021200789A1 (en) | Computer-implemented method and device for manipulation detection for exhaust aftertreatment systems using artificial intelligence methods | |
| DE102005006832B4 (en) | Circuit arrangement and method for secure data processing and their use | |
| EP3876123B1 (en) | Arrangement and operating method for a secure start-up of an electronic device | |
| DE102007062915A1 (en) | Storage programmable control i.e. digitally operated electronic system, operating method for controlling automation system, involves switching functional block at feasible state if external information corresponds to internal information |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| OP8 | Request for examination as to paragraph 44 patent law | ||
| R016 | Response to examination communication | ||
| R016 | Response to examination communication | ||
| R016 | Response to examination communication | ||
| R002 | Refusal decision in examination/registration proceedings | ||
| R003 | Refusal decision now final |
Effective date: 20111215 |