FR2894694A1 - Procede et dispositif de mise au point d'un programme execute par un processeur multitache - Google Patents

Procede et dispositif de mise au point d'un programme execute par un processeur multitache Download PDF

Info

Publication number
FR2894694A1
FR2894694A1 FR0512503A FR0512503A FR2894694A1 FR 2894694 A1 FR2894694 A1 FR 2894694A1 FR 0512503 A FR0512503 A FR 0512503A FR 0512503 A FR0512503 A FR 0512503A FR 2894694 A1 FR2894694 A1 FR 2894694A1
Authority
FR
France
Prior art keywords
processor
task
mode
message
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
FR0512503A
Other languages
English (en)
Inventor
Renaud Ayrignac
Andrew Colfer
Isabelle Sename
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics SA
Original Assignee
STMicroelectronics SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by STMicroelectronics SA filed Critical STMicroelectronics SA
Priority to FR0512503A priority Critical patent/FR2894694A1/fr
Priority to US11/567,990 priority patent/US7685470B2/en
Publication of FR2894694A1 publication Critical patent/FR2894694A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface

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)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

L'invention concerne un procédé de mise au point d'un programme multitâche exécuté par un processeur (µP), comprenant des étapes d'interruption du processeur durant l'exécution d'une tâche du programme, et d'activation d'un mode de mise au point du processeur, dans lequel les instructions (INST) exécutées par le processeur sont fournies par un émulateur externe (H). Selon l'invention, le procédé comprend des étapes au cours desquelles: le processeur (µP) émet vers l'émulateur externe (H) un message d'activation (DGM) à chaque fois que le mode de mise au point est activé, et à la réception du message d'activation, l'émulateur externe envoie au processeur un message d'accusé de réception (ADGM) contenant au moins une partie du message d'activation reçu.

Description

