Brevet FR3040523A1 — publié le 20170303

L'invention concerne le domaine des microcontrôleurs embarqués. Les microcontrôleurs récents présentent une mémoire non volatile, également appelée mémoire morte, telle que de la mémoire Flash, sur laquelle sont stockées des données. Ces données sont associées à un code correcteur d'erreur, désigné sous l'acronyme anglais ECC, pour Error Correction Code, afin de prémunir lesdits microcontrôleurs de toute corruption des données stockées dans leur mémoire non volatile. Cependant, il peut survenir des erreurs non corrigibles, et les microcontrôleurs génèrent alors une exception lors de la lecture d'une telle erreur non corrigible. Dans ce contexte, la présente invention concerne un procédé permettant de 10 détecter, de localiser, et de gérer la survenance d'une erreur non corrigible dans une mémoire non volatile de tout type de microcontrôleur. Comme cela est connu, les véhicules automobiles, comme tout autre type de véhicule, comprennent des calculateurs comportant des microcontrôleurs aptes à exécuter un logiciel embarqué. 15 A cette fin, lesdits microcontrôleurs présentent des moyens de stockage de données, volatile ou non. De tels microcontrôleurs présentent ainsi une mémoire volatile, également appelée mémoire vive, typiquement de la mémoire de type RAM, pour Random Access Memory selon l'acronyme anglais bien connu de l'homme du métier. Par ailleurs, pour le stockage pérenne de données, les microcontrôleurs présentent 20 également une mémoire non volatile, typiquement de la mémoire de type Flash, bien connue de l'homme du métier. La mémoire Flash est notamment utilisée pour la sauvegarde du logiciel du microcontrôleur, le « firmware » selon l'appellation en anglais bien connue de l'homme du métier, et pour la sauvegarde de données relative aux cycles de vie du microcontrôleur et de son logiciel embarqué. 25 En pratique, quand le logiciel embarqué sur le microcontrôleur est exécuté, celui-ci lit la mémoire Flash pour permettre ensuite la mise en oeuvre d'un logiciel applicatif « haut niveau » et la bonne exécution des fonctions décisionnelles qu'il comporte. En tant que mémoire non volatile, il est bien connu que la mémoire Flash est 30 très utilisée, en raison de sa compétitivité économique et de son faible encombrement. Un problème connu lié à l'utilisation de mémoire Flash réside cependant dans la difficulté à assurer la consistance des données qui y sont stockées. Selon l'état de la technique, comme évoqué brièvement ci-dessus, il existe des microcontrôleurs à mémoire Flash, dans laquelle les données sauvegardées sont associées à un code correcteur 35 d'erreur, connu sous l'acronyme anglais d'ECC, pour Error Correction Code. 3040523 2 Grâce à l'association des données sauvegardées dans la mémoire Flash à un code de correction d'erreur, l'état de la technique permet de détecter et de traiter une grande partie des erreurs relatives à une inconsistance des données lues en mémoire Flash. 5 Cependant, parmi les erreurs qui peuvent survenir lors de la lecture de données en mémoire Flash, certaines ne sont pas corrigibles. Dans ce cas, lorsqu'en cours d'exécution, un microcontrôleur tente de lire une donnée correspondant à une erreur non corrigible, ce dernier lève une exception qui, selon l'état de la technique, entraîne généralement le redémarrage du microcontrôleur. En effet, selon l'état de la technique, lorsqu'une exception est levée lors d'une lecture de données en mémoire Flash, consécutivement à la survenance d'une erreur non corrigible, il n'est pas possible de restaurer un état stable du microcontrôleur, préalable à la survenance de l'erreur non corrigible, les paramètres constitutifs du contexte bas niveau dudit microcontrôleur stable, l'état des registres internes, du pointeur de pile, des registres d'adresses, ...etc.., étant perdus. Ainsi, plus précisément, selon l'état de la technique, lorsqu'un microcontrôleur reçoit l'instruction de lire une donnée en mémoire Flash, il met en oeuvre une interface de lecture apte à exécuter l'instruction de lecture. Ladite interface de lecture est en pratique une fonction du « driver », c'est-à-dire du pilote, du microcontrôleur. Le « driver » gère, notamment, toutes les demandes de lecture et d'écriture de données issues des logiciels applicatifs mis en oeuvre par le calculateur comprenant le microcontrôleur concerné. Lorsque ledit microcontrôleur, en pratique ladite interface de lecture, se trouve confronté à une erreur non corrigible, telle qu'une instruction inexistante ou une donnée irrémédiablement corrompue, ledit microcontrôleur lève une exception via un gestionnaire d'exceptions. Ladite exception, en général, entraîne le redémarrage du microcontrôleur et du microcontrôleur. Le problème technique qui découle de ce comportement de l'interface de lecture coopérant avec le gestionnaire d'exceptions, dans les microcontrôleurs connus, réside dans le fait que, dans le cas où une erreur non corrigible est due à une corruption d'une zone mémoire de la mémoire Flash, l'exception est levée en boucle et cela entraîne un redémarrage en boucle du microcontrôleur et du calculateur concerné. En pratique, après plusieurs redémarrages consécutifs d'un calculateur critique, un véhicule automobile sur lequel surviendrait ce type de dysfonctionnement se verrait stoppé par le contrôle moteur et non redémarrable sans l'intervention d'un technicien. Selon une technique connue, certains microcontrôleurs spécifiques, présentant nécessairement des contextes d'appel de fonctions de taille fixe stockés dans une pile dédiée, présentent un gestionnaire d'exceptions capable, sur demande préalable, 3040523 3 de retourner le logiciel du microcontrôleur à une fonction supérieure à l'appel de l'interface de lecture ayant suscité une exception en raison d'une erreur identifiée comme non corrigible, sans engendrer de redémarrage du microcontrôleur. Cette solution connue n'est cependant pas applicable à nombre de microcontrôleurs, en particulier ne 5 comprenant pas de contextes d'appel de fonctions de taille fixe stockés dans une pile dédiée. Il existe donc un besoin pour un procédé de gestion des erreurs non corrigibles survenant dans une mémoire non volatile, de type Flash, d'un microcontrôleur intégré à un calculateur embarqué, en particulier dans le contexte d'un véhicule 10 automobile. La présente invention concerne par conséquent un procédé améliorant l'interface de lecture configurée pour lire la mémoire Flash d'un microcontrôleur embarqué et coopérant avec un gestionnaire d'exceptions. En particulier, le procédé selon l'invention rend possible la gestion d'erreurs non corrigibles présentes en mémoire Flash, sans 15 engendrer de redémarrage, tout en permettant l'identification d'une zone mémoire corrompue correspondante, et en étant de plus compatible de tout type de microcontrôleur. Le procédé de détection et de gestion d'une erreur non corrigible dans une mémoire non volatile d'un microcontrôleur embarqué, selon l'invention, repose en effet sur 20 le fait que le gestionnaire d'exceptions d'un microcontrôleur est apte à lever les exceptions lorsque cela est effectivement nécessaire, et uniquement lorsque cela est effectivement nécessaire, conformément aux contraintes particulièrement exigeantes qui s'appliquent aux fabricants de microcontrôleurs. Plus précisément, le procédé selon l'invention prévoit la réalisation d'une 25 sauvegarde du contexte bas niveau du microcontrôleur, avant toute lecture de données en mémoire Flash, de façon à permettre la restauration dudit contexte bas niveau en cas de levée d'exception lors de la lecture d'une donnée dans une zone mémoire corrompue, évitant ainsi, dans les cas où ce n'est pas absolument nécessaire, le redémarrage du microcontrôleur. 30 A cet effet, l'invention concerne un procédé de détection et de gestion d'une erreur non corrigible dans une mémoire non volatile d'un microcontrôleur, ledit microcontrôleur présentant une interface de lecture, un gestionnaire d'exceptions, et un ensemble de registres internes et de paramètres d'exécution constitutifs d'un contexte bas niveau dudit microcontrôleur, ledit procédé comprenant les étapes suivantes : 35 i. à chaque commande d'une opération de lecture, à réaliser par l'interface de lecture, d'une donnée dans une zone mémoire de la mémoire non volatile, l'activation systématique d'une stratégie spécifique de détection et de gestion 3040523 4 d'erreur non corrigible dans la mémoire non volatile, ladite stratégie comprenant les étapes suivantes : ii. l'enregistrement dans une mémoire volatile du microcontrôleur de l'état des registres internes et des paramètres d'exécution constitutifs du contexte bas 5 niveau dudit microcontrôleur ; iii. la lecture de la donnée dans la mémoire non volatile ; iv. si une exception est levée par le gestionnaire d'exceptions lors de la lecture de ladite donnée, la restauration par ledit gestionnaire d'exceptions de l'état des registres internes et des paramètres d'exécution constitutifs du contexte bas 10 niveau du microcontrôleur, tels qu'enregistrés en mémoire à l'étape ii., l'invalidation de la zone mémoire et la désactivation de la stratégie spécifique de détection et de gestion d'erreur non corrigible ; v. si aucune exception n'est levée par le gestionnaire d'exceptions lors de la lecture de la donnée, la désactivation de la stratégie spécifique de détection et de gestion 15 d'erreur non corrigible, après lecture de ladite donnée. Les registres internes comprennent par exemple un registre de données et un registre d'adresses. Les paramètres d'exécution comprennent par exemple un pointeur de pile du microcontrôleur. 20 Selon un mode de réalisation préféré, ladite mémoire non volatile est une mémoire Flash. Selon un mode de réalisation préféré, ladite mémoire volatile est une mémoire RAM. De façon préférée, si une exception est levée par le gestionnaire d'exceptions 25 lors de la lecture de la donnée dans la mémoire non volatile, l'étape iv. comporte une sous étape initiale comprenant : - la réalisation d'un test de vérification par le gestionnaire d'exceptions que la stratégie spécifique de détection et de gestion d'erreur non corrigible est active et que ladite exception est exclusivement due à la détection d'une erreur non 30 corrigible ; et - si ladite stratégie n'est pas active, le redémarrage du microcontrôleur. Grâce à ce mode de réalisation, le procédé selon l'invention est apte à gérer le cas où une exception survient indépendamment d'un appel à l'interface de lecture ; dans ce cas, un redémarrage immédiat du microcontrôleur est prévu, sans restauration du 35 contexte bas niveau du microcontrôleur. 3040523 5 Avantageusement, le procédé selon l'invention comprend, au terme de l'étape iv., la réalisation d'un retour, sous la forme d'un saut absolu, pour revenir à la sortie de l'étape ii. Selon un mode de réalisation préféré, préalablement à l'étape iii. de lecture de 5 la donnée dans la mémoire non volatile dans une zone déterminable de ladite mémoire non volatile, le procédé selon l'invention prévoit : - la réalisation d'un test pour vérifier si une exception a été levée par le gestionnaire d'exceptions, ayant entraîné la réalisation d'un retour, sous la forme d'un saut absolu, pour revenir à la sortie de l'étape ii. ; 10 - si une exception ayant entraîné la réalisation d'un retour, sous la forme d'un saut absolu, pour revenir à la sortie de l'étape ii. a bien été levée, l'invalidation de ladite zone de la mémoire non volatile, de façon à ce que l'interface de lecture ne tente plus d'accéder à ladite zone de la mémoire non volatile ; - si aucune exception ayant entraîné la réalisation d'un retour, sous la forme d'un 15 saut absolu, pour revenir à la sortie de l'étape ii. n'a été levée, la poursuite du procédé par l'étape iii. Avantageusement, l'étape iv. comprend en outre la transmission d'une information à l'interface de lecture par le gestionnaire d'exception selon laquelle une erreur non corrigible est survenue. 20 Avantageusement, ladite information comprend une identification de la zone de la mémoire non volatile présentant l'erreur non corrigible et présumée corrompue. L'invention concerne par ailleurs un dispositif de microcontrôleur embarqué, destiné à un calculateur de véhicule automobile, ledit microcontrôleur comprenant un microprocesseur et une mémoire non volatile, et ledit microcontrôleur étant remarquable 25 en ce qu'il est configuré pour mettre en oeuvre le procédé de détection et de gestion d'une erreur non corrigible dans la mémoire non volatile du microcontrôleur tel que brièvement décrit ci-dessus. L'invention sera mieux comprise à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple, et se référant au dessin annexé qui représente un 30 logigramme montrant les étapes du procédé selon l'invention, d'après un mode de réalisation préféré. L'invention est présentée principalement en vue d'une application à des microcontrôleurs mis en oeuvre dans des calculateurs embarqués sur des véhicules automobiles. Cependant, d'autres applications sont également visées par la présente 35 invention, notamment en vue d'une application à des microcontrôleurs mis en oeuvre dans des calculateurs embarqués sur tout type de véhicule, terrestre ou non. 3040523 6 En outre, il est généralement fait mention, dans la suite de la description, à une application du procédé selon l'invention à la gestion d'erreurs non corrigibles dans une mémoire Flash ; cependant, le procédé selon l'invention peut être mis en oeuvre pour tout type de mémoire non volatile. 5 Dans le contexte déjà présenté précédemment, dans lequel un microcontrôleur embarqué dispose d'une mémoire non volatile, typiquement de type Flash, la présente invention vise à détecter et gérer de façon optimale les erreurs non corrigibles qui peuvent survenir à la lecture de données dans ladite mémoire non volatile. La mémoire Flash d'un microcontrôleur embarqué comprend en effet des 10 données critiques, dont le logiciel bas niveau permettant l'opérabilité du microcontrôleur, à savoir le firmware selon le terme anglais couramment utilisé et bien connu de l'homme du métier, ainsi que des données de sauvegarde, enregistrées durant les cycles de vie du microcontrôleur, et utilisées par le logiciel dudit microcontrôleur. Selon l'état de la technique, comme expliqué en préambule, les données 15 enregistrées en mémoire Flash sont associées à un code de correction d'erreur et l'interface de lecture assurant la lecture des données en mémoire Flash est apte à détecter et corriger automatiquement une grande majorité des erreurs. Cependant, certaines erreurs ne sont pas corrigibles et entraînent la levée d'exceptions par un gestionnaire d'exceptions. Dans le cas général, la survenance d'une 20 exception entraîne le redémarrage du microcontrôleur, et donc du calculateur qui l'héberge. Lorsqu'une zone de la mémoire Flash est corrompue, le microcontrôleur peut alors se trouver dans un état de redémarrage en boucle. Dans le contexte d'un véhicule automobile, après plusieurs redémarrages successifs d'un calculateur, l'arrêt du véhicule 25 est imposé. La présente invention propose un procédé permettant la détection d'erreurs non corrigibles, leur gestion sans redémarrage du microcontrôleur, ainsi que la localisation de la zone mémoire corrompue, le cas échéant. A cette fin, le procédé selon l'invention vise à améliorer l'interface de lecture 30 assurant la lecture des données en mémoire Flash, ainsi que le gestionnaire d'exceptions avec lequel il coopère. Sur la figure 1, les étapes et condition situées à gauche sont mises en oeuvre ou vérifiées par l'interface de lecture E du microcontrôleur, tandis que les étapes et condition situées à droite sont mises en oeuvre ou vérifiées par le gestionnaire 35 d'exceptions X du microcontrôleur. Ainsi, en référence à la figure 1, le procédé de détection et de gestion d'erreurs non corrigibles en mémoire non volatile d'un microcontrôleur, conformément à 3040523 7 l'invention, présente en premier lieu une étape El correspondant à l'activation d'une stratégie spécifique destinée à permettre la détection et la gestion d'une erreur non corrigible dans la mémoire non volatile du microcontrôleur. Cette étape El d'activation de la stratégie spécifique est systématiquement activée lors de tout appel à l'interface de 5 lecture, en d'autres termes lors de tout engagement d'une opération de lecture de données en mémoire Flash. Au terme de l'opération de lecture, le procédé selon l'invention prévoit une étape E3 de désactivation de la stratégie spécifique. L'intérêt de cette activation systématique en première étape El d'une 10 opération de lecture de donnée en mémoire Flash et de cette désactivation systématique en dernière étape E3 de ladite opération de lecture de donnée en mémoire Flash réside dans le fait que cela permet de conserver la capacité à forcer un redémarrage du microcontrôleur lorsqu'une exception survient hors de toute opération de lecture de données en mémoire, par exemple parce qu'une fonction indépendante, n'ayant pas 15 appelé l'interface de lecture du « driver » du microcontrôleur, est venue lire une donnée corrompue. Dès que l'activation de la stratégie spécifique de détection et de gestion d'erreur non corrigible dans la mémoire Flash du microcontrôleur, à l'étape E1, est accomplie, le procédé selon l'invention prévoit la sauvegarde du contexte bas niveau du 20 microcontrôleur. Selon le mode de réalisation préféré, cette sauvegarde est réalisée par le gestionnaire d'exceptions, à l'étape X1 sur la figure 1, avant toute lecture effective d'une donnée en mémoire Flash, et immédiatement après activation de la stratégie spécifique. Par « contexte bas niveau », on entend l'ensemble des registres internes dudit microcontrôleur, tels que les registres de données, les registres d'adresses, le registre 25 listant les adresses de retour de fonction, et tout paramètre tel que l'état du pointeur de pile, c'est-à-dire, en résumé, l'ensemble des registres internes et des paramètres constitutifs du contexte d'exécution du microcontrôleur. L'état de l'ensemble des registres internes et paramètres constitutifs du contexte bas niveau du microcontrôleur est sauvegardé par le gestionnaire d'exceptions 30 dans une mémoire distincte de la mémoire non volatile concernée, par exemple une mémoire volatile, typiquement la mémoire vive, de type RAM, du microcontrôleur. Ladite mémoire sur laquelle est sauvegardée le contexte bas niveau du microcontrôleur à l'étape X1 doit de préférence être modifiable facilement, de manière à pouvoir y écrire sans avoir à modifier ledit contexte bas niveau du microcontrôleur. Cette mémoire 35 destinée à recevoir la sauvegarde du contexte bas niveau doit également, de façon préférée, être différente de celle ciblée par l'interface de lecture, afin d'éviter les conflits d'erreurs dans le cas extrême où l'écriture de la sauvegarde du contexte bas niveau du 3040523 8 microcontrôleur entraînerait des erreurs non corrigibles. En pratique, de préférence, la mémoire vive du microcontrôleur, de type RAM, est ainsi utilisée pour l'écriture de la sauvegarde du contexte bas niveau du microcontrôleur. Il est à noter qu'une attention toute particulière doit être portée à 5 l'implémentation de la fonction de sauvegarde du contexte bas niveau du microcontrôleur par le gestionnaire d'exceptions, de manière à ce que ladite sauvegarde n'entraine pas une modification, par son appel et son exécution, dudit contexte bas niveau du microcontrôleur, c'est-à-dire de la plupart des registres d'adresses et de données, du pointeurs de pile, des paramètres constitutifs du contexte d'exécution du microcontrôleur 10 ...etc. En outre, à travers son implémentation adéquate, la fonction de sauvegarde utilise de préférence exclusivement une partie dédiée du contexte bas niveau du microcontrôleur, dépendant de l'architecture dudit microcontrôleur et en particulier de la procédure d'appel des fonctions mises en oeuvre par ledit microcontrôleur, tel que les registres de passage d'arguments. 15 En effet, si la fonction de sauvegarde changeait le contexte bas niveau du fait de son appel, la sauvegarde du contexte bas niveau du microcontrôleur ne serait pas fidèle. En revanche, une partie dudit contexte bas niveau peut être réservée à une utilisation « locale » par une fonction, et peut donc ainsi être utilisée pour la fonction de sauvegarde du contexte bas niveau du microcontrôleur. 20 Le procédé selon l'invention met ensuite en oeuvre la condition C1. La condition Cl correspond à la vérification, ou pas, qu'une exception vient d'être levée par le générateur d'exceptions lors d'une tentative précédente de lecture d'une donnée dans la mémoire Flash, ledit gestionnaire d'exceptions ayant alors provoqué un saut absolu dans l'exécution de l'opération de lecture par l'interface de lecture jusqu'à l'état dans 25 lequel ladite opération se trouvait avant la tentative de lecture d'une donnée en mémoire Flash, ledit saut absolu étant prévu à l'étape X3, décrite ci-après. Si aucune exception n'a été levée à ce stade, l'interface de lecture lit les données visées en mémoire Flash, correspondant à l'étape E2 sur la figure 1. Dès lors, selon l'invention, si une exception matérielle HW X survient lors de 30 la tentative de lecture de donnée en mémoire Flash, ladite donnée étant frappée d'une erreur non corrigible, alors la condition C2, relative à la vérification par le gestionnaire d'exceptions que la stratégie spécifique de détection et de gestion d'erreur non corrigible dans la mémoire Flash est active ou non, est testée. Si le gestionnaire d'exceptions constate que ladite stratégie n'est pas active, 35 alors le microcontrôleur est redémarré (étape X4 sur le logigramme de la figure 1) car l'exception matérielle est due à une erreur indépendante de l'appel à l'opération de lecture en cours. Si le gestionnaire d'exceptions constate que ladite stratégie est bien active, 3040523 9 alors le gestionnaire d'exceptions restaure le contexte bas niveau préalablement sauvegardé (étape X2 sur la figure 1) et engendre un saut absolu (étape X3 sur la figure 1) de l'opération de lecture pour remettre l'interface de lecture et le microcontrôleur dans l'état où ils se trouvaient en sortie de l'étape E1, c'est-à-dire après activation de la 5 stratégie spécifique et avant la tentative de lecture effective de données en mémoire Flash. La condition Cl est alors (re)vérifiée. Si une exception a bien été générée par le générateur d'exceptions, le procédé selon l'invention prévoit que la zone mémoire qui était visée par l'opération de lecture, étant identifiée, soit « invalidée », de sorte que 10 l'interface de lecture ne tente plus d'accéder à ladite zone mémoire, correspondant à l'étape E4 sur le logigramme de la figure 1. De cette façon, l'exception matérielle survenue en raison d'une zone mémoire corrompue ayant induit une erreur non corrigible a été interprétée et gérée sans entraîner de redémarrage du microcontrôleur, grâce au procédé selon l'invention. 15 En outre, par l'intermédiaire du test C2, le procédé selon l'invention prévoit la possibilité qu'une exception provoquée par une fonction indépendante d'une opération de lecture mise en oeuvre par l'interface de lecture idoine puisse engendrer un redémarrage du microcontrôleur, lorsque la stratégie spécifique de détection et de gestion d'erreur non corrigible en mémoire n'est pas activée. En effet, si ladite stratégie n'est pas active, alors 20 le contexte bas niveau du microcontrôleur n'a pas été sauvegardée et ne peut donc pas être restaurée. De ce fait, la seule action envisageable est le redémarrage du microcontrôleur. Par ailleurs, le procédé selon l'invention peut prévoir, optionnellement, qu'en cas de mise en oeuvre dudit procédé dans le contexte d'un environnement préemptif, 25 dans lequel l'interface de lecture est mise en oeuvre sur une zone critique, l'interdiction d'accès à la mémoire Flash, par interception de tout appel ne passant pas par l'interface de lecture idoine, dès lors que de tels appels surviendraient après activation, et avant désactivation, de la stratégie spécifique de détection et de gestion d'erreur non corrigible en mémoire Flash. 30 En résumé, la présente invention concerne un procédé apte à détecter et à gérer la survenance d'une exception provoquée par une erreur non corrigible présente en mémoire non volatile d'un microcontrôleur, sans provoquer de redémarrage dudit microcontrôleur. Le procédé selon l'invention, pour l'exprimer de façon synthétique, prévoit de 35 tester l'intégrité de la mémoire non volatile avant de tenter de la lire, puis, si une exception se produit de provoquer un « saut dans le passé » pour permettre à l'interface de lecture d'éviter la zone mémoire corrompue. A cette fin, une stratégie spécifique doit être activée 3040523 10 au lancement de toute opération de lecture, et désactivée au terme de ladite opération de lecture. Dès ladite stratégie activée, le gestionnaire d'exceptions réalise une « photographie » (sauvegarde) du contexte bas niveau du microcontrôleur, qu'il sauvegarde, et restaure, le cas échéant, si une exception survient lors de la lecture d'une 5 donnée en mémoire, en raison de la présence d'une erreur non corrigible dans une zone mémoire corrompue. Il est à noter, en outre, que l'invention n'est pas limitée au mode de réalisation décrit à titre d'exemple et est susceptible de variantes à la portée de l'homme du métier. REVENDICATIONS1. Procédé de détection et de gestion d'une erreur non corrigible dans une mémoire non volatile d'un microcontrôleur, ledit microcontrôleur présentant une interface de lecture (E), un gestionnaire d'exceptions (X), et un ensemble de registres internes et de paramètres d'exécution constitutifs d'un contexte bas niveau dudit microcontrôleur, ledit 5 procédé comprenant les étapes suivantes : i. à chaque commande d'une opération de lecture, à réaliser par l'interface de lecture, d'une donnée dans une zone mémoire de la mémoire non volatile, l'activation (El) systématique d'une stratégie spécifique de détection et de gestion d'erreur non corrigible dans la mémoire non volatile, ladite stratégie comprenant 10 les étapes suivantes : ii. l'enregistrement (X1) dans une mémoire volatile du microcontrôleur de l'état des registres internes et des paramètres d'exécution constitutifs du contexte bas niveau dudit microcontrôleur ; iii. la lecture (E2) de la donnée dans la mémoire non volatile ; 15 iv. si une exception (HW_X) est levée par le gestionnaire d'exceptions lors de la lecture de ladite donnée, la restauration (X2) par ledit gestionnaire d'exceptions de l'état des registres internes et des paramètres d'exécution constitutifs du contexte bas niveau du microcontrôleur, tels qu'enregistrés en mémoire à l'étape ii., l'invalidation de la zone mémoire et la désactivation (E3) de la stratégie spécifique 20 de détection et de gestion d'erreur non corrigible ; v. si aucune exception n'est levée par le gestionnaire d'exceptions lors de la lecture de la donnée, la désactivation (E3) de la stratégie spécifique de détection et de gestion d'erreur non corrigible, après lecture de ladite donnée. 2. Procédé selon la revendication 1, caractérisé en ce que les registres internes 25 comprennent des registres de données et des registres d'adresses. 3. Procédé selon l'une des revendications 1 à 2, caractérisé en ce que les paramètres d'exécution comprennent un pointeur de pile du microcontrôleur. 4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que ladite mémoire non volatile est une mémoire Flash. 30 5. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que, si une exception (HW_X) est levée par le gestionnaire d'exceptions lors de la lecture de la donnée dans la mémoire non volatile, l'étape iv. comporte une sous étape initiale comprenant : - la réalisation d'un test (C2) de vérification par le gestionnaire d'exceptions que la 35 stratégie spécifique de détection et de gestion d'erreur non corrigible est active et 3040523 12 que ladite exception (HW_X) est exclusivement due à la détection d'une erreur non corrigible ; et - si ladite stratégie n'est pas active, le redémarrage (X4) du microcontrôleur. 6. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'il comprend, au terme de de l'étape iv., la réalisation d'un retour, sous la forme d'un saut absolu (X3), pour revenir à la sortie de l'étape ii. 7. Procédé selon la revendication 6, caractérisé en ce qu'il comprend, préalablement à l'étape iii. de lecture de la donnée dans la mémoire non volatile dans une zone déterminable de ladite mémoire non volatile : - la réalisation d'un test (C1) pour vérifier si une exception (HW_X) a été levée par le gestionnaire d'exceptions, ayant entraîné la réalisation d'un retour, sous la forme d'un saut absolu (X3), pour revenir à la sortie de l'étape ii. ; - si une exception (HW_X) ayant entraîné la réalisation d'un retour, sous la forme d'un saut absolu (X3), pour revenir à la sortie de l'étape ii. a bien été levée, l'invalidation (E4) de ladite zone de la mémoire non volatile, de façon à ce que l'interface de lecture (E) ne tente plus d'accéder à ladite zone de la mémoire non volatile; - si aucune exception (HW_X) ayant entraîné la réalisation d'un retour, sous la forme d'un saut absolu (X3), pour revenir à la sortie de l'étape ii. n'a été levée, la poursuite du procédé par l'étape iii. 8. Procédé selon l'une des revendications précédentes, caractérisé en ce que l'étape iv. comprend en outre la transmission d'une information à l'interface de lecture par le gestionnaire d'exception selon laquelle une erreur non corrigible est survenue. 9. Procédé selon la revendication 8, caractérisé en ce que ladite information comprend une identification de la zone de la mémoire non volatile présentant l'erreur non corrigible et présumée corrompue. 10. Dispositif de microcontrôleur embarqué, destiné à un calculateur de véhicule automobile, ledit microcontrôleur comprenant un microprocesseur et une mémoire non volatile, et ledit microcontrôleur étant caractérisé en ce qu'il est configuré pour mettre en oeuvre le procédé de détection et de gestion d'une erreur non corrigible dans la mémoire non volatile du microcontrôleur selon l'une quelconque des revendications 1 à 9.