WO2004068345A2 - 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 - Google Patents
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 Download PDFInfo
- Publication number
- WO2004068345A2 WO2004068345A2 PCT/DE2004/000127 DE2004000127W WO2004068345A2 WO 2004068345 A2 WO2004068345 A2 WO 2004068345A2 DE 2004000127 W DE2004000127 W DE 2004000127W WO 2004068345 A2 WO2004068345 A2 WO 2004068345A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- program
- execution data
- microcontroller
- recording
- debug unit
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
Definitions
- Microcontrollers that process security-relevant information that must not be observed outside the controller, such as smart card controllers that are used in ID cards, credit cards, booking cards and the like, but also such e.g. in digital set top boxes or Trusted Platform Modules, allow extensive data processing in the controller itself.
- a microcontroller in such a smart card can be used in a variety of ways by the cardholder.
- the card manufacturer equips the microcontroller with a permanently stored operating system, which performs basic functions, for example a comparison of an externally entered code with a stored code.
- the memories belonging to the microcontroller are used not only for storing the operating system but also for storing third-party programs and data associated with the third-party programs.
- the card maker For the user, that is, for the organization issuing the cards, steller thus provides a memory area for programming their external program or the application.
- emulators are used, which can ideally display the status of the target system during the program execution for the application developer at any time.
- the emulators of microcontrollers record every change in the state of the target system and process it further in order to present the desired information to the programmer. The complete display of all data can then also be used for program optimization.
- a common implementation option for the emulator of a first microcontroller is to develop a second microcontroller which, in addition to the switching circuits of the first microcontroller, has a debug unit, i.e. additional software and hardware that has the task to observe the internal data flow and to pass the data on via one or more interfaces to, for example, external additional boards of the emulator, which record the data with complicated logic and large memories.
- the processing of this data outside of the microcontroller has the disadvantage that a high number of pins of the debug unit is necessary for processing the data and its area is therefore determined by the number of pins.
- the data In order for the test system to work under real system conditions, the data must be in real time via a special data bus that is used for communication between the debug unit and the emulator is needed to be transferred. As the frequency of the microcontroller increases, the data can no longer be transmitted, so that the test system behaves differently from the product to be tested. Since the debug unit has only limited memory resources, that is to say a limited memory area for recording the execution data recorded, there is only the possibility of reducing the frequency of the target system and adapting it to that of the test system or of stopping the program flow of the target system in the event of an overflow of the memory area and transfer the recorded data.
- the emulator or the additional boards assigned to the emulator also have the task of sending control signals to interrupt the program flow, for example upon detection of an event which was programmed in advance by the user or when the user wishes to interrupt, to the debug unit stop the actual program flow and run a debug program.
- the debug program can be run at any time during the program run
- the object of the invention is to provide a method and an arrangement for controlling the interruption and / or the recording and output of execution data of commands of an application on a microcontroller, the execution data being read in real time by means of a debug unit integrated on the microcontroller and filtered to the programming environment in order to allow debugging of third-party programs without loading, with optimal use of the memory resources available on the microcontroller. to allow the card manufacturer to disclose secret operating system data to the third-party program developer.
- This object is achieved by a method for controlling the interruption and / or the recording of execution data of a program in a microcontroller, the selection attribute assigned to certain program commands informing the debug unit whether a program is interrupted in the case of a program command that has just been executed may and / or the associated execution data be recorded.
- a microcontroller which, in addition to the circuits and data memories of a microcontroller to be emulated, has an arrangement for controlling the interruption and / or for recording execution data of a program, the arrangement including a debug unit and control logic, and the control logic controls on the basis of a selection attribute assigned to certain program commands whether a
- Program command in a program the program sequence is interrupted and / or the execution data are recorded.
- a prerequisite for protection against the disclosure of secret operating system data by the card manufacturer is a restriction of the possibility of the debug unit to intervene in the program sequence and the control of the output of the execution data by selection of the program commands of the program.
- the execution data of certain program commands can be selected to be output.
- the access rights can be granted via one or more access attributes assigned to the program instructions, with a first access attribute, the Is assigned to program commands of a program code, the enabling of the interruption of this program code and, via a second access attribute assigned to program commands of a program code, the enabling of the recording of the execution data of this program code can be controlled.
- an access attribute can advantageously be implemented by an access bit that is directly assigned to individual program commands. It can e.g. but also be an address area of program instructions, which is characterized by a lower and an upper area limit.
- the recording of the execution data assigned to the program instructions can be restricted in that the second access attributes are stored in a memory area in the form of a reference table of addresses of individual program instructions for which the output of the execution data is desired.
- the program cannot be interrupted when the program commands assigned to these addresses are executed and the execution data cannot be read out by a user.
- the second variant has the advantage that the real-time capability of the emulator is never violated, even without a second CPU in the microcontroller, which would control the debugging process, since the external recording memory can be chosen to be sufficiently large.
- Requests to carry out a program interruption are only executed by the control logic if the program instruction on which the program is to be interrupted is assigned a set first access attribute.
- Figure 1 shows an embodiment of a microcontroller according to the invention.
- FIG. 1 shows an exemplary embodiment of a microcontroller 1 with an arrangement for controlling the interruption and / or the recording of execution data of a program.
- the microcontroller 1 emulates a target system in order to test the program flow of an application to be developed under system conditions.
- the components of the target system 2 such as a logic circuit 21, memory 22, interrupt controller 24 and I / O interface 23, are therefore integrated in the microcontroller 1.
- the microcontroller 1 also has a debug unit 3, an execution memory 4 and a control logic 5.
- the logic circuit 21, the memory 22 and the I / O interface 23 of the target system 2 are connected to the debug unit 3, the execution memory 4 and the control logic 5 via a data line 25.
- the debug unit is composed of hardware and software and has the task of reading out the execution data of the program in real time via the data line 26 and forwarding it via an interface 7 to a system 9 provided for program optimization.
- the control logic 5 controls on the basis of a selection attribute assigned to specific program commands whether the program sequence is interrupted in place of a program command in a program and / or the execution data ten can be recorded.
- the selection attributes define access rights for the debug unit 3 to the addresses of an address space, so that a selection of the execution data of certain program instructions can be made.
- a first and set access bit assigned to a program command enables the program code to be interrupted and a second and set access bit assigned to a program command enables the execution data to be recorded in the execution memory 4.
- the execution data can be further restricted by the second Access bit is stored in the form of a reference table 6, which has addresses of program instructions, and the debug unit 3 only records the execution data of the addresses stored in this table 6.
- the microcontroller according to the invention and the proposed method ensure that a program interruption carried out by the control logic 5 occurs only in the event that a set first access bit is assigned to the program instruction at which the program is to be interrupted. It is also ensured that only those execution data are recorded in which the second access bits assigned to the program instructions are set.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (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
Die Erfindung betrifft ein Verfahren zur Steuerung der Unterbrechung und/oder der Aufzeichnung von Ausführungsdaten eines Programms in einem Mikrocontroller (1), wobei durch ein bestimmten Programmbefehlen zugeordnetes Selektionsattribut einer Debug-Einheit (3) mitgeteilt wird, ob bei einem gerade ausgeführten Programmbefehl ein Programm unterbrochen werden darf und/oder die zugehörigen Ausführungsdaten aufgezeichnet werden. Weiterhin betrifft die Erfindung einen Mikrocontroller (1), der zusätzlich zu den Schaltkreisen und Datenspeichern eines zu emulierenden Mikroconrollers (2) eine Anordnung zur Steuerung der Unterbrechung und/oder zur Aufzeichnung von Ausführungsdaten eines Programms aufweist, wobei die Anordnung eine Debug-Einheit (3) und eine Steuerlogik (5) enthält, und die Steuerlogik (5) anhand eines bestimmten Programmbefehlen zugeordneten Selektionsattributs steuert, ob an der Stelle eines Programmbefehls in einem Programm der Programmablauf unterbrochen wird und/oder die Ausführungsdaten aufgezeichnet werden.
Description
Beschreibung
Verfahren zur Steuerung der Unterbrechung und/oder der Aufzeichnung von Ausführungsdaten eines Programms in einem Mik- rocontroller und Mikrocontroller mit einer Anordnung zur Durchführung des Verfahrens
Die vorliegende Erfindung betrifft ein Verfahren zur Steuerung der Unterbrechung und/oder der Aufzeichnung von Ausfüh- rungsdaten eines Programms in einem Mikrocontroller und einen Mikrocontroller mit einer Anordnung zur Durchführung des Verfahrens .
Mikrocontroller umfassen nicht nur Steuer- und Rechenwerk, sondern zusätzlich auch ROM (read-only memory) und RAM (random access memory)- Speicher. Solche Bausteine werden in großer Breite zu Aufgaben der Steuerung von Geräten und Anlagen eingesetzt .
Mikrocontroller, die sicherheitsrelevante Informationen ver- arbeiten, die außerhalb des Controllers nicht beobachtet werden dürfen, wie zum Beispiel Smart Card Controller, die in Ausweiskarten, Kreditkarten, Buchungskarten und dergleichen eingesetzt werden, aber auch solche z.B. in digitalen Set Top Boxen oder Trusted Platform Modules, erlauben eine umfangrei- ehe Datenverarbeitung im Controller selbst.
Einer der wesentlichen Vorteile eines MikroControllers in einer solchen Smart Card zum Beispiel besteht in der vielfältigen Verwendungsmöglichkeit durch den Karteninhaber. Der Kar- tenhersteller stattet den Mikrocontroller mit einem fest gespeicherten Betriebssystem aus, welches grundlegende Funktionen, beispielsweise einen Vergleich eines extern eingegebenen Codes mit einem gespeicherten Code, übernimmt. Die zum Mikrocontroller gehörigen Speicher dienen außer zur Abspeicherung des Betriebssystems auch zur Abspeicherung von Fremdprogrammen und den Fremdprogrammen zugeordnete Daten. Der Kartenher-
steller stellt somit für den Anwender, daß heißt, für die die Karten ausgebende Organisation, einen Speicherbereich zur Ξinprogrammierung ihres Fremdprogramms bzw. der Applikation, zur Verfügung.
Die Entwicklung von Applikationen für Mikrocontroller benötigt eine Test- und Systemumgebung, um den korrekten Ablauf der Applikation unter Systembedingungen zu testen. Hierzu werden Emulatoren eingesetzt, die idealer Weise den Zustand des Zielsystems beim Programm-Ablauf für den Applikations- Entwickler zu beliebigen Zeitpunkten beobachtbar darstellen können.
Die Emulatoren von Mikrocontrollern zeichnen jede Zustandsän- derung des Zielsystems auf und verarbeiten sie nachträglich weiter, um dem Programmierer die gewünschte Information darzustellen. Die komplette Darstellung aller Daten kann dann auch zur Programmoptimierung genutzt werden.
Eine übliche Realisierungsmöglichkeit für den Emulator eines ersten Mikrocontrollers (Zielsystems) besteht darin, einen zweiten Mikrocontroller zu entwickeln, der zusätzlich zu den Schaltkeisen des ersten Mikrocontrollers über eine Debug- Einheit verfügt, das heißt eine Zusatz- Soft- und Hardware, die die Aufgabe hat, den internen Datenfluß zu beobachten und die Daten über eine oder mehrere Schnittstellen an beispielsweise externe Zusatzplatinen des Emulators, die mit einer komplizierten Logik und großen Speichern die Daten aufzeichnen, weiterzureichen. Die Verarbeitung dieser Daten außerhalb des Mikrocontrollers hat den Nachteil, daß zur Prozessierung der Daten eine hohe Anzahl an Pins der Debug-Einheit notwendig ist und somit ihre Fläche durch die Anzahl der Pins bestimmt ist.
Damit das TestSystem unter realen Systembedingungen arbeiten kann, müssen die Daten in Echtzeit über einen spezielle Datenbus, der zur Kommunikation zwischen der Debug-Einheit und
dem Emulator benötigt wird, übertragen werden. Mit zunehmender Frequenz des Mikrocontrollers ist die Übertragung der Daten nicht mehr möglich, so daß das Testsystem sich anders verhält als das zu testende Produkt. Da die Debug-Einheit nur über begrenzte Speicherressourcen, d. h. über einen begrenzten Speicherbereich zur Aufzeichnung der erfaßten Ausführungsdaten verfügt, bleibt nur die Möglichkeit, die Frequenz des Zielsystems zu verringern und auf die des Testsystems abzustimmen oder den Programmablauf des ZielSystems bei einem Überlauf des Speicherbereichs anzuhalten und die aufgezeichneten Daten zu übertragen.
Der Emulator bzw. dem Emulator zugeordnete Zusatzplatinen haben weiterhin die Aufgabe, Steuersignale zur Unterbrechung des Programmablaufs, beispielsweise bei der Detektion eines Ereignisses, welches vorab durch den Benutzer programmiert wurde oder wenn der Benutzer unterbrechen möchte, an die Debug-Einheit zu versenden, um den eigentlichen Programmablauf anzuhalten und ein Debug-Programm ablaufen zu lassen. Das De- bug-Programm kann zu jeder Zeit des Programmablaufs durch den
Benutzer gestartet werden und ermöglicht aufgrund der vorab beschriebenen Arbeitsweise der Debug-Einheit das Auslesen von Ausführungsdaten, das heißt, von abgearbeiteten Programmbefehlen und die den Programmbefehlen zugeordneten Registerad- ressen und Registerinhalte. Somit ist während der Ausführung des Debug-Programms auch das unerwünschte Auslesen und Auswerten der Betriebssystemdaten ermöglicht.
Aufgabe der Erfindung ist es, ein Verfahren und eine Anord- nung zur Steuerung der Unterbrechung und/oder der Aufzeichnung und Ausgabe von Ausführungsdaten von Befehlen einer Applikationen auf einem Mikrocontroller anzugeben, wobei mittels einer auf dem Mikrocontroller integrierten Debug-Einheit in Echtzeit die Ausführungsdaten gelesen und gefiltert an die Programmier-Umgebung weitergeleitet werden, um bei einer optimalen Nutzung der auf dem Mikrocontroller verfügbaren Speicherressourcen ein Debugging von Fremdprogrammen ohne Be-
kanntgabe geheimer Betriebssystemdaten des Kartenherstellers an den Fremdprogramm-Entwickler zu ermöglichen.
Diese Aufgabe wird gelöst durch ein Verfahren zur Steuerung der Unterbrechung und/oder der Aufzeichnung von Ausführungs- daten eines Programms in einem Mikrocontroller, wobei durch ein bestimmten Programmbefehlen zugeordnetes Selektionsattribut der Debug-Einheit mitgeteilt wird, ob bei einem gerade ausgeführten Programmbefehl ein Programm unterbrochen werden darf und/oder die zugehörigen Ausführungsdaten aufgezeichnet werden.
Weiterhin wird die Aufgabe gelöst durch einen Mikrocontroller, der zusätzlich zu den Schaltkreisen und Datenspeichern eines zu emulierenden Mikrocontrollers eine Anordnung zur Steuerung der Unterbrechung und/oder zur Aufzeichnung von Ausführungsdaten eines Programms aufweist, wobei die Anordnung eine Debug-Einheit und eine Steuerlogik enthält, und die Steuerlogik anhand eines bestimmten Programmbefehlen zugeord- neten Selektionsattributs steuert, ob an der Stelle eines
Programmbefehls in einem Programm der Programmablauf unterbrochen wird und/oder die Ausführungsdaten aufgezeichnet werden.
Voraussetzung für den Schutz vor der Bekanntgabe geheimer Betriebssystemdaten des Kartenherstellers ist eine Einschränkung der Eingriffsmöglichkeit der Debug-Einheit in den Programmablauf sowie die Steuerung der Ausgabe der Ausführungs- daten durch Selektion der Programmbefehle des Programms .
Durch die vorteilhafte Einführung definierter Zugriffsrechte für die Debug-Einheit auf die Adressen eines Adressraums, in dem der Programm-Code abgelegt ist, kann eine Auswahl der Ausgabe der Ausführungsdaten bestimmter Programmbefehle er- folgen. Die Zugriffsrechte können hierbei über ein oder mehrere den Programmbefehlen zugeordnete Zugriffsattribute erteilt werden, wobei über ein erstes Zugriffsattribut, das
Programmbefehlen eines Programm-Codes zugeordnet ist, die Ermöglichung der Unterbrechung dieses Programm-Codes und über ein zweites, Programmbefehlen eines Programm-Codes zugeordneten Zugriffsattribut die Ermöglichung der Aufzeichnung der Ausführungsdaten dieses Programm-Codes steuerbar ist.
Vorteilhafter Weise kann ein Zugriffsattribut hierbei durch ein Zugriffsbit realisiert sein, das direkt einzelnen Programmbefehlen zugeordnet ist. Es kann sich dabei z.B. aber auch um einen Adressbereich von Programmbefehlen handeln, der durch eine untere und eine obere Bereichsgrenze gekennzeichnet ist.
In einer weiteren, vorteilhaften Weise kann die Aufzeichnung der den Programmbefehlen zugeordneten Ausführungsdaten dadurch eingeschränkt werden, daß in einem Speicherbereich die zweiten Zugriffsattribute in Form einer Referenz-Tabelle von Adressen von einzelnen Programmbefehle hinterlegt sind, für die die Ausgabe der Ausführungsdaten erwünscht ist.
In einer dritten, vorteilhaften Weise ist das zweite Zugriffsattribut eines Programmbefehls für die Steuerlogik genau dann logisch gesetzt, wenn das erste Zugriffsattribut für den Programmbefehl gesetzt ist und die Adresse des Pro- grammbefehls in einer Referenz-Tabelle von Adressen von Programmbefehlen hinterlegt ist.
Sind die den Programmbefehls-Adressen zugeordneten Zugriffs- attribute nicht gesetzt, kann das Programm beim Ausführen der diesen Adressen zugeordneten Programmbefehle nicht unterbrochen werden und die Ausführungsdaten durch einen Benutzer nicht ausgelesen werden.
Der AufZeichnungsspeicher für die durch das zweite Zugriffsbit gefilterten Ausführungsdaten kann sich im Mikrocontroller oder außerhalb des zweiten Mikrocontrollers befinden.
Die erste Variante hat den Vorteil, daß der zweite Mikrocontroller wie der erste Mikrocontroller in einer ProduktUmgebung einsetzbar ist. Sollte der AufZeichnungsspeicher einen be- stimmten Füllzustand erreicht haben oder Programm-Entwickler ein Auslesen des AufZeichnungsspeichers signalisieren, wird an dem nächsten Programmbefehl, dem das erste, gesetzte Zugriffsattribut zugeordnet ist, der Programmablauf durch ein Kontrollsignal unterbrochen und die Debug-Einheit im Mikro- Controller sendet daraufhin die Ausführungsdaten an die Pro- grammier-Umgebung des Programm-Entwicklers. Die Echtzeitfähigkeit des Emulators ist jedoch dann nur zwischen solchen Unterbrechungen realisierbar, wenn die Debug-Einheit zur Steuerung des Debug-Prozesses auf die CPU des Mikrocontrol- lers zugreift.
Die zweite Variante hat den Vorteil, daß die Echtzeitfähigkeit des Emulators auch ohne eine zweite CPU im Mikrocontroller, die den Debug-Prozess steuern würde, nie verletzt wird, da der externe AufZeichnungsspeicher hinreichend groß gewählt werden kann.
In jedem Fall werden nicht alle Ausführungsdaten aufgezeichnet bzw. ausgegeben, sondern nur die den Programmbefehlen zu- geordneten, für die das zweite Zugriffsattribut gesetzt ist.
Anforderungen, eine Programm-Unterbrechung auszuführen, werden von der Steuerlogik nur dann ausgeführt, wenn dem Programm-Befehl, an dem das Programm unterbrochen werden soll, ein gesetztes erstes Zugriffsattribut zugeordnet ist.
Vorteilhafter Weise enthält der zweite Mikrocontroller eine Liste von Befehlsadressen, die von der Debug-Einheit verwaltet wird und die Programm-Adressen speichert, an denen der Programm-Entwickler eine Unterbrechung des Programms wünscht. Vorteilhafter Weise speichert die Debug-Einheit nur solche Adressen in der Liste von Befehlsadressen, für die die Debug-
Einheit überprüft hat, daß das zweite Zugriffsattribut für die Adressen gesetzt ist.
Ein Ausführungsbeispiel der Erfindung wird anhand der nach- folgenden Figur 1 näher erläutert .
Es zeigt:
Figur 1 ein Ausführungsbeispiel eines erfindungsgemä- ßen Mikrocontrollers.
Die Figur 1 zeigt ein Auführungsbeispiel eines Mikrocontrollers 1 mit einer Anordnung zur Steuerung der Unterbrechung und/oder der Aufzeichnung von Ausführungsdaten eines Pro- gramms. Der Mikrocontroller 1 emmuliert in seiner Funktion als Test- und Systemumgebung ein Zielsystem, um unter Systembedingungen den Programmablauf einer zu entwickelnden Applikation zu testen. Im Mikrocontroller 1 sind deshalb die Komponenten des Zielsystems 2, wie beispielsweise eine logische Schaltung 21, Speicher 22, Interrupt-Steuerung 24 und I/O- Interface 23 integriert. Neben dem Zielsystem 2 weist der Mikrocontroller 1 weiterhin eine Debug-Einheit 3, einen Ausführungsspeicher 4 und eine Steuerlogik 5 auf. Die logische Schaltung 21, der Speicher 22 und das I/O-Interface 23 des Zielsystems 2 sind über eine Datenleitung 25 mit der Debug- Einheit 3, dem Ausführungsspeicher 4 und der Steuerlogik 5 verbunden. Die Debug-Einheit setzt sich aus Hard- und Software zusammen und hat die Aufgabe, über die Datenleitung 26 die Ausführungsdaten des Programms in Echtzeit auszulesen und über eine Schnittstelle 7 an ein zur Programmoptimierung vorgesehenes System 9 weiterzuleiten.
Damit die Debug-Einheit keine geheimen Betriebssystemdaten ausgeben kann, steuert die Steuerlogik 5 anhand eines be- stimmten Programmbefehlen zugeordneten Selektionsattributs, ob an er Stelle eines Programmbefehls in einem Programm der Programmablauf unterbrochen wird und/oder die Ausführungsda-
ten aufgezeichnet werden können. Die Selektionsattribute definieren Zugriffsrechte für die Debug-Einheit 3 auf die Adressen eines Adressraums, so daß eine Auswahl der Ausgabe der Ausführungsdaten bestimmter Programmbefehle erfolgen kann. Dabei ermöglicht eine erstes und gesetztes, einem Programmbefehl zugeordnetes Zugriffsbit die Unterbrechung des Programm- Codes und eine zweites und gesetztes, einem Programmbefehl zugeordnetes Zugriffsbit die Aufzeichnung der Ausführungsdaten in dem Ausführungsspeieher 4. Die Aufzeichnung der Aus- führungsdaten kann weiterhin eingeschränkt werden, indem das zweite Zugriffsbit in Form einer Referenz-Tabelle 6, die Adressen von Programmbefehlen aufweist, hinterlegt wird und die Debug-Einheit 3 nur die Ausführungsdaten der in dieser Tabelle 6 hinterlegten Adressen aufzeichnet.
Der erfindungsgemäße Mikrocontroller und das vorgeschlagene Verfahren stellen sicher, daß nur für den Fall, daß dem Programmbefehl, an dem das Programm unterbrochen werden soll, ein gesetztes erstes Zugriffsbit zugeordnet ist, eine durch die Steuerlogik 5 durchgeführte Programm-Unterbrechung erfolgt. Es ist auch sichergestellt, daß nur diejenigen Ausführungsdaten aufgezeichnet werden, bei denen die den Programmbefehlen zugeordneten zweiten Zugriffsbits gesetzt sind.
Bezugszeichenliste
1 Mikrocontroller
2 Zielsystem 3 Debug-Einheit
4 AufZeichnungsspeicher
5 Steuerlogik
6 Referenz-Tabelle
7 Schnittstelle 8 Datenleitung
9 System
21 logische Schaltung
22 Speicher
23 I/O-Interface 24 Interrupt -Schaltung
25 Datenleitung 6 Datenleitung
Claims
1. Verfahren zur Steuerung der Unterbrechung und/oder der Aufzeichnung von Ausführungsdaten eines Programms in einem Mikrocontroller (1) , wobei durch ein bestimmten Programmbefehlen zugeordnetes Selektionsattribut einer Debug-Einheit (3) mitgeteilt wird, ob bei einem gerade ausgeführten Programmbefehl ein Programm unterbrochen werden darf und/oder die zugehörigen Ausführungsdaten aufgezeichnet werden.
2. Verfahren nach Anspruch 1 , d a d u r c h g e k e n n z e i c h n e t, d a ß die den Programmbefehlen zugeordneten Selektionattribute definierte Zugriffsrechte der Debug-Einheit (3) auf Adressen eines Adressraums steuern.
3. Verfahren nach Anspruch 2 , d a d u r c h g e k e n n z e i c h n e t, d a ß die den Adressen des Adressraums zugeordneten Zugriffsrechte über Zugriffsbits oder durch Bereichsgrenzen in einer Adress- bereichstabelle, für die die Zugriffsbits gültig sind, gesteuert werden.
4. Verfahren nach Anspruch 3 , d a d u r c h g e k e n n z e i c h n e t, d a ß durch ein erstes Zugriffsattribut die Ermöglichung der Unterbrechung des Programms und durch ein weiteres Zugriffsattribut die Ermöglichung der Aufzeichnung der Ausführungsdaten bestimmt ist.
5. Verfahren nach Anspruch 3 , d a d u r c h g e k e n n z e i c h n e t, d a ß die Debug-Einheit (3) ein Programm nur unterbrechen und/oder die Ausführungsdaten aufzeichnen kann, wenn die der Unterbre- chung des Programms und/oder der Aufzeichnung der Ausführungsdaten zugeordneten Zugriffsbits gesetzt sind.
6. Verfahren nach einem der vorherigen Ansprüche, d a d u r c h g e k e n n z e i c h n e t, d a ß die zweiten Zugriffsbits zur Berechtigung der Aufzeichnung der den Programmbefehlen zugeordneten Ausführungsdaten über eine in einem Speicherbereich hinterlegte Referenz-Tabelle (6) von Adressen von Programmbefehlen realisiert sind, zur Einschränkung der Aufzeichnung der Ausführungsdaten.
7. Verfahren nach Anspruch 1, d a d u r c h g e k e n n z e i c h n e t, d a ß eine Debug-Unterbrechung zur Ausgabe der aufgezeichneten Ausführungsdaten durch ein Kontrollsignal der Debug-Einheit (3) ausgelöst wird.
8. Verfahren nach Anspruch 7, d a d u r c h g e k e n n z e i c h n e t, d a ß das Kontrollsignal bei einem bestimmten Füllstand eines Aufzeichnungsspeichers (4) , der die Ausführungsdaten aufzeichnet, erzeugt wird.
9. Verfahren nach Anspruch 7 , d a d u r c h g e k e n n z e i c h n e t, d a ß das Kontrollsignal bei einer entsprechenden Eingabe durch einen Benutzer erzeugt wird.
10. Verfahren nach einem der vorhergehenden Ansprüche, d a d u r c h g e k e n n z e i c h n e t, d a ß die Ausgabe der gespeicherten Ausführungsdaten nach außen ü- ber eine standardisierte Schnittstelle (7) erfolgt.
11. Mikrocontroller (1), der zusätzlich zu den Schaltkreisen und Datenspeichern eines zu emulierenden Mikroconrollers (2) eine Anordnung zur Steuerung der Unterbrechung und/oder zur Aufzeichnung von Ausführungsdaten eines Programms aufweist, wobei die Anordnung eine Debug-Einheit (3) und eine Steuerlogik (5) aufweist, und die Steuerlogik (5) anhand eines bestimmten Programmbefehlen zugeordneten Selektionsattributs steuert, ob an der Stelle eines Programrabefehls in einem Programm der Programmablauf unterbrochen wird und/oder die Aus- führungsdaten aufgezeichnet werden.
12. Anordnung nach Anspruch 11, d a d u r c h g e k e n n z e i c h n e t, d a ß der Mikrocontroller (1) einen Aufzeichnungsspeicher (4) , zur
Aufzeichnung der Ausführungsdaten, aufweist.
13. Anordnung nach Anspruch 11, d a d u r c h g e k e n n z e i c h n e t, d a ß die Debug-Einheit (3) eine standardisierte Schnittstelle (7) aufweist, über die die Ausgabe der gespeicherten Ausführungs- daten erfolgt .
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10303452.8 | 2003-01-29 | ||
DE2003103452 DE10303452B4 (de) | 2003-01-29 | 2003-01-29 | 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 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2004068345A2 true WO2004068345A2 (de) | 2004-08-12 |
WO2004068345A3 WO2004068345A3 (de) | 2007-11-29 |
Family
ID=32730601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/DE2004/000127 WO2004068345A2 (de) | 2003-01-29 | 2004-01-28 | 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 |
Country Status (2)
Country | Link |
---|---|
DE (1) | DE10303452B4 (de) |
WO (1) | WO2004068345A2 (de) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004008499B4 (de) * | 2004-02-20 | 2008-05-08 | Infineon Technologies Ag | Verfahren zum Emulieren einer integrierten Schaltung und Halbleiterchip |
DE102004049671B4 (de) * | 2004-10-12 | 2007-08-02 | Mühlbauer Ag | Elektronisches Modul für die Herstellung, Programmierung und das Testen von Chipkarten und zugehöriges Verfahren |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0902367A2 (de) * | 1997-09-12 | 1999-03-17 | Siemens Microelectronics, Inc. | Datenverarbeitungseinheit mit Fehlerbeseitungsmöglichkeiten |
US5970246A (en) * | 1997-09-11 | 1999-10-19 | Motorola Inc. | Data processing system having a trace mechanism and method therefor |
EP0992912A2 (de) * | 1998-09-30 | 2000-04-12 | Nec Corporation | Fehlersuchsystem für Rechnerprogramme, Verfahren zur Überprüfung eines Zielprogramms und Informationspeichermedium zur Speicherung eines Überprüfungsprogramms |
US20030014695A1 (en) * | 2001-07-06 | 2003-01-16 | Albrecht Mayer | Program-controlled unit |
-
2003
- 2003-01-29 DE DE2003103452 patent/DE10303452B4/de not_active Expired - Fee Related
-
2004
- 2004-01-28 WO PCT/DE2004/000127 patent/WO2004068345A2/de active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5970246A (en) * | 1997-09-11 | 1999-10-19 | Motorola Inc. | Data processing system having a trace mechanism and method therefor |
EP0902367A2 (de) * | 1997-09-12 | 1999-03-17 | Siemens Microelectronics, Inc. | Datenverarbeitungseinheit mit Fehlerbeseitungsmöglichkeiten |
EP0992912A2 (de) * | 1998-09-30 | 2000-04-12 | Nec Corporation | Fehlersuchsystem für Rechnerprogramme, Verfahren zur Überprüfung eines Zielprogramms und Informationspeichermedium zur Speicherung eines Überprüfungsprogramms |
US20030014695A1 (en) * | 2001-07-06 | 2003-01-16 | Albrecht Mayer | Program-controlled unit |
Also Published As
Publication number | Publication date |
---|---|
WO2004068345A3 (de) | 2007-11-29 |
DE10303452B4 (de) | 2007-02-08 |
DE10303452A1 (de) | 2004-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69719479T2 (de) | Datenverarbeitungssystemsicherheit | |
DE3876780T2 (de) | Mikrorechner mit eingebauter chipauswahl und programmierbarer busdehnung. | |
EP1248198B1 (de) | Programmgesteuerte Einheit mit Emulations-Einheiten | |
DE69226606T2 (de) | Speicherschaltung mit zwei Betriebsarten | |
DE69714472T2 (de) | Verfahren zum überprüfen eines integrierten speichers mit hilfe einer integrierten dma-schaltung | |
EP0011685B1 (de) | Programmierbare Speicherschutzeinrichtung für Mikroprozessorsysteme und Schaltungsanordnung mit einer derartigen Einrichtung | |
DE4331703C2 (de) | Elektronische Einrichtung | |
DE3855294T2 (de) | Mikrorechner mit Speicher | |
EP1101163B1 (de) | Programmgesteuerte einheit | |
DE2902465A1 (de) | Datenverarbeitungsanordnung | |
DE69621690T2 (de) | Vorrichtung zur Steuerung einer Mehrfachprogramm-Ausführung | |
EP0500973B1 (de) | EEPROM und Verfahren zum Ändern einer Initialisierungsroutine im EEPROM | |
DE10159901A1 (de) | Mikrocomputer mit eingebautem programmierbarem, nichtflüchtigem Speicher | |
WO2004049159A2 (de) | Einrichtung und verfahren zur analyse von eingebetteten systemen | |
DE3688136T2 (de) | Verfahren zum Testen und Setzen von Daten in einen Datensatz auf einer Platte in eine atomaren Ein/Ausgabeoperation. | |
DE19955776C1 (de) | Multitasking-Prozessorsystem | |
EP1262856A2 (de) | Programmgesteuerte Einheit | |
DE19950249C1 (de) | Elektronisches Gerät mit Softwareschutz | |
DE69220788T2 (de) | Kopplerschaltung und ihre verwendung in einer leiterplatte und verfahren hierfür | |
DE2755656A1 (de) | Einrichtung zum speicherschutz fuer digitalspeicher | |
DE3410497A1 (de) | Rechneranordnung | |
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 | |
EP1283471B1 (de) | Programmgesteuerte Einheit | |
DE19709975C2 (de) | Mikrocomputer | |
DE4303406C2 (de) | Verfahren zur Inhaltsänderung eines Registers eines Mikrocomputers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
122 | Ep: pct application non-entry in european phase |