PROCEDE ET DISPOSITIF DE MISE AU POINT D'UN PROGRAMME EXECUTE PAR UN
PROCESSEUR MULTITACHE La présente invention concerne un processeur multitâche et en particulier un procédé de déboguage ou de mise au point d'un programme multitâche exécuté par un processeur de type microprocesseur ou microcontrôleur.
Certains processeurs comprennent une interface de test permettant à un émulateur externe de se connecter à l'unité de traitement du processeur et de lui envoyer des instructions à exécuter. Le processeur comprend un mode de mise au point dans lequel l'interface de test est active et fournit à l'unité de traitement des instructions reçues de l'émulateur externe. Les instructions fournies au processeur par l'interface de test remplacent alors les instructions provenant de la mémoire programme.
Il existe plusieurs types d'architectures de processeur multitâche. Dans des architectures d'un premier type, le processeur comprend plusieurs unités de traitement (CPU) qui se partagent des ressources communes comme la mémoire pour exécuter chacune une tâche. Dans des architectures d'un second type, le processeur comprend une seule unité de traitement qui exécute plusieurs tâches en basculant d'une tâche à une autre. Le basculement d'une première tâche vers une seconde tâche est effectué en interrompant la première tâche, en sauvegardant les registres du processeur utilisés par la première tâche, puis en restaurant éventuellement les registres utilisés par la seconde tâche, et enfin, en activant l'exécution de la seconde tâche. Le basculement d'une tâche à l'autre peut se produire à tout moment durant l'exécution de la tache courante, notamment à la suite d'un événement interne ou externe. En particulier, un événement interne ou externe peut déclencher l'exécution d'une tâche plus prioritaire pendant qu'une autre tâche se trouve en mode de mise au point. La tâche plus prioritaire peut accéder aux mêmes ressources que la tâche en mode de mise au point.
L'exécution d'un programme multitâche par un processeur du premier ou du second type peut donc présenter une grande complexité. C'est la raison pour laquelle, en principe, les procédés de mise au point classiques n'autorisent pas qu'une tâche en cours de mise au point soit interrompue par une tâche plus prioritaire, et que la tâche plus prioritaire soit elle-même placée en mode de mise au point. La mise au point d'un programme multitâche est donc généralement effectuée tâche par tâche, en commençant par les tâches de plus haut niveau de priorité. La mise au point d'un programme multitâche ne permet donc pas notamment de détecter des conflits entre tâches, tels que des conflits d'accès à des ressources partagées par les tâches. Un objectif de la présente invention est de permettre à une tâche en mode de mise au point, exécutée par un processeur à une ou plusieurs unités de traitement, d'être interrompue par une tâche prioritaire et à la tâche prioritaire d'être elle-même placée en mode de mise au point.
Un autre objectif de la présente invention est de prévoir un procédé simple permettant la mise au point d'un programme multitâche. Un autre objectif de la présente invention est de prévoir une interface de test simplifiée reliant une unité de traitement d'un processeur à un émulateur externe et permettant la mise au point d'un programme multitâche. Ces objectifs sont atteints par la prévision d'un procédé de mise au point d'un programme multitâche 35 exécuté par un processeur, comprenant des étapes d'interruption du processeur durant l'exécution d'une tâche du programme, et d'activation d'un mode de mise au point du processeur, dans lequel les instructions exécutées par le processeur sont fournies par un émulateur externe. Selon l'invention, le procédé comprend des étapes au cours desquelles : ù le processeur émet vers l'émulateur externe un message d'activation à chaque fois que le mode de mise au point est activé, et ù à la réception du message d'activation, l'émulateur externe renvoie au processeur un message d'accusé de réception contenant au moins une partie du message d'activation reçu. Selon un mode de réalisation de l'invention, le 15 message d'activation comprend la valeur courante d'un registre de pointeur de programme. Selon un mode de réalisation de l'invention, le message d'activation comprend un identifiant de contexte d'exécution de la tâche en mode de mise au point. 20 Selon un mode de réalisation de l'invention, le mode de mise au point est interruptible par une tâche prioritaire du programme multitâche. Selon un mode de réalisation de l'invention, à chaque fois que le processeur exécute une instruction en 25 mode de mise au point, il émet un message de compte rendu d'exécution vers l'émulateur externe. Selon un mode de réalisation de l'invention, toutes les instructions reçues par le processeur en mode de mise au point entre l'émission du message d'activation du mode 30 de mise au point et la réception du message d'accusé de réception correspondant sont rejetées. Selon un mode de réalisation de l'invention, à chaque fois que le processeur rejette une instruction en mode de mise au point, il émet un message de compte rendu 35 de non exécution vers l'émulateur externe.
Selon un mode de réalisation de l'invention, l'interruption de l'exécution d'une tâche par le processeur pour activer le mode de mise au point est déclenchée par un point d'arrêt prévu dans la séquence 5 d'instructions de la tâche. Selon un mode de réalisation de l'invention, l'interruption de l'exécution d'une tâche par le processeur pour activer le mode de mise au point est déclenchée par une commande émise par l'émulateur 10 externe. Selon un mode de réalisation de l'invention, le processeur reçoit des instructions à exécuter de l'émulateur externe, à une cadence au plus égale à celle à laquelle il exécute les instructions reçues. 15 L'invention concerne également un dispositif de mise au point d'un programme multitâche exécuté par un processeur, comprenant : des moyens pour interrompre le processeur durant l'exécution d'une tâche du programme et activer un mode 20 de mise au point du processeur, des moyens pour recevoir des instructions d'un émulateur externe, et des moyens pour envoyer les instructions reçues à une unité de traitement du processeur en mode de mise au 25 point. Selon l'invention, le dispositif comprend : des moyens pour émettre vers l'émulateur externe un message d'activation à chaque fois que le mode de mise au point est activé, et 30 des moyens pour recevoir de l'émulateur externe un message d'accusé de réception contenant au moins une partie du message d'activation précédemment émis. Selon un mode de réalisation de l'invention, le message d'activation comprend la valeur courante d'un 35 registre de pointeur de programme.
Selon un mode de réalisation de l'invention, le message d'activation comprend un identifiant de contexte d'exécution de la tâche en mode de mise au point. Selon un mode de réalisation de l'invention, le mode de mise au point est interruptible par une tâche prioritaire. Selon un mode de réalisation de l'invention, le dispositif comprend des moyens pour émettre un message de compte rendu d'exécution vers l'émulateur externe, à chaque fois qu'une instruction est transmise vers l'unité de traitement du processeur en mode de mise au point. Selon un mode de réalisation de l'invention, le dispositif comprend des moyens pour rejeter les instructions à exécuter par le processeur en mode mise au point, reçues de l'émulateur externe entre l'émission du message d'activation du mode de mise au point et la réception du message d'accusé de réception correspondant. Selon un mode de réalisation de l'invention, le dispositif comprend des moyens pour émettre un message de compte rendu de non exécution vers l'émulateur externe, à chaque fois que l'exécution d'une instruction est rejetée en mode de mise au point. Selon un mode de réalisation de l'invention, l'interruption de l'exécution d'une tâche par le processeur pour activer le mode de mise au point est déclenchée par un point d'arrêt prévu dans la séquence d'instructions de la tâche. Selon un mode de réalisation de l'invention, l'interruption de l'exécution d'une tâche par le processeur pour activer le mode de mise au point est déclenchée par une commande émise par l'émulateur externe. Selon un mode de réalisation de l'invention, les moyens de réception d'instructions provenant de 35 l'émulateur externe, reçoivent des instructions à une cadence au plus égale à celle à laquelle les moyens de transmission envoient les instructions reçues à l'unité de traitement du processeur. L'invention concerne également un processeur comprenant une unité de traitement. Selon l'invention, le processeur comprend un dispositif de mise au point d'un programme multitâche tel que défini précédemment. Selon un mode de réalisation de l'invention, le processeur est de type microprocesseur ou microcontrôleur. Selon un mode de réalisation de l'invention, le processeur comprend plusieurs ensembles de registres constituant chacun un contexte d'exécution d'une tâche.
Ces objets, caractéristiques et avantages ainsi que d'autres de la présente invention seront exposés plus en détail dans la description suivante d'un mode de réalisation de l'invention, faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : - la figure 1 représente sous forme de blocs un microprocesseur connecté à un émulateur externe, - la figure 2 représente sous forme de blocs l'architecture du microprocesseur, - la figure 3 représente des registres du 25 microprocesseur, - la figure 4 représente sous forme de blocs une interface de test du microprocesseur, - la figure 5 illustre des données échangées entre une unité de traitement du microprocesseur, l'interface de 30 test et l'émulateur externe. - les figures 6A et 6B représentent schématiquement des tâches en mode de test interrompues par des tâches prioritaires. La figure 1 représente un microprocesseur pP 35 connecté à un émulateur externe H par l'intermédiaire d'un circuit d'interface EINT. L'émulateur externe comporte par exemple un ordinateur de type PC. La figure 2 représente le microprocesseur pP comprenant une unité de traitement CPU connectée à une mémoire programme PMEM et à une mémoire de donnée DMEM, et une interface de test OCE. L'unité de traitement CPU comprend une unité de gestion de la mémoire programme PMC, une unité de contrôle CU, un banc de registres REG, une unité arithmétique et logique ALU, et une unité de gestion DMC de la mémoire de donnée DMEM. L'unité de contrôle CU est connectée au banc de registres REG. L'unité arithmétique et logique ALU comporte deux entrées reliées chacune à un port de sortie du banc de registres, et des sorties de donnée et d'adresse reliées à l'unité de gestion de la mémoire de données DMC, ainsi qu'une sortie reliée à une entrée du banc de registres REG. L'unité de gestion PMC de la mémoire programme est connectée à la mémoire programme PMEM, ainsi qu'au banc de registres REG. L'unité de gestion de la mémoire de donnée DMC est connectée à la mémoire de donnée DMEM. La figure 3 représente le banc de registres REG. Sur cette figure, le banc de registres REG comporte avantageusement plusieurs ensembles de registres REG1, REG2, REG3, ... Chaque ensemble de registres est associé à un contexte d'exécution permettant au microprocesseur d'exécuter en parallèle plusieurs tâches possédant son propre ensemble de registres REGi. De cette manière, il n'est pas nécessaire de sauvegarder et restaurer le contenu des registres dans une pile mémoire lors d'un basculement d'une tâche à une tâche plus prioritaire, si ces deux tâches sont associées à des contextes différents, c'est-à-dire utilisent des ensembles de registres REGi différents.
Chaque ensemble de registres REGi comprend des registres généraux RO-R31 utilisés pour le traitement d'adresses et de données, et des registres d'état et de contrôle du microprocesseur. Les registres généraux comprennent notamment un registre de pointeur de pile. Les registres d'état et de contrôle comprennent un registre de pointeur de programme PC, un registre d'état SR, un registre de mode de fonctionnement PCS et un registre de garde d'instruction GR permettant d'exécuter plus efficacement des instructions de saut et des instructions conditionnelles. La figure 4 représente l'architecture de l'interface de test OCE qui assure la mise en communication d'un émulateur externe H avec l'unité de traitement CPU du microprocesseur pP. L'interface OCE comprend une unité de contrôle de port d'accès TCTL, un registre SREG, un circuit de synchronisation entre des horloges du microprocesseur pP et de l'unité de contrôle TCNT, et une unité de contrôle OCTL de l'interface de test OCE, connectée à l'unité de traitement CPU du processeur. La liaison entre l'émulateur externe H et l'unité TCTL est une liaison série bidirectionnelle. L'unité TCTL est chargée d'insérer dans le registre SREG les bits BIN reçus successivement de l'émulateur externe H, et inversement, de transmettre successivement à l'émulateur externe les bits BOUT insérés dans le registre par l'unité OCTL. Le registre SREG est dimensionné de manière à mémoriser un message à transmettre à l'émulateur externe ou au circuit de contrôle OCTL. L'unité TCTL est connectée à l'unité OCTL par l'intermédiaire d'une liaison CFG et du circuit de synchronisation TLOG fournissant des informations de configuration au circuit de contrôle OCTL. L'unité TCTL est connectée au circuit TLOG par une liaison TCS par laquelle elle reçoit des signaux d'état. Le registre SREG mémorise un message MIN, MOUT à transmettre ou reçu de l'unité OCTL, par l'intermédiaire du circuit TLOG. Le circuit TLOG reçoit les signaux d'horloge TCK, GCK de l'unité TCTL et du microprocesseur pP. Le signal d'horloge TCK peut présenter une fréquence plus basse que le signal d'horloge GCK du microprocesseur, ces deux signaux pouvant être totalement asynchrones. L'unité OCTL est chargée de traiter les messages reçus MIN de l'émulateur externe H et stockés successivement dans le registre SREG, et d'envoyer à l'unité de traitement CPU des instructions à exécuter ou des données se trouvant dans les messages reçus. L'unité OCTL est également chargée de constituer des messages MOUT à émettre vers l'émulateur H, à partir du contenu de registres d'échange de données RO, R1 avec l'unité de traitement, et d'insérer les messages à émettre dans le registre SREG. Plus précisément, l'unité OCTL contrôle l'état du microprocesseur par l'intermédiaire d'un registre de contrôle CR. L'unité OCTL fournit à l'unité de traitement CPU une instruction à exécuter par l'intermédiaire d'un registre d'instruction IR, et/ou des données par l'intermédiaire des registres RO, R1.
L'unité TCTL est par exemple conforme au standard IEEE 1149.1 (JTAG : Joint Test Access Group). Les messages échangés entre l'interface OCE et l'émulateur externe comportent par exemple 40 bits. Le registre SREG qui détermine la taille des messages échangés, est dimensionné de manière à mémoriser par exemple 40 bits. La figure 5 représente les données échangées entre l'émulateur externe H et l'interface de test OCE, d'une part, et d'autre part, entre l'interface et l'unité de traitement CPU du microprocesseur.
Lorsque le microprocesseur est en mode de fonctionnement normal, l'unité d'interface de test OCE est inactive. L'unité de test OCE peut être activée en appliquant un signal déterminé sur une entrée du processeur soit au moment de l'initialisation du processeur, soit lorsque le processeur est en train d'exécuter un programme. Une fois active, l'interface de test surveille l'état des registres d'état de l'unité de traitement et en particulier l'état d'un bit du registre d'état SR indiquant que le microprocesseur est ou non en mode de mise au point, et échange des messages avec l'émulateur externe H. Le mode de mise au point est activé lorsque l'interface de test reçoit de l'émulateur externe H un message de contrôle CTLM comportant un ordre de stop (étape Sl), ou bien lorsque l'instruction exécutée par l'unité de traitement CPU est un point d'arrêt BKP (étape Sl'). Lorsque l'unité de traitement rencontre un point d'arrêt, elle met à jour le bit du registre d'état SR pour indiquer que le microprocesseur est en mode de mise au point. Un ordre de stop est mémorisé dans le registre de contrôle CR de l'unité OCTL et est pris en compte par le microprocesseur si le mode de mise au point n'est pas déjà activé pour le contexte de la tâche en cours d'exécution, et si l'activation du mode de mise au point du contexte courant est autorisé conformément à un registre de configuration du microprocesseur.
Selon l'invention, lorsque le mode de mise au point est activé, l'unité OCTL génère et envoie dans le registre SREG un message d'activation du mode de mise au point DGM contenant un numéro de contexte de la tâche interrompue et la valeur du registre de pointeur de programme PC. Le message DGM est transmis par l'unité TCTL à l'émulateur externe H (étape S2). A la réception du message DGM (étape S3), l'émulateur externe H émet un message d'accusé de réception ADGM contenant la valeur du contexte et du registre PC contenus dans le message DGM reçu (étape S4). Le message ADGM est reçu par l'interface de test OCE à l'étape S5. Une fois que le microprocesseur est en mode de mise au point, l'émulateur externe peut envoyer des instructions à exécuter contenues dans des messages INSM (étape S6). Chaque message INSM contient une instruction qui peut être un ordre de lecture ou d'écriture des registres RO, Rl, CR de l'unité OCTL ou une instruction à exécuter par l'unité de traitement CPU. Chaque message INSM est reçu par l'interface de test OCE (étape S7). Si le message contient une instruction INST à exécuter par l'unité CPU, l'unité de contrôle OCTL envoie l'instruction INST à l'unité de traitement CPU. A chaque message INSM reçu, l'interface OCE envoie un message d'exécution de l'instruction INSAM à l'émulateur externe H (étape S8). Le message INSAM est reçu par l'émulateur externe à l'étape S9. La sortie du mode de mise au point peut être déclenchée à partir de l'émulateur externe en envoyant un message de mise à jour du registre CR pour mettre à 0 un indicateur d'activation du mode de mise au point. Elle peut également être déclenchée par l'activation par le microprocesseur d'une tâche plus prioritaire qui n'est pas en mode de mise au point. La figure 6A représente une tâche Tn exécutée par le microprocesseur bP. Le programme de la tâche comporte une instruction de point d'arrêt BKP. Lorsque le pointeur de programme PC atteint l'instruction BKP, le mode de mise au point du microprocesseur est activé. Dans ce mode, le microprocesseur exécute non pas les instructions du programme de la tâche en cours d'exécution, mais des instructions DGC fournies par l'émulateur externe H. Comme décrit ci-avant, le mode de mise au point peut être également activé à partir de l'émulateur externe H qui envoie une commande de stop. En mode de mise au point, le registre pointeur de programme PC reste inchangé tant que l'exécution d'une tâche prioritaire n'est pas activée. L'interface de test a mémorisé la valeur du pointeur de programme et le contexte de la tâche Tn qui a été interrompue. Si un signal externe ou interne INT de déclenchement d'une routine d'interruption IT ou d'une tâche prioritaire Tm apparaît, le microprocesseur sort du mode de mise au point, exécute la routine d'interruption ou la tâche prioritaire. A la fin de l'exécution de la routine d'interruption IT ou de la tâche Tm, le microprocesseur retourne en mode de test en raison de la restauration des registres incluant le registre d'état SR mémorisant un état d'activation du mode de mise au point, et le registre PC qui retrouve la valeur correspondant au point d'arrêt BKP.
Comme la liaison entre l'émulateur externe H et le microprocesseur présente un faible débit, certains messages INSM contenant des instructions destinées à l'interface OCE ou à l'unité de traitement CPU peuvent ne pas avoir été exécutées avant le déclenchement de l'interruption. Les instructions non exécutées avant l'interruption sont exécutées à la suite du retour du microprocesseur en mode de mise au point. Comme illustré sur la figure 6B, la routine d'interruption IT ou la tâche Tm peuvent elles-mêmes comporter une instruction d'arrêt BKP activant le mode de mise au point du microprocesseur. L'interface de test OCE est alors informée d'un changement de tâche (changement de la valeur du pointeur de programme PC et éventuellement changement du contexte). L'interface de test informe à son tour l'émulateur externe H qu'un changement de contexte s'est produit en émettant le message DGM, et attend le message d'accusé de réception ADGM correspondant. L'interface de test rejette tous les messages d'instruction INSM reçus entre le changement de contexte et la réception du message d'accusé de réception ADGM et en informe l'émulateur externe en envoyant un message de non exécution d'instruction INSAM pour chaque message d'instruction rejeté. L'émulateur externe H peut ainsi déterminer quelles sont les instructions envoyées qui n'ont pas été exécutées par l'interface de test OCE avant l'interruption du mode de mise au point. Cette disposition est nécessaire en raison de la lenteur des transmissions entre l'émulateur externe, l'interface de test et le microprocesseur, par rapport à la rapidité d'exécution d'une instruction par le microprocesseur. Lorsque l'émulateur externe met fin au mode de mise au point de la routine d'interruption IT ou de la tâche Tm en commandant la mise à jour du registre CR, le microprocesseur sort du mode de mise au point et reprend l'exécution de la routine d'interruption IT ou de la tâche Tm. A la fin de l'exécution de la routine IT ou de la tâche Tm, le registre d'état SR du contexte correspondant à la tâche Tn qui était en mode de mise au point est restauré. Le microprocesseur retourne donc en mode de mise au point. Grâce à l'échange des messages d'activation du mode de mise au point et d'accusé de réception, on est assuré que toutes les instructions reçues de l'émulateur externe par l'interface de test à la suite du message d'accusé de réception concernent bien la dernière tâche interrompue en mode de mise au point, et pas une tâche précédemment placée en mode de mise au point et dont la mise au point à été interrompue par une tâche plus prioritaire. Il n'est ainsi pas nécessaire que chaque instruction à exécuter par le processeur, émise par l'émulateur externe, contienne une référence à la tâche en mode de mise au point. De cette manière, on évite d'avoir à augmenter la taille des messages d'instruction INSM transmis par l'émulateur externe,et le débit utile de la transmission entre l'émulateur externe et l'interface de test n'est pas diminué. L'interface de test peut donc présenter une architecture simplifiée n'occupant qu'une surface limitée sur le circuit intégré constituant le processeur.
Il apparaîtra clairement à l'homme de l'art que la présente invention est susceptible de diverses variantes de réalisation. Notamment, il n'est pas nécessaire que le message d'activation du mode de mise au point émis par l'interface de test contienne la valeur du registre de pointeur de programme et le numéro de contexte de la tâche interrompue. Il est par contre indispensable que l'interface de test puisse établir le lien entre le message d'accusé de réception reçu de l'émulateur externe et le message d'activation du mode de mise au point précédemment émis. Il n'est pas nécessaire que le processeur possède plusieurs jeux de registres, c'est-à-dire supportant plusieurs contextes d'exécution de tâches. L'invention s'applique également à un processeur ne possédant qu'un seul jeu de registres. Dans ce cas, le message d'activation du mode de mise au point et le message d'accusé de réception correspondant peuvent contenir uniquement la valeur du registre de pointeur de programme qui permet d'établir le lien entre ces deux messages.30

Claims (23)

REVENDICATIONS
1. Procédé de mise au point d'un programme multitâche exécuté par un processeur (pP), comprenant des étapes d'interruption du processeur durant l'exécution d'une tâche (Tn) du programme, et d'activation d'un mode de mise au point du processeur, dans lequel les instructions (INS) exécutées par le processeur sont fournies par un émulateur externe (H), caractérisé en ce qu'il comprend des étapes au cours desquelles : le processeur (pP) émet vers l'émulateur externe (H) un message d'activation (DGM) à chaque fois que le mode de mise au point est activé, et à la réception du message d'activation, l'émulateur externe renvoie au processeur un message d'accusé de réception (ADGM) contenant au moins une partie du message d'activation reçu.
2. Procédé selon la revendication 1, dans lequel le message d'activation (DGM) comprend la valeur courante 20 d'un registre de pointeur de programme (PC).
3. Procédé selon la revendication 1 ou 2, dans lequel le message d'activation (DGM) comprend un identifiant de contexte d'exécution de la tâche (Tn) en 25 mode de mise au point.
4. Procédé selon l'une des revendications 1 à 3, dans lequel le mode de mise au point est interruptible par une tâche prioritaire (IT, Tm) du programme 30 multitâche.
5. Procédé selon l'une des revendications 1 à 4, dans lequel, à chaque fois que le processeur (pP) exécute 15une instruction (INS) en mode de mise au point, il émet un message de compte rendu d'exécution (INSAM) vers l'émulateur externe (H).
6. Procédé selon l'une des revendications 1 à 5, dans lequel toutes les instructions (INS) reçues par le processeur (pP) en mode de mise au point entre l'émission du message d'activation du mode de mise au point (DGM) et la réception du message d'accusé de réception (ADGM) correspondant sont rejetées.
7. Procédé selon la revendication 6, dans lequel, à chaque fois que le processeur (pP) rejette une instruction (INS) en mode de mise au point, il émet un message de compte rendu de non exécution (INSAM) vers l'émulateur externe (H).
8. Procédé selon l'une des revendications 1 à 7, dans lequel l'interruption de l'exécution d'une tâche (Tn) par le processeur (pP) pour activer le mode de mise au point est déclenchée par un point d'arrêt (BKP) prévu dans la séquence d'instructions de la tâche.
9. Procédé selon l'une des revendications 1 à 7, dans lequel l'interruption de l'exécution d'une tâche (Tn) par le processeur (pP) pour activer le mode de mise au point est déclenchée par une commande (STOP) émise par l'émulateur externe (H).
10. Procédé selon l'une des revendications 1 à 8, dans lequel le processeur (pP) reçoit des instructions à exécuter (INS) de l'émulateur externe (H), à une cadence au plus égale à celle à laquelle il exécute les instructions reçues.35
11. Dispositif (OCE) de mise au point d'un programme multitâche exécuté par un processeur (pP), comprenant : ù des moyens (OCTL) pour interrompre le processeur durant l'exécution d'une tâche du programme et activer un mode de mise au point du processeur, ù des moyens (TCTL, SREG) pour recevoir des instructions (INS) d'un émulateur externe (H), et ù des moyens (OCTL) pour envoyer les instructions reçues à une unité de traitement (CPU) du processeur en mode de mise au point, caractérisé en ce qu'il comprend : ù des moyens (TCTL, SREG, OCTL) pour émettre vers l'émulateur externe (H) un message d'activation (DGM) à chaque fois que le mode de mise au point est activé, et ù des moyens (TCTL, SREG, OCTL) pour recevoir de l'émulateur externe un message d'accusé de réception (ADGM) contenant au moins une partie du message d'activation précédemment émis.
12. Dispositif selon la revendication 11, dans lequel le message d'activation (DGM) comprend la valeur courante d'un registre de pointeur de programme (PC).
13. Dispositif selon la revendication 11 ou 12, dans lequel le message d'activation (DGM) comprend un identifiant de contexte d'exécution de la tâche en mode de mise au point.
14. Dispositif selon l'une des revendications 11 à 13, dans lequel le mode de mise au point est interruptible par une tâche prioritaire.
15. Dispositif selon l'une des revendications 11 à 35 14, comprenant des moyens (TCTL, SREG, OCTL) pour émettreun message de compte rendu d'exécution (INSAM) vers l'émulateur externe (H), à chaque fois qu'une instruction (INS) est transmise vers l'unité de traitement (CPU) du processeur (pP) en mode de mise au point.
16. Dispositif selon l'une des revendications 11 à 15, comprenant des moyens pour rejeter les instructions (INS) à exécuter par le processeur (pP) en mode mise au point, reçues de l'émulateur externe (H) entre l'émission du message d'activation du mode de mise au point (DGM) et la réception du message d'accusé de réception correspondant (ADGM).
17. Dispositif selon la revendication 16, comprenant des moyens (TCTL, SREG, OCTL) pour émettre un message de compte rendu de non exécution (INSAM) vers l'émulateur externe (H), à chaque fois que l'exécution d'une instruction (INS) est rejetée en mode de mise au point.
18. Dispositif selon l'une des revendications 11 à 17, dans lequel l'interruption de l'exécution d'une tâche (Tn) par le processeur (pP) pour activer le mode de mise au point est déclenchée par un point d'arrêt (BKP) prévu 25 dans la séquence d'instructions de la tâche.
19. Dispositif selon l'une des revendications 11 à 17, dans lequel l'interruption de l'exécution d'une tâche (Tn) par le processeur (pP) pour activer le mode de mise 30 au point est déclenchée par une commande (STOP) émise par l'émulateur externe (H).
20. Dispositif selon l'une des revendications 11 à 18, dans lequel les moyens (TCTL, SREG) de réception 35 d'instructions (INS) provenant de l'émulateur externe 5(H), reçoivent des instructions à une cadence au plus égale à celle à laquelle les moyens (OCTL) de transmission envoient les instructions reçues (INS) à l'unité de traitement (CPU) du processeur (pP).
21. Processeur (iP) comprenant une unité de traitement (CPU), caractérisé en ce qu'il comprend un dispositif (OCE) selon l'une des revendications 11 à 19. 10
22. Processeur selon la revendication 21, de type microprocesseur ou microcontrôleur.
23. Processeur selon la revendication 21 ou 22, comprenant plusieurs ensembles de registres constituant 15 chacun un contexte d'exécution d'une tâche.
FR0512503A 2005-12-09 2005-12-09 Procede et dispositif de mise au point d'un programme execute par un processeur multitache Withdrawn FR2894694A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR0512503A FR2894694A1 (fr) 2005-12-09 2005-12-09 Procede et dispositif de mise au point d'un programme execute par un processeur multitache
US11/567,990 US7685470B2 (en) 2005-12-09 2006-12-07 Method and device for debugging a program executed by a multitask processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0512503A FR2894694A1 (fr) 2005-12-09 2005-12-09 Procede et dispositif de mise au point d'un programme execute par un processeur multitache

Publications (1)

Publication Number Publication Date
FR2894694A1 true FR2894694A1 (fr) 2007-06-15

Family

ID=36763293

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0512503A Withdrawn FR2894694A1 (fr) 2005-12-09 2005-12-09 Procede et dispositif de mise au point d'un programme execute par un processeur multitache

Country Status (2)

Country Link
US (1) US7685470B2 (fr)
FR (1) FR2894694A1 (fr)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2918232B1 (fr) * 2007-06-28 2010-11-26 Airbus France Procedes et dispositifs pour la communication de donnees de diagnostic dans un reseau de communication temps reel
CN109344066B (zh) * 2018-09-29 2022-02-25 深圳市奇林软件有限公司 一种浏览器页面的测试方法、系统及终端

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030005417A1 (en) * 2001-06-29 2003-01-02 Gard James J. Debugger for a hardware-implemented operating system
US20030074650A1 (en) * 2001-10-17 2003-04-17 Tankut Akgul Debugger operating system for embedded systems

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5799142A (en) * 1994-09-12 1998-08-25 Nec Corporation Debugging method and debugging system for multi-task programs
JP3846939B2 (ja) * 1995-08-30 2006-11-15 フリースケール セミコンダクター インコーポレイテッド データプロセッサ
US6314530B1 (en) * 1997-04-08 2001-11-06 Advanced Micro Devices, Inc. Processor having a trace access instruction to access on-chip trace memory
US6175913B1 (en) * 1997-09-12 2001-01-16 Siemens Ag Data processing unit with debug capabilities using a memory protection unit
JP3571976B2 (ja) * 1999-11-08 2004-09-29 富士通株式会社 デバッグ装置及び方法並びにプログラム記録媒体
US7650275B2 (en) * 2005-01-20 2010-01-19 Hewlett-Packard Development Company, L.P. Virtualization of a parition based on addresses of an I/O adapter within an external emulation unit
US7409330B2 (en) * 2005-06-16 2008-08-05 Kabushiki Kaisha Toshiba Method and system for software debugging using a simulator

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030005417A1 (en) * 2001-06-29 2003-01-02 Gard James J. Debugger for a hardware-implemented operating system
US20030074650A1 (en) * 2001-10-17 2003-04-17 Tankut Akgul Debugger operating system for embedded systems

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
EARL MITCHELL: "Multi-core and Multi-threaded SoCs Present New Debugging challenges", TECHNICAL LIBRARY MIPS TECHNOLOGIES, August 2003 (2003-08-01), pages 1 - 6, XP002394557, Retrieved from the Internet <URL:www.mips.com/content/PressRoom/TechLibrary/WhitePapers/files/soc_debug_article.pdf> [retrieved on 20060810] *
JUNG-HEE KIM AND AL.: "Design and implementation of a remote debugger for concurrent debugging of multiple processes in embedded Linux systems", PROCEEDINGS NETWORK AND PARALLEL COMPUTING. IFIP INTERNATIONAL CONFERENCE, NPC 2004, October 2004 (2004-10-01), pages 280 - 283, XP008067642 *

Also Published As

Publication number Publication date
US7685470B2 (en) 2010-03-23
US20070174714A1 (en) 2007-07-26

Similar Documents

Publication Publication Date Title
EP0030504A1 (fr) Dispositif de synchronisation et d&#39;affectation de processus entre plusieurs processeurs dans un système de traitement de l&#39;information
EP0102434B1 (fr) Dispositif pour signaler à l&#39;unité de commande centrale d&#39;un équipement de traitement de données, les erreurs se produisant dans les adaptateurs
FR2646254A1 (fr) Dispositif de commande programmable
FR2728364A1 (fr) Interface d&#39;entree-sortie connectee a une memoire d&#39;ordinateur et capable de controler les vitesses d&#39;entree-sortie de donnee
FR2649224A1 (fr) Systeme de traitement de l&#39;information capable de prendre facilement en charge le traitement d&#39;un processeur defaillant
FR2664996A1 (fr) Architecture flexible multitache en temps reel pour la surveillance de l&#39;etat d&#39;un outil.
FR2486682A1 (fr) Systeme de traiteme
FR2690539A1 (fr) Microprocesseur à mode extérieur de diagnostic et de déverminage.
FR2613852A1 (fr) Systeme de traitement de l&#39;information comportant une unite de traitement arithmetique du type commandee par un microprogramme
EP1337919A1 (fr) Procede de securisation rendant deterministe l&#39;execution en temps reel d&#39;applications multitaches du type controle-commande avec confinement d&#39;erreur
FR2737029A1 (fr) Dispositif d&#39;interface entre un calculateur a architecture redondante et un moyen de communication
EP1158405A1 (fr) Système et méthode de gestion d&#39;une architecture multi-ressources
FR2881306A1 (fr) Procede de journalisation non intrusive d&#39;evenements externes aupres d&#39;un processus applicatif, et systeme mettant en oeuvre ce procede
CH621201A5 (fr)
FR2894694A1 (fr) Procede et dispositif de mise au point d&#39;un programme execute par un processeur multitache
FR2466808A1 (fr) Systeme pour controler la duree de l&#39;intervalle de temps entre blocs dans un systeme de communication calculateur a calculateur
EP0732651A1 (fr) Système de traitement d&#39;informations pour effectuer des tâches ayant des priorités diverses et modem comportant un tel système
FR2749097A1 (fr) Systeme de commande parallele multiplexe electroniquement verrouille
FR2759178A1 (fr) Circuit de gestion de memoire dans un environnement multi-utilisateurs avec requete et priorite d&#39;acces
EP0017586A1 (fr) Appareil de traitement de données comportant deux mémoires à accès direct coopérant aussi bien en mode lecture qu&#39;en mode écricture
FR2686991A1 (fr) Procede, systeme et processeur de communication entre une pluralite de sous-ensembles d&#39;un equipement.
FR2674044A1 (fr) Agencement pour predire une adresse d&#39;instruction resultant d&#39;un branchement dans un systeme de traitement numerique des donnees.
CN111984496A (zh) 一种监控栈内存泄露的方法、装置、介质和电子设备
FR2475763A1 (fr) Processeur numerique a structure pipeline
US9405658B1 (en) Method and apparatus for debugging applications in development environments

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20070831