FR2667419A1 - Memory-card application-program debugging process and debugging system - Google Patents
Memory-card application-program debugging process and debugging system Download PDFInfo
- Publication number
- FR2667419A1 FR2667419A1 FR9012114A FR9012114A FR2667419A1 FR 2667419 A1 FR2667419 A1 FR 2667419A1 FR 9012114 A FR9012114 A FR 9012114A FR 9012114 A FR9012114 A FR 9012114A FR 2667419 A1 FR2667419 A1 FR 2667419A1
- Authority
- FR
- France
- Prior art keywords
- card
- program
- debugging
- memory
- volatile memory
- 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
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
- G07F7/10—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
- G07F7/1008—Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
- G06F11/3648—Debugging of software using additional hardware
- G06F11/3652—Debugging of software using additional hardware in-circuit-emulation [ICE] arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3698—Environments for analysis, debugging or testing of software
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/067—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
- G06K19/07—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
- G06K19/073—Special arrangements for circuits, e.g. for protecting identification code in memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/0095—Testing the sensing arrangement, e.g. testing if a magnetic card reader, bar code reader, RFID interrogator or smart card reader functions properly
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
- G06Q20/341—Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
- G07F7/0806—Details of the card
- G07F7/0833—Card having specific functional components
- G07F7/084—Additional components relating to data transfer and storing, e.g. error detection, self-diagnosis
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Quality & Reliability (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Networks & Wireless Communication (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
Abstract
L'invention concerne les systèmes de débogage de programmes d'application de cartes à puces. Elle s'applique aux cartes comportant un microprocesseur et une mémoire non volatile programmable électriquement, cette mémoire contenant un programme d'application exécutable par le microprocesseur. Pour réaliser le débogage on utilise un système très simple fondé sur le fait que la mémoire du programme d'application est programmable électriquement. on se sert de cette mémoire pour stocker d'une part des versions provisoires et modifiables du programme d'application, et d'autre part un programme d'aide au débogage. Le système de débogage comprend en pratique seulement une carte à puce échantillon (30), un lecteur de carte (32), et un microordinateur (34) pour piloter les échanges entre la carte et le lecteur. Le procédé consiste essentiellement à stocker en mémoire le programme à déboguer, à modifier une instruction de ce programme pour la remplacer par une instruction de branchement vers le programme d'aide au débogage, et à lancer le programme d'application. Le programme d'aide fournit des renseignements sur l'état du système au moment du branchement.The invention relates to chip card application program debugging systems. It applies to cards comprising a microprocessor and an electrically programmable non-volatile memory, this memory containing an application program executable by the microprocessor. To carry out the debugging, a very simple system is used based on the fact that the memory of the application program is electrically programmable. this memory is used to store, on the one hand, provisional and modifiable versions of the application program, and on the other hand a debugging assistance program. The debugging system comprises in practice only a sample smart card (30), a card reader (32), and a microcomputer (34) to control the exchanges between the card and the reader. The method essentially consists in storing in memory the program to be debugged, in modifying an instruction of this program in order to replace it by an instruction for branching into the debugging assistance program, and in launching the application program. The help program provides information on the state of the system at the time of connection.
Description
PROCEDE DE DEBOGAGE DE PROGRAMME D'APPLICATION
DE CARTE A MEMOIRE ET SYSTEME DE DEBOGAGE
L'invention concerne la mise au point de programmes d'application de cartes à puces incorporant un microprocesseur et une mémoire de programmes.APPLICATION PROGRAM DEBUGGING METHOD
MEMORY CARD AND DEBUG SYSTEM
The invention relates to the development of smart card application programs incorporating a microprocessor and a program memory.
Si la carte à puce comprend un microprocesseur, c'est pour pouvoir exécuter des programmes d'application qui se présentent sous forme d'instructions successives données au microprocesseur. Ces instructions portent sur des opérations internes à la carte et sur les échanges de données effectués entre la carte et un lecteur de carte dans lequel la carte est insérée. If the smart card includes a microprocessor, it is to be able to execute application programs which are in the form of successive instructions given to the microprocessor. These instructions relate to operations internal to the card and to the data exchanges carried out between the card and a card reader in which the card is inserted.
Pour la mise au point de tout programme d'application de microprocesseur, il est nécessaire de passer par une phase de débogage dans laquelle le programme d'application est testé, dans des conditions aussi proches que possible de la réalité, et les erreurs éventuelles sont détectées puis corrigées. Les cartes à puces à microprocesseur n'échappent pas à cette règle. For the development of any microprocessor application program, it is necessary to go through a debugging phase in which the application program is tested, under conditions as close as possible to reality, and possible errors are detected and then corrected. Microprocessor chip cards are no exception to this rule.
Les cartes à puces qui sont plus spécialement concernées par la présente invention sont les cartes à microprocesseur comportant non seulement une mémoire morte (ROM) et une mémoire vive de travail (RAM), mais aussi une mémoire électriquement effaçable et reprogrammable (EEPROM) ou simplement électriquement programmable (EPROM). La mémoire morte comprend un programme figé, intangible, représentant notamment le système d'exploitation de la carte à microprocesseur gestion des mémoires, gestion des sécurités d'accès, et plus généralement tous les programmes obligatoires non modifiables de la carte à puce. La mémoire RAM sert classiquement à stocker des données temporairement et de manière volatile au cours de l'exécution d'un programme. The smart cards which are more particularly concerned with the present invention are microprocessor cards comprising not only a read only memory (ROM) and a working random access memory (RAM), but also an electrically erasable and reprogrammable memory (EEPROM) or simply electrically programmable (EPROM). The read only memory comprises a fixed, intangible program, representing in particular the operating system of the microprocessor card memory management, access security management, and more generally all the mandatory non-modifiable programs of the smart card. The RAM memory is conventionally used to store data temporarily and volatile during the execution of a program.
La mémoire EEPROM ou EPROM contient des données non volatiles et peut contenir aussi des programmes d'application variés, pour que la carte puisse avoir des fonctionnalités supplémentaires, spécifiques d'une application donnée.The EEPROM or EPROM memory contains non-volatile data and can also contain various application programs, so that the card can have additional functionalities, specific to a given application.
L'invention s'intéresse tout particulièrement au débogage des programmes d'application stockés en mémoire non volatile EEPROM ou EPROM et exécutables directement à partir de cette mémoire. The invention is particularly interested in debugging application programs stored in non-volatile EEPROM or EPROM memory and executable directly from this memory.
Dans la suite on ne parlera que de mémoires EEPROM, ctest-à-dire non seulement programmables mais aussi effaçables électriquement, l'invention étant particulièrement intéressante dans ce cas. In the following we will only talk about EEPROM memories, that is to say not only programmable but also electrically erasable, the invention being particularly advantageous in this case.
Pour effectuer le débogage d'un programme d'application qui est ainsi destiné à être stocké en mémoire non volatile pour être exécuté, on utilise habituellement un outil de développement qui comprend d'une part un simulateur de carte et d'autre part un émulateur de microprocesseur. To debug an application program which is thus intended to be stored in non-volatile memory to be executed, a development tool is usually used which comprises on the one hand a card simulator and on the other hand an emulator microprocessor.
La figure I rappelle la constitution classique d'un outil de développement d'application de microprocesseur. Figure I recalls the classic constitution of a microprocessor application development tool.
Le simulateur de carte 10 est un appareil électronique destiné à être connecté d'une part à un lecteur de carte 12 (par l'intermédiaire d'une extension 14 simulant les contacts d'accès d'une carte à puce), et d'autre part à l'émulateur 16. Le simulateur remplace la carte et possède toutes les ressources de la carte (mémoires RAM, ROM, EEPROM, interfaces d'entrée/sortie etc.) sauf le microprocesseur. The card simulator 10 is an electronic device intended to be connected on the one hand to a card reader 12 (by means of an extension 14 simulating the access contacts of a smart card), and elsewhere on the emulator 16. The simulator replaces the card and has all the resources of the card (RAM, ROM, EEPROM, input / output interfaces, etc.) except the microprocessor.
L'émulateur 16 simule le fonctionnement du microprocesseur de la carte et comprend à cet effet un microprocesseur identique à celui des cartes utilisées dans l'application. L'émulateur est relié d'une part au simulateur de carte 10 pour que son microprocesseur soit dans le même environnement que s'il était monté effectivement sur une carte avec les ressources de celle-ci; et il est relié d'autre part à un microordinateur 18 capable de le commander c'est-à-dire de lui fournir toute instruction souhaitée et capable d'échanger des données avec lui. The emulator 16 simulates the operation of the card microprocessor and for this purpose includes a microprocessor identical to that of the cards used in the application. The emulator is connected on the one hand to the card simulator 10 so that its microprocessor is in the same environment as if it were actually mounted on a card with the resources thereof; and it is connected on the other hand to a microcomputer 18 capable of controlling it, that is to say of providing it with any desired instruction and capable of exchanging data with it.
Le lecteur de carte 12 quant à lui est relié aussi à un autre microordinateur 20 capable de le commander pour lui permettre d'échanger des données avec le simulateur de carte par l'intermédiaire de l'extension 14, exactement comme si une véritable carte était insérée dans le lecteur. C'est par ce deuxième microordinateur 20 que l'on pourra recueillir toutes les informations utiles sur ce qui se passe dans la carte, le premier microordinateur ayant pour rôle de fournir des instructions au microprocesseur pour lui faire exécuter des programmes contrôlés. The card reader 12 is also connected to another microcomputer 20 capable of controlling it to allow it to exchange data with the card simulator via the extension 14, exactly as if a real card were inserted in the player. It is by this second microcomputer 20 that we can collect all the useful information on what is happening in the card, the first microcomputer having the role of providing instructions to the microprocessor to make it execute controlled programs.
Le développement de l'application avec cet outil classique consiste à
- faire exécuter un programme d'application par le microprocesseur de l'émulateur, soit complètement soit partiellement, soit en mode pas-à-pas, soit en imposant des points d'arrêts, etc.The development of the application with this classic tool consists of
- have an application program executed by the emulator's microprocessor, either completely or partially, or in step-by-step mode, or by imposing breakpoints, etc.
- examiner le fonctionnement global et détaillé, en s'intéressant notamment aux contenus des mémoires et registres internes du microprocesseur à diverses étapes du programme. - examine the overall and detailed operation, focusing in particular on the contents of the memories and internal registers of the microprocessor at various stages of the program.
- détecter les défauts de fonctionnalités et autres erreurs;
- modifier le programme d'application dans un sens tendant à supprimer les défauts constatés;
- et recommencer le débogage avec le programme d'application modifié, ceci jusqu'à disparition complète des défauts constatés.- detect functional faults and other errors;
- modify the application program in a direction tending to remove the defects noted;
- and start debugging again with the modified application program, until complete disappearance of the noted faults.
Il faut donc un outil de développement relativement compliqué (un émulateur + un simulateur + deux ordinateurs personnels) et donc cher pour effectuer ce débogage. You therefore need a relatively complicated development tool (an emulator + a simulator + two personal computers) and therefore expensive to perform this debugging.
D'autre part le simulateur de carte est rarement parfaitement compatible avec la carte qu'il doit simuler : il peut y avoir des écarts de conditions d'opération (tension d'alimentation, fréquence d'horloge, jeu d'instructions, etc. ). En effet, on ne modifie pas les outils de débogage, émulateur et simulateur, chaque fois qu'on apporte des petites modifications aux séries de cartes fabriquées. On the other hand, the card simulator is rarely perfectly compatible with the card it has to simulate: there may be differences in operating conditions (supply voltage, clock frequency, set of instructions, etc.). ). Indeed, we do not modify the debugging tools, emulator and simulator, each time we make small modifications to the series of cards manufactured.
Enfin, l'utilisateur de la carte, qui développe l'application, n'est pas le fabricant de la carte et du matériel de simulation et il peut être à l'autre bout de la planète. La maintenance de l'outil de développement peut donc poser des problèmes difficiles. Finally, the user of the card, who develops the application, is not the manufacturer of the card and the simulation equipment and he can be on the other side of the planet. Maintaining the development tool can therefore pose difficult problems.
Un but de l'invention est d'améliorer les outils de débogage pour les cartes à puces à microprocesseur incorporant une mémoire non volatile programmable électriquement, susceptible de contenir un programme d'application. An object of the invention is to improve the debugging tools for microprocessor smart cards incorporating an electrically programmable non-volatile memory, capable of containing an application program.
Selon l'invention, on propose un système de débogage de programme d'application de carte à mémoire comprenant une carte à mémoire échantillon correspondant à celle utilisée dans l'application à déboguer, cette carte comportant au moins un microprocesseur et une mémoire non volatile programmable électriquement, un lecteur de carte dans lequel cette carte est introduite, un microordinateur (ordinateur personnel ou autre console de contrôle) pour contrôler le lecteur et notamment les échanges de données entre la carte et le lecteur, le programme à déboguer étant contenu dans une première zone de la mémoire non volatile de la carte, et un programme d'aide au débogage étant contenu dans une deuxième zone de la mémoire non volatile. According to the invention, a system for debugging a memory card application program is proposed comprising a sample memory card corresponding to that used in the application to be debugged, this card comprising at least one microprocessor and a non-volatile programmable memory. electrically, a card reader into which this card is inserted, a microcomputer (personal computer or other control console) for controlling the reader and in particular the exchange of data between the card and the reader, the program to be debugged being contained in a first area of the card's non-volatile memory, and a debugging assistance program being contained in a second area of the non-volatile memory.
En pratique, le programme d'aide au débogage comporte des moyens pour sauvegarder dans la mémoire non volatile des données internes représentant le fonctionnement de la carte à un instant donné. In practice, the debugging assistance program comprises means for saving in the non-volatile memory internal data representing the operation of the card at a given instant.
On peut notamment charger dans la mémoire non volatile un programme d'application comportant une instruction modifiée à l'endroit où on veut observer le comportement interne de la carte, cette instruction modifiée étant une instruction de branchement vers le programme d'aide au débogage. In particular, it is possible to load into the non-volatile memory an application program comprising a modified instruction at the place where one wishes to observe the internal behavior of the card, this modified instruction being an instruction for connection to the debugging assistance program.
Le procédé de débogage selon l'invention comprend les opérations consistant à
- introduire une carte échantillon dans un lecteur de cartes contrôlé par un microordinateur, la carte comportant un microprocesseur et une mémoire non volatile programmable électriquement,
- charger dans la mémoire non volatile, à l'aide du microordinateur et du lecteur, un programme d'application à déboguer, et un programme d'aide au débogage,
- donner par l'intermédiaire du microordinateur et du lecteur des ordres de modification et/ou d'exécution du programme chargé, l'exécution étant éventuellement modifiée sous le contrôle du programme d'aide au débogage, et recueillir dans le microordinateur les données résultant de îtexécution du programme,
- modifier le programme d'application s'il y a lieu en fonction des résultats et recommencer les étapes de chargement d'un programme d'application, d'exécution, et de recueil des données. The debugging method according to the invention comprises the operations consisting of
- insert a sample card into a card reader controlled by a microcomputer, the card comprising a microprocessor and an electrically programmable non-volatile memory,
- load into the non-volatile memory, using the microcomputer and the reader, an application program to be debugged, and a program to assist in debugging,
- give via the microcomputer and the reader orders to modify and / or execute the loaded program, execution being possibly modified under the control of the debugging assistance program, and collect the resulting data in the microcomputer program execution,
- modify the application program if necessary according to the results and repeat the steps for loading an application program, execution, and data collection.
Le programme d'aide au débogage pourra comporter des moyens pour simuler la suite d'une séquence d'échanges entre la carte et le microprocesseur lorsqu'une telle séquence a été interrompue en vue de la sauvegarde du contexte machine dans la mémoire non volatile. The debugging assistance program may include means for simulating the continuation of a sequence of exchanges between the card and the microprocessor when such a sequence has been interrupted with a view to saving the machine context in the non-volatile memory.
Par conséquent, au lieu d'utiliser un simulateur de carte qui comprend toutes les ressources de la carte sauf le microprocesseur, un émulateur qui comprend le microprocesseur, et un microordinateur qui comprend un programme pour le microprocesseur, on utilise simplement une carte échantillon, identique à celle qui sera effectivement utilisée dans l'application. Cette carte comprend ses propres ressources (mémoires vives, mortes et non volatiles), son microprocesseur, un programme d'application stocké en mémoire non volatile et un programme d'aide au débogage stocké dans la même mémoire et apte à modifier partiellement l'exécution du programme d'application. Seul un lecteur de carte et un seul microordinateur pour le contrôler sont nécessaires pour effectuer le débogage.Le débogage s'effectue par chargements successifs de programmes modifiés jusqu'# élimination complète des erreurs. On utilise ainsi très avantageusement le fait que le programme d'application est directement exécutable à partir d'une mémoire non volatile et le fait que cette mémoire est programmable électriquement à partir du lecteur de cartes. Therefore, instead of using a card simulator which includes all the resources of the card except the microprocessor, an emulator which includes the microprocessor, and a microcomputer which includes a program for the microprocessor, we simply use a sample card, identical to the one that will actually be used in the application. This card includes its own resources (RAM, ROM and non-volatile), its microprocessor, an application program stored in non-volatile memory and a debugging assistance program stored in the same memory and able to partially modify the execution. of the application program. Only a card reader and a single microcomputer to control it are necessary to carry out debugging. Debugging is carried out by successive loads of modified programs until # complete elimination of errors. It is thus very advantageous to use the fact that the application program is directly executable from a non-volatile memory and the fact that this memory is electrically programmable from the card reader.
Le microordinateur est capable notamment d'insérer des points d'arrêt (instructions de branchement vers le programme d'aide au débogage) à des points désignés du programme d'application. Le programme d'aide au débogage stocké en mémoire non volatile est de préférence capable de lire et modifier les contenus des diverses zones de mémoire (vive et non volatile) et de sauvegarder en mémoire non volatile les contenus de registres divers de la carte, cela à n'importe quel moment du processus d'échange entre la carte et le lecteur. The microcomputer is capable in particular of inserting breakpoints (instructions for connection to the debugging assistance program) at designated points of the application program. The debugging aid program stored in non-volatile memory is preferably capable of reading and modifying the contents of the various memory areas (living and non-volatile) and of saving in non-volatile memory the contents of various registers of the card, this at any time during the exchange process between the card and the reader.
D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit et qui est faite en référence aux dessins dans lesquels
- la figure 1, déjà décrite, représente la constitution classique d'un outil de développement d'application de carte à puce à microprocesseur;
- la figure 2 représente la constitution de l'outil de développement selon l'invention;
- la figure 3 représente schématiquement le contenu de la puce d'une carte à puce;
- la figure 4 représente l'organisation de la mémoire non volatile avec des zones de données et des zones de codes exécutables;
- la figure 5 représente un exemple de séquence d'échanges entre une carte à puce et un lecteur de carte.Other characteristics and advantages of the invention will appear on reading the detailed description which follows and which is given with reference to the drawings in which
- Figure 1, already described, shows the conventional constitution of a microprocessor smart card application development tool;
- Figure 2 shows the constitution of the development tool according to the invention;
- Figure 3 shows schematically the content of the chip of a smart card;
- Figure 4 shows the organization of the non-volatile memory with data areas and executable code areas;
- Figure 5 shows an example of an exchange sequence between a smart card and a card reader.
La figure 2 représente l'outil de développement selon l'invention permettant le débogage d'un programme d'application d'une carte à microprocesseur lorsque ce programme est stocké dans une mémoire non volatile interne, programmable électriquement (en général EEPROM donc également effaçable électriquement), de la puce de circuit intégré de la carte. FIG. 2 represents the development tool according to the invention allowing the debugging of an application program for a microprocessor card when this program is stored in an internal non-volatile memory, electrically programmable (in general EEPROM therefore also erasable electrically), from the integrated circuit chip on the card.
L'outil est très simple : il comprend
- une carte échantillon 30 correspondant exactement aux cartes qui seront utilisées lorsque le programme sera définitivement au point;
- un lecteur de carte 32 dans lequel on peut insérer la carte et échanger avec elle des données selon une procédure qui n'est pas différente de la procédure qu'on utilisera dans l'application finale;
- et un microordinateur 34 pour contrôler le lecteur et donc les échanges avec la carte. Les échanges avec la carte sont classiquement des échanges en série.The tool is very simple: it includes
a sample card 30 corresponding exactly to the cards which will be used when the program is finally ready;
a card reader 32 into which the card can be inserted and data exchanged with it according to a procedure which is not different from the procedure which will be used in the final application;
- And a microcomputer 34 to control the reader and therefore the exchanges with the card. The exchanges with the card are conventionally serial exchanges.
Les échanges entre le microordinateur et le lecteur peuvent se faire par une liaison classique type RS232.The exchanges between the microcomputer and the reader can be done by a classic RS232 link.
La carte échantillon, comme la carte de l'application finale comporte classiquement, comme cela est représenté à la figure 3 un microprocesseur (CPU) avec tous ses registres et opérateurs internes, une mémoire morte ROM de programme, pour les programmes figés déjà mis au point et principalement pour le système d'exploitation de la carte, une mémoire vive de travail (RAM), volatile, et une mémoire non volatile programmable électriquement, de préférence EEPROM, pouvant contenir des données mais aussi du code exécutable, notamment le programme d'application qu'on cherche à mettre au point. La carte peut comprendre bien sûr d'autres circuits et notamment des circuits de sécurité établissant les autorisations d'échanges entre le lecteur et la carte. Ces échanges se font par des connexions d'entrée/sortie E/S, en principe en mode série. The sample card, like the card of the final application conventionally comprises, as represented in FIG. 3, a microprocessor (CPU) with all its registers and internal operators, a ROM program memory, for the frozen programs already set point and mainly for the operating system of the card, a random working memory (RAM), and an electrically programmable non-volatile memory, preferably EEPROM, which can contain data but also executable code, in particular the program application that we are trying to develop. The card can of course include other circuits and in particular security circuits establishing the authorizations for exchanges between the reader and the card. These exchanges are made by I / O input / output connections, in principle in serial mode.
Lors de la mise au point du programme d'application contenu en mémoire non volatile, on utilise une première zone Z1 de cette mémoire pour contenir le programme à déboguer, et une autre zone de mémoire Z2 pour contenir un programme d'aide au débogage. Ces deux zones contiennent du code exécutable par le microprocesseur de la carte. Une troisième zone Z3 sert de mémoire de données non volatiles; ces trois zones sont accessibles en lecture, écriture et effacement par le microprocesseur. D'autres zones peuvent encore être prévues, par exemple pour contenir des informations non accessibles en lecture et/ou en programmation et/ou en effacement par le microprocesseur. During the development of the application program contained in non-volatile memory, a first zone Z1 of this memory is used to contain the program to be debugged, and another memory zone Z2 to contain a program for assisting in debugging. These two zones contain code executable by the microprocessor of the card. A third zone Z3 serves as a memory for non-volatile data; these three zones are accessible in read, write and erase by the microprocessor. Other zones can also be provided, for example to contain information that is not accessible for reading and / or programming and / or erasing by the microprocessor.
La figure 4 représente cette organisation de la mémoire non volatile de la carte échantillon qui sert au débogage. FIG. 4 represents this organization of the non-volatile memory of the sample card which is used for debugging.
Le programme d'aide au débogage qui est contenu dans la zone Z2 de la mémoire est un programme permettant de faire exécuter par le microprocesseur diverses opérations permettant d'analyser le déroulement du programme principal; par exemple, ce programme d'aide comprend des instructions permettant de stocker en mémoire non volatile les contenus de registres et de la mémoire vive du microprocesseur, puis de les lire pour les envoyer au microordinateur. Il permet aussi de lire et modifier des zones de la mémoire vive ou de la mémoire non volatile. The debugging assistance program which is contained in the zone Z2 of the memory is a program allowing the microprocessor to execute various operations making it possible to analyze the progress of the main program; for example, this help program includes instructions for storing the contents of registers and random access memory of the microprocessor in non-volatile memory, then reading them in order to send them to the microcomputer. It also makes it possible to read and modify areas of the random access memory or non-volatile memory.
La mise au point du programme se déroule de la manière suivante : par le microordinateur 34 et par l'intermédiaire du lecteur de carte 32 commandé par le microordinateur, on charge dans la zone Z1 de la mémoire non volatile de la carte le programme d'application; on modifie par exemple une instruction de ce programme pour y introduire un point d'arrêt (permettant d'examiner l'état de la carte à l'instant où ce point est atteint); le point d'arrêt consiste en une instruction de branchement vers le programme d'aide au débogage qu'on a stocké dans la zone Z2. The development of the program takes place in the following manner: by the microcomputer 34 and by means of the card reader 32 controlled by the microcomputer, the program of load in the zone Z1 of the non-volatile memory of the card application; we modify for example an instruction of this program to introduce a breakpoint (allowing to examine the state of the card at the moment when this point is reached); the breakpoint consists of a connection instruction to the debugging assistance program that has been stored in zone Z2.
On fait exécuter le programme d'application jusqu'à l'instruction de branchement, à partir de laquelle le programme d'aide au débogage prend le relais pour effectuer certaines opérations, et notamment le relevé de certains registres et mémoires du circuit. Ces relevés sont stockés en mémoire EEPROM, dans la zone de données Z3. Ces relevés seront lus ultérieurement par le microordinateur 34; ils permettent de contrôler le fonctionnement de la carte et de détecter des erreurs de fonctionnement. The application program is executed until the connection instruction, from which the debugging assistance program takes over to perform certain operations, and in particular the reading of certain registers and memories of the circuit. These readings are stored in EEPROM memory, in the data area Z3. These statements will be read later by the microcomputer 34; they make it possible to control the operation of the card and to detect operating errors.
Le programme d'aide au débogage permet aussi de modifier le contenu de certaines zones de mémoire vive ou de la mémoire non volatile, et même le contenu de certains registres internes du microprocesseur. The debugging assistance program also makes it possible to modify the content of certain areas of random access memory or non-volatile memory, and even the content of certain internal registers of the microprocessor.
Dans la pratique, les normes d'utilisation des cartes à puces prévoient un protocole d'échanges assez strict entre la carte et le lecteur. In practice, the standards for using smart cards provide for a fairly strict exchange protocol between the card and the reader.
Ce protocole défini par la norme ISO 7816-3 est encore appelé T = O ; il est représenté schématiquement à la figure 5 : c'est le lecteur de carte qui a le contrôle permanent des échanges et non la carte (pendant la mise au point de l'application, le lecteur est contrôlé par le microordinateur 34); le lecteur envoie des octets de commande CMD pour définir les opérations à effectuer par la carte; la carte répond par un octet de procédure PB; puis les échanges de données ont lieu (signaux DATA IN ou DATA OUT selon que la carte reçoit ou émet des données); et enfin la carte émet deux octets de fin de procédure ME1, ME2. Si le déroulement de la séquence n'est pas conforme à cette procédure, le lecteur envoie un message d'erreur et reprend le contrôle. Cette procédure normalisée est donnée à titre d'exemple. This protocol defined by the ISO 7816-3 standard is also called T = O; it is represented diagrammatically in FIG. 5: it is the card reader which has permanent control of the exchanges and not the card (during the development of the application, the reader is controlled by the microcomputer 34); the reader sends CMD command bytes to define the operations to be performed by the card; the card responds with a PB procedure byte; then the data exchanges take place (DATA IN or DATA OUT signals depending on whether the card receives or transmits data); and finally the card transmits two bytes of end of procedure ME1, ME2. If the sequence does not follow this procedure, the reader sends an error message and regains control. This standard procedure is given as an example.
Une des fonctions importantes du débogage est la connaissance du contexte machine (contenu de la mémoire vive, contenu des registres microprocesseur) à un instant donné du déroulement du programme d'application; cela veut dire qu'une séquence d'échanges entre le lecteur et la carte sera forcément interrompue si on a besoin de connaître le contexte au milieu de cette séquence. Or le lecteur réagit à toute rupture de séquence en émettant un message d'erreur et en réinitialisant tous les registres. One of the important functions of debugging is the knowledge of the machine context (content of the random access memory, content of the microprocessor registers) at a given instant in the progress of the application program; this means that a sequence of exchanges between the reader and the card will necessarily be interrupted if we need to know the context in the middle of this sequence. However, the reader reacts to any break in sequence by issuing an error message and by resetting all the registers.
Selon l'invention, on propose un moyen pour permettre quand même la connaissance du contexte machine à un instant désiré d'une séquence d'échanges. According to the invention, a means is proposed to allow nevertheless the knowledge of the machine context at a desired instant of a sequence of exchanges.
Pour atteindre ce but, le programme d'aide au débogage (vers lequel on déroute le programme d'application à l'endroit désiré) contient des instructions de sauvegarde des contenus registres et mémoires qu'on veut observer, et des instructions de simulation d'échanges de données avec le lecteur. La sauvegarde est faite dans la zone de données Z3 de la mémoire EEPROM. To achieve this goal, the debugging assistance program (to which the application program is diverted to the desired location) contains instructions for saving the contents of registers and memories that we want to observe, and instructions for simulating data exchange with the reader. The backup is made in the data area Z3 of the EEPROM memory.
Par conséquent, la séquence d'analyse se déroule de la manière suivante : le programme d'application est chargé dans la mémoire EEPROM (zone Z1) avec une instruction modifiée à l'endroit ou on veut observer le contexte machine; l'instruction modifiée est une instruction de branchement vers le programme d'aide au débogage (zone Z2); le programme d'aide au débogage écrit alors en mémoire EEPROM (zone Z3) le contenu des registres et mémoires et il exécute une séquence fictive d'échanges avec le lecteur de carte (à partir du point où cette séquence a été interrompue) pour laisser croire au lecteur que la séquence en cours se déroule normalement. Consequently, the analysis sequence proceeds as follows: the application program is loaded into the EEPROM memory (zone Z1) with a modified instruction at the place where one wishes to observe the machine context; the modified instruction is a connection instruction to the debugging assistance program (zone Z2); the debugging assistance program then writes to EEPROM memory (zone Z3) the contents of the registers and memories and it performs a fictitious sequence of exchanges with the card reader (from the point where this sequence was interrupted) to leave believe the reader that the current sequence is proceeding normally.
Par exemple, si la séquence en cours est une séquence d'envoi de données par la carte et si on veut observer le contexte machine juste après l'octet de procédure PB, le programme d'aide au débogage enverra des données quelconques au lecteur pendant la sauvegarde du contexte machine. Si la séquence en cours était une séquence de réception de données par la carte, le programme d'aide au débogage simulerait une réception de données. For example, if the current sequence is a sequence of sending data by the card and if we want to observe the machine context just after the PB procedure byte, the debugging assistance program will send any data to the reader during saving the machine context. If the current sequence was a sequence of data reception by the card, the debugging assistance program would simulate reception of data.
Le contexte machine sauvegardé en mémoire non volatile à des adresses spécifiées de la zone Z3 pourra être lu ultérieurement : le microordinateur 34 peut lire ou écrire à n'importe quelle adresse de la mémoire non volatile sauf éventuellement dans des zones à accès réservé. La révélation du contenu des registres du microprocesseur par la lecture ultérieure de la zone Z3 permet de comprendre les erreurs du programme de l'application et de les corriger. The machine context saved in non-volatile memory at specified addresses in the zone Z3 can be read later: the microcomputer 34 can read or write to any address in the non-volatile memory except possibly in areas with reserved access. The revelation of the content of the microprocessor registers by the subsequent reading of the zone Z3 makes it possible to understand the errors of the program of the application and to correct them.
Par exemple, pour le microprocesseur ST8 de
SGS-THOMSON MICROELECTRONICS S.A., la série d'instructions microprocesseurs de débogage qui servent à la sauvegarde du contenu des registres, est, en langage assembleur, la suivante
InputFor example, for the ST8 microprocessor of
SGS-THOMSON MICROELECTRONICS SA, the series of debugging microprocessor instructions used to save the contents of registers, is, in assembly language, the following
Input
SS tttttttttttttttttttttttt*ttt 56 * TSA: TRANSFERT SP 10 A * 57 58 ISA MACRO
S9 FCB t9E 60 EUDH 61 62 63 E600 ORG SE600
G4 E600 BACKUP BLKB 4D,O L ZONE DE SAUVEGARDE DE LA RAM ET DE# 65 * REGISTRES A, X, CC ET SP 66 67 E628 24 04 CSET BHG 68 E62A 10 SA BSET 69 E62C 20 02 BRA ZSET t RECUPERATI DE CC,A ET X 70 E62E 11 BA CCLR BCLR 71 * 72 E630 26 04 BHE ZCLR t n E632 12 BA BSET 1,REG CC * 74 E634 20 02 BRA NSET * 75 E636 13 SA ZCLR BCLR 1,REG CC t 76 t 77 E638 2A 04 HSET BPL WCLR 78 E63A 14 SA BSET 2,REG CC 79 E63C 20 02 BRA ISET 80 E63E 15 OA NCLR BCLR 2,REGCc * 82 2C 04 ISET BHC ICtR t 83 F642 16 SA * 84 E644 20 02 SRA HSET t as 17 86 87 E648 28 04 BUCC HCLR t 88 E64A 18 * 89 E64C 20 02 BRA NIT REG t 9D E64E 19 SA HCLR BCLR 4,REG CC * 91 t 92 E650 87 88 WKTREG STA REG A t 93 E652 BE 89 STX REG K * 94 5654 TSA * 95 E654 9E FCB tE 96 E655 ERDM 97 5655 B7 88 STA RCC *
Cette série d'instructions est utilisable telle quelle sur tous les microprocesseurs du type 6805. Elle doit être modifiée en fonction du langage utilisé par le microprocesseur, pour les autres microprocesseurs. Sa structure et son but se déduisent de ceux indiqués ci-dessus. SS tttttttttttttttttttttttt * ttt 56 * TSA: TRANSFER SP 10 A * 57 58 ISA MACRO
S9 FCB t9E 60 EUDH 61 62 63 E600 ORG SE600
G4 E600 BACKUP BLKB 4D, OL RAM AND # 65 SAVE AREA * REGISTERS A, X, CC AND SP 66 67 E628 24 04 CSET BHG 68 E62A 10 SA BSET 69 E62C 20 02 BRA ZSET t RECOVERY FROM CC, A ET X 70 E62E 11 BA CCLR BCLR 71 * 72 E630 26 04 BHE ZCLR tn E632 12 BA BSET 1, REG CC * 74 E634 20 02 BRA NSET * 75 E636 13 SA ZCLR BCLR 1, REG CC t 76 t 77 E638 2A 04 HSET BPL WCLR 78 E63A 14 SA BSET 2, REG CC 79 E63C 20 02 BRA ISET 80 E63E 15 OA NCLR BCLR 2, REGCc * 82 2C 04 ISET BHC ICtR t 83 F642 16 SA * 84 E644 20 02 SRA HSET t as 17 86 87 E648 28 04 BUCC HCLR t 88 E64A 18 * 89 E64C 20 02 BRA NIT REG t 9D E64E 19 SA HCLR BCLR 4, REG CC * 91 t 92 E650 87 88 WKTREG STA REG A t 93 E652 BE 89 STX REG K * 94 5654 TSA * 95 E654 9E FCB tE 96 E655 ERDM 97 5655 B7 88 STA RCC *
This series of instructions can be used as is on all microprocessors of the 6805 type. It must be modified according to the language used by the microprocessor, for the other microprocessors. Its structure and purpose are deduced from those indicated above.
Claims (6)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR9012114A FR2667419A1 (en) | 1990-10-02 | 1990-10-02 | Memory-card application-program debugging process and debugging system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR9012114A FR2667419A1 (en) | 1990-10-02 | 1990-10-02 | Memory-card application-program debugging process and debugging system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| FR2667419A1 true FR2667419A1 (en) | 1992-04-03 |
Family
ID=9400843
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| FR9012114A Withdrawn FR2667419A1 (en) | 1990-10-02 | 1990-10-02 | Memory-card application-program debugging process and debugging system |
Country Status (1)
| Country | Link |
|---|---|
| FR (1) | FR2667419A1 (en) |
Cited By (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1999001960A3 (en) * | 1997-06-30 | 1999-04-29 | Schlumberger Ind Sa | Smart card control of terminal and network resources |
| US6098891A (en) * | 1998-06-29 | 2000-08-08 | Schlumberger Malco, Inc. | Controlling industrial processes |
| WO2000068797A1 (en) * | 1999-05-11 | 2000-11-16 | Microsoft Corporation | Protocol for smart card application development |
| WO2000077750A1 (en) * | 1999-06-14 | 2000-12-21 | Wind River International Limited | Method for a multiple smart card simulator |
| US6308270B1 (en) | 1998-02-13 | 2001-10-23 | Schlumberger Technologies, Inc. | Validating and certifying execution of a software program with a smart card |
| US6490616B1 (en) | 1999-06-14 | 2002-12-03 | Wind River International, Ltd. | Method and apparatus for incremental download from server to client |
| US6547150B1 (en) | 1999-05-11 | 2003-04-15 | Microsoft Corporation | Smart card application development system and method |
| US6591229B1 (en) | 1998-10-09 | 2003-07-08 | Schlumberger Industries, Sa | Metrology device with programmable smart card |
| WO2003025753A3 (en) * | 2001-09-17 | 2004-01-08 | Giesecke & Devrient Gmbh | Method for producing an error detection message in a portable data medium |
| US6845498B1 (en) | 1999-05-11 | 2005-01-18 | Microsoft Corporation | Method and apparatus for sharing data files among run time environment applets in an integrated circuit card |
| US6857015B1 (en) | 1999-06-14 | 2005-02-15 | Wind River International, Ltd. | Method and system for remotely observing and controlling objects |
| EP1475715A3 (en) * | 2003-04-23 | 2009-02-25 | STMicroelectronics, Inc. | Smart card device and method for debug and software development |
| US7941660B2 (en) | 2003-11-13 | 2011-05-10 | Gemalto Sa | System and method for data communications allowing slave device to be network peers |
| FR3048298A1 (en) * | 2016-02-26 | 2017-09-01 | Gie Sesam-Vitale | SIMULATION SYSTEM OF CHIP CARDS. |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4777355A (en) * | 1986-12-24 | 1988-10-11 | Mitsubishi Denki Kabushiki Kaisha | IC card and system for checking the functionality thereof |
| FR2633755A1 (en) * | 1988-06-30 | 1990-01-05 | Mitsubishi Electric Corp | MAP WITH INTEGRATED CIRCUIT |
| EP0356237A2 (en) * | 1988-08-26 | 1990-02-28 | Hitachi Maxell Ltd. | Integrated Circuit Card |
-
1990
- 1990-10-02 FR FR9012114A patent/FR2667419A1/en not_active Withdrawn
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4777355A (en) * | 1986-12-24 | 1988-10-11 | Mitsubishi Denki Kabushiki Kaisha | IC card and system for checking the functionality thereof |
| FR2633755A1 (en) * | 1988-06-30 | 1990-01-05 | Mitsubishi Electric Corp | MAP WITH INTEGRATED CIRCUIT |
| EP0356237A2 (en) * | 1988-08-26 | 1990-02-28 | Hitachi Maxell Ltd. | Integrated Circuit Card |
Cited By (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1999001960A3 (en) * | 1997-06-30 | 1999-04-29 | Schlumberger Ind Sa | Smart card control of terminal and network resources |
| US6157966A (en) * | 1997-06-30 | 2000-12-05 | Schlumberger Malco, Inc. | System and method for an ISO7816 complaint smart card to become master over a terminal |
| US6308270B1 (en) | 1998-02-13 | 2001-10-23 | Schlumberger Technologies, Inc. | Validating and certifying execution of a software program with a smart card |
| US6098891A (en) * | 1998-06-29 | 2000-08-08 | Schlumberger Malco, Inc. | Controlling industrial processes |
| US6591229B1 (en) | 1998-10-09 | 2003-07-08 | Schlumberger Industries, Sa | Metrology device with programmable smart card |
| US6938244B1 (en) | 1999-05-11 | 2005-08-30 | Microsoft Corp. | Interlaced protocol for smart card application development |
| US7516444B2 (en) | 1999-05-11 | 2009-04-07 | Microsoft Corporation | Interlaced protocol for smart card application development |
| US6547150B1 (en) | 1999-05-11 | 2003-04-15 | Microsoft Corporation | Smart card application development system and method |
| US7454741B2 (en) | 1999-05-11 | 2008-11-18 | Microsoft Corporation | Method and apparatus for sharing data files among runtime environment applets in an integrated circuit card |
| WO2000068797A1 (en) * | 1999-05-11 | 2000-11-16 | Microsoft Corporation | Protocol for smart card application development |
| US6845498B1 (en) | 1999-05-11 | 2005-01-18 | Microsoft Corporation | Method and apparatus for sharing data files among run time environment applets in an integrated circuit card |
| US6857015B1 (en) | 1999-06-14 | 2005-02-15 | Wind River International, Ltd. | Method and system for remotely observing and controlling objects |
| WO2000077750A1 (en) * | 1999-06-14 | 2000-12-21 | Wind River International Limited | Method for a multiple smart card simulator |
| US6490616B1 (en) | 1999-06-14 | 2002-12-03 | Wind River International, Ltd. | Method and apparatus for incremental download from server to client |
| WO2003025753A3 (en) * | 2001-09-17 | 2004-01-08 | Giesecke & Devrient Gmbh | Method for producing an error detection message in a portable data medium |
| EP1475715A3 (en) * | 2003-04-23 | 2009-02-25 | STMicroelectronics, Inc. | Smart card device and method for debug and software development |
| US7823133B2 (en) | 2003-04-23 | 2010-10-26 | Stmicroelectronics, Inc. | Smart card device and method for debug and software development |
| US7941660B2 (en) | 2003-11-13 | 2011-05-10 | Gemalto Sa | System and method for data communications allowing slave device to be network peers |
| FR3048298A1 (en) * | 2016-02-26 | 2017-09-01 | Gie Sesam-Vitale | SIMULATION SYSTEM OF CHIP CARDS. |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| FR2667419A1 (en) | Memory-card application-program debugging process and debugging system | |
| FR2766942A1 (en) | CHIP CARD READER WITH MICROCONTROLLER AND SECURITY COMPONENT | |
| EP0430734B1 (en) | System and method to securely operate a computerprogram | |
| FR2757664A1 (en) | TERMINAL AND SELF-DIAGNOSIS OR MONITORING METHOD AND PORTABLE OBJECT USED IN SUCH A TERMINAL OR METHOD | |
| FR2606903A1 (en) | METHOD AND DEVICE FOR MANAGING STOP POINTS IN A SOFTWARE MONITOR | |
| FR2790844A1 (en) | METHOD AND DEVICE FOR MONITORING THE PROGRESS OF A PROGRAM, PROGRAM DEVICE FOR MONITORING ITS PROGRAM | |
| CA2696020A1 (en) | Method for automatic script generation for testing the validity of operational software of a system onboard and aircraft and device for implementing the same | |
| EP2150897B1 (en) | Method for simulating a system on board an aircraft for testing an operating software program and device for implementing said method | |
| CN110968437A (en) | Method, device, equipment and medium for parallel execution of single contract based on Java intelligent contract | |
| FR2969334A1 (en) | SAFETY EQUIPMENT MODULE AND METHOD FOR DEBUGGING SUCH A MODULE | |
| FR2645989A1 (en) | MULTIFUNCTION COUPLER BETWEEN A CENTRAL COMPUTER UNIT AND THE DIFFERENT PERIPHERAL ORGANS OF THE SAME | |
| EP1310847B1 (en) | System for remotely loading and remotely maintaining an electronic card | |
| CN109739769A (en) | BOOTROM loads method for automatically testing functions and device | |
| EP0889429A1 (en) | IC card reader using fast transmission protocol | |
| FR2685106A1 (en) | INPUT / OUTPUT INTERRUPTION CONTROL SYSTEM FOR A VIRTUAL MACHINE. | |
| US6289503B1 (en) | System and method for trace verification | |
| EP0632395A1 (en) | System and method to operate a digital signal processor (DSP) | |
| EP1171821A1 (en) | Method and apparatus for automated software testing | |
| US5963741A (en) | Information processor which rewrites instructions in program to dynamically change program structure and method therefor | |
| FR2765363A1 (en) | METHOD AND SYSTEM FOR CONTROLLING THE USE OF A SOFTWARE | |
| CN118331714B (en) | Method and system for freezing and recovering software | |
| EP1960934B1 (en) | Method for making secure execution of an intermediate language software code in a portable appliance | |
| EP0606791A1 (en) | Apparatus to use pseudo sockets | |
| EP1155389A1 (en) | Device for secure access to a chip card applications | |
| EP1775595B1 (en) | Integrated circuit test simulator |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| ST | Notification of lapse |