Brevet FR2768529A1 — publié le 19990319

La présente invention concerne un procédé de mise en mémoire et de récupération de donnée dans un système de commande, notamment situé dans un véhicule automobile, qui contient un calculateur, une mémoire RAM (appelée ci- après plus brièvement "RAM") et une mémoire flash. En ce qui concerne ces données, il s'agit notamment de données de fonctionnement qui peuvent varier pendant le fonctionnement du système de commande, par exemple du système de commande de véhicule automobile, et peuvent par exemple représenter des données adaptatives permettant de commander d'une manière optimisée des éléments constitutifs du système de commande, par exemple une boîte de vitesses automatique, des données de mémoire d'erreurs, la situation kilométrique actuelle, la durée totale de service, etc.. Ces données de fonctionnement sont, pendant le fonctionnement en cours de déroulement, déterminées et/ou actualisées au moyen du système de commande et tenues à disposition, dans une RAM (mémoire à accès direct), en vue d'un accès rapide et d'une modification rapide. Lorsque le système de commande est mis hors service, les données de fonctionnement actualisées sont alors mises en mémoire dans une mémoire non volatile, par exemple une EEPROM, et, lors du nouveau démarrage, sont de nouveau lues de 1'EEPROM dans la RAM, de sorte qu'elles peuvent être prises en compte lors du fonctionnement suivant du système de commande. En tout état de cause les EEPROM exigent une tension de fonctionnement relativement élevée et possèdent une densité de données relativement faible. Elles sont en outre onéreuses. En variante aux EEPROM, on connaît aussi d'une manière générale les mémoires flash (RAM flash) dans lesquelles toutefois le nombre de cycles d'effacement et d'écriture est limité et peut par exemple ne pas dépasser environ 10000. Ainsi, la durée de vie d'une mémoire flash n'est souvent pas suffisante pour le nombre total d'opérations de mise en circuit et hors circuit se présentant pendant la durée de vie du système de commande, par exemple du système de commande de véhicule automobile, avec des opérations appropriées d'effacement et d'écriture de la mémoire flash. C'est ainsi par exemple que le nombre total des mises en circuit et hors circuit exécutées pour un véhicule automobile (par exemple un taxi) utilisé souvent pour de courtes distances est de plusieurs milliers par an, de sorte qu'il peut se présenter plusieurs dizaines de milliers d'opérations de mise en circuit et hors circuit sur l'ensemble de la durée de vie du véhicule. Si on utilisait des blocs fonctionnels permettant un nombre plus élevé de cycles d'effacement et d'écriture, cela entraînerait une augmentation notable des coûts. "Flash-Technologie ersetzt EEPROMs" (La technologie flash remplace les EEPROM) dans Design & Elektronik, fascicule 18, 1995, pages 38 à 41, divulgue, ce qui correspond au type générique ici considéré, un procédé de mise en mémoire et de récupération de données dans un système de commande, notamment situé dans un véhicule automobile, qui comprend un calculateur, une mémoire RAM et une mémoire flash dans laquelle des données de fonctionnement de différents genres, qui peuvent varier pendant le fonctionnement du système de commande, peuvent être mises en mémoire de façon telle qu'il se présente d'une manière multiple des données de fonctionnement de même genre, mais d'une ancienneté différente. Dans ce procédé, des paramètres sont mis en mémoire dans un système de mémoire flash à bloc de démarrage ("Boot- block"). Lorsque les paramètres varient, les valeurs actuelles de paramètre sont inscrites successivement dans un bloc de mémoire flash et une indication concernant l'adresse du paramètre maintenant actuel est placée dans le paramètre jusque là valable. Lorsque le bloc de paramètre est plein, les valeurs actuelles de paramètre sont copiées dans un autre bloc de paramètre et le bloc de paramètre plein est effacé. Cette manière de procéder permet de maintenir à une valeur relativement faible le nombre de cycles d'effacement nécessaires dans l'ensemble. Lorsque le système est remis en circuit, un certain temps est en tout état de cause nécessaire jusqu'à ce que les valeurs de paramètre chaque fois actuelles soient trouvées et soient disponibles pour la commande du système de commande. Par DE 42 09 905 Cl, on connaît un système de mise à jour du contenu d'une mémoire EEPROM pouvant faire l'objet d'un remplacement par des valeurs plus actualisées, dans lequel une réduction des opérations d'écriture est obtenue par le fait que des groupes de données nouvellement envoyés au système sont comparés à des groupes de données correspondants déjà contenus dans la mémoire et qu'une opération de mémoire n'est exécutée que lorsque les groupes de données diffèrent. L'invention a pour but de fournir un procédé, permettant la mise en mémoire et la récupération de données de fonctionnement variant pendant le fonctionnement, qui permette un début de fonctionnement rapide d'un système de commande nécessitant de faibles moyens techniques et pourvu de mémoires de données de fonctionnement non volatiles, après une mise en circuit de ce système. A cet effet, l'invention a pour objet un procédé, du type générique mentionné ci-dessus, qui est caractérisé en ce que, lors d'une remise en circuit du système de commande, les données de fonctionnement sont inscrites dans la mémoire RAM en deux phases, dans la première desquelles uniquement certaines valeurs de remplacement précédemment déterminées sont inscrites dans la mémoire RAM sans accéder à la mémoire flash, tandis que ce n'est qu'ensuite, dans la seconde phase, que les données de fonctionnement les plus récentes d'un ou plusieurs genres de données, détectées ou déterminées dans la mémoire flash, inscrites dans la RAM. Le procédé conforme à l'invention peut aussi présenter une ou plusieurs des particularités suivantes: - lors d'une mise hors circuit du système de commande, il est vérifié si les données de fonctionnement contenues dans la mémoire RAM ont été modifiées pendant le fonctionnement précédent ayant eu lieu à partir de la dernière mise en circuit du système de commande, et seules les données de fonctionnement qui ont varié sont inscrites dans la mémoire flash, - les données de fonctionnement sont introduites chacune dans la mémoire flash avec une en-tête caractérisant le genre de données, - la mémoire flash est divisée en plusieurs segments et, lors de la mise hors circuit du système de commande, les données de fonctionnement sont inscrites chacune successivement dans un segment sans remplacement des données de fonctionnement précédentes par des valeurs plus actualisées, jusqu'à ce que ce segment soit plein, et ensuite, les données de fonctionnement sont inscrites dans un segment suivant, - après remplissage de certains segments ou de tous les segments, un segment déjà précédemment rempli est ré- effacé, puis, dans ce segment maintenant effacé, des données de fonctionnement normalement invariables, mais nécessaires pour le fonctionnement du système de commande, sont copiées, en provenance d'un autre segment, dans ce segment maintenant effacé, - chaque segment comporte une identification qui indique s'il est plein, vide ou partiellement plein, - lors de la mise en circuit du système de commande, il est d'abord procédé, dans le segment qui vient d'être activé, à une recherche des données de fonctionnement les plus récentes, puis, si tous les genres de données de fonctionnement les plus récentes qui sont nécessaires au fonctionnement ne sont pas trouvés dans ce segment, il est procédé à la recherche des données de fonctionnement manquantes dans un segment désactivé, - la mémoire flash est interrogée lors de la mise en circuit du système de commande, les données de fonctionnement des genres considérés qui sont chaque fois les plus récentes sont déterminées et au moins une partie de ces données de fonctionnement est copiée dans la mémoire RAM et/ou il est placé des indicateurs qui indiquent la position et le genre des données de fonctionnement déterminées, - lors de la lecture de données de fonctionnement dans la mémoire flash, l'intégrité de celles-ci est d'abord vérifiée, puis, si ces données sont considérées comme défectueuses, il est procédé à la recherche, dans la mémoire flash, de données de fonctionnement plus anciennes du même genre qui soient intactes, - pour la détermination de la fin de la zone de mémoire occupée par des données de fonctionnement, la mémoire flash est divisée en blocs virtuels et il est vérifié, bloc par bloc, si les zones de mémoire contenues dans ceux-ci sont vides o contiennent des données et, lors de la détermination de la fin de la zone de mémoire occupée, un indicateur indiquant cet emplacement est placé, - lors de la mise hors circuit du système de commande, les valeurs actuelles des données de fonctionnement qui sont contenues dans la mémoire RAM sont recherchées et sont regroupées en blocs de données correspondants qui, avant leur inscription dans la mémoire flash, sont pourvus chacun d'une identification indiquant le genre de données, - lors de la formation des blocs de données dans la mémoire RAM, la grandeur totale résultante des données à transférer dans la mémoire flash est déterminée. Ainsi, lors d'un début de fonctionnement, les données de fonctionnement sont extraites en deux étapes. Pendant la phase d'initialisation du système de commande, par exemple d'une commande de boîte de vitesses automatique, ce sont d'abord uniquement des valeurs de remplacement qui sont prélevées pour les données de fonctionnement dans la RAM, sans qu'un accès à la mémoire flash ait lieu, afin de réduire à un minimum la charge du processeur. Ce n'est que pendant un intervalle de temps suivant, pendant lequel le processeur du système de commande fonctionne habituellement déjà souvent en marcha à vide, qu'a effectivement lieu un accès à la mémoire flash pour lire les données de fonctionnement inscrites lors de la dernière mise hors circuit du système. La mémoire flash utilisée peut être d'une forme de réalisation standardisée et se caractérise par une densité élevée de données et une faible tension de fonctionnement et par le fait qu'elle est disponible à un coût avantageux. La mémoire flash est gérée au moyen d'un procédé de mise en mémoire en boucle, de sorte que les données de fonctionnement à mettre en mémoire, par exemple les données adaptatives, ne sont plus situées à des adresses fixes, mais ont été inscrites dans la mémoire flash d'une manière séquentielle, de préférence en blocs identifiés. Ainsi, les valeurs les plus récentes sont toujours situées à d'autres adresses, par exemple plus élevées, que des blocs plus anciens du même genre. La mémoire flash contient à chaque instant une multiplicité de données de fonctionnement du même genre qui ne diffèrent que par leur ancienneté. Le procédé de mise en mémoire permet aussi une "fonction d'historique", étant donné que des enregistrements d'erreur et états de fonctionnement plus anciens sont disponibles encore plus longtemps et qu'il est possible d'y faire appel pour clarifier des situations d'erreur ou par exemple des appels en garantie. Si par exemple la température maximale fixée de fonctionnement du dispositif est franchie, des appels en garantie du dispositif sont en général de ce fait caduques. Sans le maintien à long terme des enregistrements d'états de fonctionnement plus anciens, un tel franchissement des valeurs de fonctionnement n'est -7 éventuellement pas annoncé, étant donné que, bien qu'étant endommagé, le dispositif ne tombe que plus tard en panne, dans des conditions normales de fonctionnement. Un cycle d'effacement n'est nécessaire que lorsque la mémoire flash (ou, dans le cas d'une segmentation de préférence prévue de la mémoire flash, un bloc segment approprié de la mémoire flash) est pleine et ne peut plus recevoir de nouvelles données de fonctionnement. Ce n'est que dans ce cas qu'il est nécessaire de réorganiser la mémoire flash, c'est-à- dire de ne plus recevoir que les données actuelles, ou de copier celles- ci du bloc plein vers un nouveau bloc segment de mémorisation à remplir. Cette manière de procéder ne rend nécessaire un cycle d'effacement et d'écriture qu'après un très grand nombre de mises en circuit et hors circuit du système de commande, de sorte que la durée de vie de la mémoire flash est multipliée et suffit totalement pour la durée normale d'utilisation du système de commande se trouvant par exemple dans le véhicule automobile. Pour réduire encore le nombre de cycles d'écriture, il est de préférence vérifié, lors de la mise hors circuit du système de commande, si les données de fonctionnement ont effectivement varié pendant le fonctionnement précédent, c'est-à-dire si elles diffèrent des données de fonctionnement présentes au début du fonctionnement. Si tel n'est pas le cas, ces données de fonctionnement qui sont restées inchangées ne sont pas inscrites dans la mémoire flash, de sorte que les opérations d'écriture les concernant n'ont pas lieu et que par conséquent la période de temps jusqu'à ce que la mémoire flash soit pleine et doive être effacée est allongée d'autant. Dans une réalisation préférée, les données de fonctionnement sont inscrites dans la mémoire flash chacune avec une en-tête caractérisant le genre de données, de sorte que le système de commande peut reconnaître dans la mémoire flash la valeur la plus récente de chaque genre de données parmi les genres de fonctionnement, en interrogeant la mémoire et en déterminant l'identification de l'en-tête se trouvant au dernier emplacement (dans l'ordre du genre de données de fonctionnement chaque fois le même). La mémoire flash est de préférence divisée en plusieurs segments, les données de fonctionnement étant de préférence inscrites respectivement l'une apres l'autre dans un segment jusqu'à ce que le segment soit plein, à la suite de quoi il est procédé à l'écriture dans le segment suivant. Le segment plein peut alors être effacé sans perturbation de l'autre segment, cette opération d'effacement étant toutefois de préférence repoussée jusqu'à ce que le ou les autres segments de la mémoire flash soient remplis. Au début du remplissage en tant que mémoire d'un nouveau segment ou d'un segment fraîchement effacé, ce sont de préférence non seulement les données de fonctionnement actuelles, mais aussi des données invariables nécessaires au fonctionnement du système de commande, telles que des données de fabrication, des valeurs d'égalisation de régulateur de courant, etc., qui sont mises en mémoire dans ce segment. Ainsi, toutes les données nécessaires au fonctionnement du système de commande sont normalement contenues dans un segment unique actuellement utilisé pour la mise en mémoire et la lecture. Pour rendre possibles un contrôle des segments et une reconnaissance de leur état qui soient simples, chaque segment est de préférence pourvu d'une identification qui indique s'il est plein, partiellement plein ou vide. Un segment partiellement plein constitue alors le segment "activé" actuellement utilisé pour la mise en mémoire. S'il devait s'avérer que les données de fonctionnement nécessaires ne sont pas toutes contenues dans le segment activé, un segment désactivé, plus ancien, est de préférence aussi contrôlé en ce qui concerne le genre des données de fonctionnement qui est nécessaire et celle-ci est lue à partir de ce segment. Il est ainsi possible d'utiliser au moins les données de fonctionnement actuelles précédemment en tant que données de fonctionnement maintenant à utiliser. Ces données de fonctionnement légèrement plus anciennes conviennent en général mieux que n'importe quelles valeurs de remplacement déjà précédemment déterminées. Au démarrage du système, il est possible de ne placer d'abord, pour toutes les données de fonctionnement ou pour au moins une partie de celles-ci, que des indicateurs qui indiquent la position correspondante des données dans la mémoire flash. Si les données de fonctionnement sont alors effectivement nécessaires pendant le fonctionnement en cours, elles peuvent être lues rapidement grâce à un accès aux indicateurs et être transférées dans la RAM. Il est de préférence prévu un étage de sécurité dans lequel, lorsqu'un bloc de données est lu à partir de la mémoire flash, il est d'abord procédé à un contrôle de l'intégrité du bloc de données et, en cas de résultat négatif, c'est un bloc de données intact plus ancien du même genre de données de fonctionnement qui est déterminé et lu. Le début de l'espace de mémoire libre de la mémoire flash se détermine très rapidement par formation virtuelle de blocs et contrôle d'emplacements de bloc caractéristiques. De préférence, lors de la mise hors circuit du système de commande, les valeurs actuelles des données de fonctionnement qui sont contenues dans la RAM sont recherchées et assemblées en blocs de données appropriés qui, avant leur introduction dans la mémoire flash, sont pourvus chacun d'une identification indiquant le genre de données. De préférence aussi, lors de cette formation des blocs de données dans la RAM, la quantité globale résultante de données à transmettre dans la mémoire flash est déterminée, de sorte que l'ensemble des données à transmettre est connu et, par exemple, le segment de mémoire flash peut être contrôlé en ce qui concerne la suffisance d'espace mémoire et qu'une mise en mémoire rapide des données de fonctionnement nécessaires peut être obtenue. L'invention est décrite ci-après en détail à l'aide d'exemples de réalisation et en se référant aux dessins. On voit: à la figure 1, le contenu d'un segment de la mémoire flash dans le cas d'un exemple de réalisation, à la figure 2, la structure d'un bloc de données dans la mémoire flash, à la figure 3, le flux de données lors du fonctionnement normal et lors d'une mise normale hors circuit du système de commande ou d'une remise à l'état initial en raison d'une erreur de logiciel, à la figure 4, schématiquement, l'inscription de données dans la RAM après une remise à zéro du système, à la figure 5, d'autres particularités de l'inscription des données dans la RAM dans le cas d'un exemple de réalisation, aux figures 6 et 7, le remplissage successif des segments de la mémoire flash en données de fonctionnement, à la figure 8, un procédé permettant de trouver rapidement la fin d'un bloc de mémoire flash utilisé, en vue de l'adjonction de nouvelles données de fonctionnement dans cette zone, à la figure 9, un schéma de processus d'un sous- programme qui sert au placement d'indicateurs pour chaque genre de blocs de données de fonctionnement, à la figure 10, un schéma de processus d'un sous- programme servant à contrôler l'intégrité d'un bloc de données de fonctionnement dans la mémoire flash, à la figure 11, un schéma de processus d'un autre sous-programme qui est utilisé lors du contrôle de l'intégrité des blocs de données, à la figure 12, un autre schéma de processus servant à la recherche et au contrôle d'un bloc de données de fonctionnement dans la mémoire flash, à la figure 13, un exemple pour la formation de blocs de données en vue de la mise en mémoire dans la mémoire flash lors d'une mise hors circuit du système, à la figure 14, un schéma de processus du sous- programme servant à former les blocs de données de fonctionnement pour la mise en mémoire dans la mémoire flash et, à la figure 15, un schéma de processus montrant la réorganisation de la mémoire flash dans le cas d'un bloc de mémoire flash plein. Le procédé conforme à l'invention est décrit ci- après dans le cas d'un système de commande qui est contenu dans un véhicule automobile et sert à la commande de la boîte de vitesses automatique. Le procédé est toutefois utilisable aussi dans le cas d'autres systèmes de commande dans lesquels se pose le problème de la mise en mémoire non volatile, pendant des arrêts de fonctionnement, de données variant pendant le fonctionnement. La figure 1 représente un exemple pour le contenu d'une mémoire flash 1 qui est une partie constitutive du système de commande. Dans la mémoire flash 1, différents genres de données de fonctionnement, à savoir des données fixes de fonctionnement qui ne doivent être mises en mémoire qu'une seule fois, par exemple des données de fabrication qui peuvent être mises en mémoire à la sortie de la ligne de production ou des valeurs d'égalisation ou réglage de régulateur de courant qui servent au réglage du régulateur de courant de boîte automatique, sont mises en mémoire dans le segment représenté, qui comprend par exemple 8 kilobytes et qui commence à l'adresse 0x4000. Toutefois, des données de fonctionnement qui varient pendant le fonctionnement, par exemple des données de mémoire d'erreurs, les données de compteur indiquant la durée totale de fonctionnement jusqu'à l'instant présent, des valeurs adaptatives correspondant à des grandeurs variant d'une manière adaptative, etc., sont aussi rangées dans la mémoire flash 1. Comme le montre la figure 1, les différentes données de fonctionnement sont rangées respectivement d'une manière continue l'une à la suite de l'autre sans respecter un ordre déterminé, les données de fonctionnement invariables pendant le fonctionnement, telles que par exemple les données de fabrication, n'étant en général mises en mémoire qu'une seule fois, tandis que les données de compteur indiquant la durée totale de fonctionnement sont mises en mémoire respectivement à chaque mise hors circuit du système de commande, c'est-à-dire chaque mise à l'arrêt du véhicule. Les données de mémoire d'erreurs et les valeurs adaptatives sont aussi inscrites dans la mémoire flash chaque fois à la mise hors circuit du système de commande s'il doit s'avérer qu'elles varient par rapport à leur état au démarrage du système. Etant donné qu'ainsi, lors de la mise en circuit, seules des données de fonctionnement qui ont varié sont mises en mémoire et que celles-ci sont adjointes chaque fois directement, sans respecter un ordre déterminé, à la fin de la zone de mémoire flash ayant jusqu'alors servi à la mise en mémoire, cette zone de mémoire flash ne se remplit que lentement, de sorte que corrélativement une grande période de temps s'écoule avant que la zone de mémoire ne soit remplie et qu'une opération d'effacement doive être effectuée. Le bloc de mémoire flash est en général progressivement occupé par les données de fonctionnement qui varient, aussi longtemps qu'un espace libre suffisant est disponible. Si, en revanche, le bloc de mémoire est plein, il est possible que soit lancée une réorganisation de ce bloc utilisé pour la mise en mémoire des données de fonctionnement, à l'occasion de laquelle c'est d'abord la dernière copie (la plus récente) de toutes les données de fonctionnement qui varient qui est copiée dans un second bloc, devant éventuellement être au préalable effacé, puis, les nouvelles données de fonctionnement actuelles provenant de la RAM sont copiées dans le second bloc ou plus précisément y sont ajoutées et, finalement, le système de commande, par exemple l'unité de commande de boîte de vitesses automatique, est mis hors circuit ou une remise à zéro du système est effectuée. Lors d'un démarrage du système, les blocs de données de fonctionnement sont interrogés au moyen d'opérations d'indicateur. Les indicateurs sont placés en tête ("header") du genre considéré de données de fonctionnement qui est trouvée dans le bloc le plus récent. De ce fait, le dernier bloc valable de données de fonctionnement de ce genre se trouve indiqué. Les particularités de la mise en mémoire et de la récupération des données sont décrites plus en détail dans la suite du texte. Les données de fonctionnement qui sont inscrites dans la mémoire flash 1 comprennent non seulement les données précédemment indiquées, mais aussi des données adaptatives (valeurs adaptatives), qui sont par exemple utilisées pour la commande de boîte de vitesses, ainsi que des enregistrements d'état d'erreur, qui peuvent se rapporter à un bloc de mémoire d'erreurs, ou des enregistrements d'état, par exemple de valeurs de registre, qui sont mis en mémoire lors de l'apparition d'erreurs de logiciel ("software-traps" = pièges de logiciel). Une configuration spéciale des blocs de données flash est utilisée pour que tous ces différents genres de fonctionnement puissent être traités d'une manière simple au moyen de sous-programmes de traitement standardisés prévus pour l'accès à la mémoire flash. La figure 2 représente l'agencement d'un tel bloc de données 2 qui est rangé dans la section de données de fonctionnement de la mémoire flash 1 et qui, pour chacun de tous les genres de données, comporte la même structure. Le bloc de données 2 contient au début une identification de tête ou en- tête HDR, puis une identification "TYP" qui désigne le tampon correspondant situé dans la RAM pour le contenu de la mémoire flash. Vient ensuite une identification "ID" qui sert à désigner le genre de données. La section de bloc "UMF" signale le nombre de bytes de données qui sont contenus dans la section "DONNEES", y compris la somme de contrôle associée. La section de données CS contient la somme de contrôle. A la fin du bloc de données, la section de données "FIN" contient un motif de bits déterminé qui signale la fin de bloc de données au système de commande et qui est encore suivi de la somme de contrôle de bloc BCS. Le schéma représenté à la figure 3 fournit une vue d'ensemble du fonctionnement normal du système de commande. D'une manière générale, c'est ici un système à EEPROM qui est simulé, de sorte que, lors d'un fonctionnement normal, le système de commande se comporte comme s'il était pourvu d'une mémoire EEPROM à la place d'une mémoire flash. Au début du fonctionnement normal du système de commande, qui est désigné par le repère 3, ce sont d'abord des données de fabrication qui sont copiées de la mémoire flash dans la RAM (blocs 4 et 5), puis les données adaptatives et aussi, dans la mesure o elles sont installées, les données de fabrication sont adaptées pendant le fonctionnement en cours (bloc 6). S'il se présente une erreur de logiciel critique qui nécessite une remise à l'état initial du système de commande, un enregistrement d'état des registres, etc. est d'abord placé dans la mémoire flash (bloc 7). L'enregistrement d'état permet de localiser d'une manière simple l'erreur de logiciel et donc de la supprimer. Une fois la remise à l'état initial effectuée (bloc 8), les données de fonctionnement pertinentes, contenues dans la mémoire flash, sont copiées dans la RAM (bloc 9) et l'enregistrement d'état est éventuellement indiqué (bloc ). Lorsque le système de commande est mis hors circuit, par exemple l'interrupteur de contact mis hors circuit, les données de fonctionnement (données adaptatives, données d'état, etc.) et éventuellement aussi les données de fabrication modifiées sont inscrites dans la mémoire flash au moyen d'un gestionnaire de mémoire flash 11 (bloc 12), à la suite de quoi la tension d'alimentation est coupée (bloc 13). Le fonctionnement du système de commande est en général divisé en trois phases: a) opérations de recherche de données avant le début de l'exécution du fonctionnement normal du système de commande, b) opérations de fonctionnement pendant le fonctionnement normal du système de commande et c) opérations de mise hors circuit permettant d'inscrire dans la mémoire flash les informations actuelles nécessaires pour la mise en circuit suivante. Ces processus sont exposés ci-après d'une manière plus détaillée. L'opération de recherche de données au démarrage du système est divisée en deux sections (voir figure 4). La première section est exécutée pendant l'initialisation du système de commande. De préférence, étant donné que le déroulement dans le temps du démarrage du système pendant cette phase d'initialisation est très critique, aucun accès à la mémoire flash n'a encore lieu à cet instant. C'est pourquoi, pendant cette phase d'initialisation, ce ne sont que certaines valeurs de remplacement (données de mémoire ROM) qui sont inscrites dans les zones de données correspondantes de la mémoire RAM en tant que remplacement pour les données de fonctionnement correctes contenues dans la mémoire flash. Ainsi, les processus les plus importants sont enregistrés le plus tôt possible, de sorte que le fonctionnement normal du système de commande est atteint rapidement. La lecture des données de fonctionnement à partir de la mémoire flash n'est alors maintenant exécutée que sous forme de tâche d'arrière- plan, de sorte que l'unité centrale, fonctionnant normalement largement à vide pendant cette période de temps, est maintenant utilisée pour la recherche de données. Le fonctionnement normal du système de commande est donc chargé le plus faiblement possible. Ainsi, au moyen de la fonction d'arrière-plan "lire mémoire flash", ce sont maintenant les données de fonctionnement les plus récentes qui sont inscrites dans le bloc adaptatif de la RAM. Les données de fonctionnement inscrites dans la RAM sont alors utilisées pour commander le fonctionnement normal, au besoin moyennant une commande par le système de fonctionnement. Etant donné que la figure 4 se comprend d'elle-même, aucune autre description n'est nécessaire. Le processus précédemment décrit est valable pour un démarrage à froid, pour lequel la tension du système de commande a précédemment été coupée. Si une remise à l'état initial du système a eu lieu au moyen d'une commande de logiciel, il est d'abord vérifié si les données adaptatives (données de fonctionnement) contenues dans la RAM sont correctes, ce qui est réalisé au moyen d'un nouveau calcul de leur somme de contrôle et au moyen d'une comparaison des résultats avec les sommes de contrôle précédentes. S'il s'avère alors que les données de fonctionnement contenues dans la RAM sont correctes, la fonction d'initialisation de mémoire flash et la "fonction d'arrière-plan "lire mémoire flash" ne sont pas exécutées. Lors d'un démarrage du système, ce ne sont d'abord que les valeurs pertinentes prévues pour le régulateur de courant qui sont chargées dans la RAM, valeurs pour lesquelles il s'agit de tables qui contiennent les valeurs de décalage et de gradient correspondant aux valeurs de sortie du régulateur de courant et valeurs de compensation de température respectives. Cette manière de procéder permet de maintenir aussi faible que possible la charge de l'unité centrale pendant la phase d'initialisation. Etant donné qu'aucun accès à la mémoire flash n'a encore lieu, ce sont d'abord, comme déjà indiqué, des valeurs de remplacement déterminées ("données de mémoire ROM"), qui assurent un fonctionnement sûr du régulateur de courant, qui sont utilisées. En ce qui concerne les données de fonctionnement qui sont recherchées et utilisées pendant le démarrage du système dans le cas d'un fonctionnement normal du système de commande (sans appareil de test, ni analogue), il s'agit notamment des valeurs de réglage de régulateur de courant, de valeurs adaptatives servant à la commande du système de commande, par exemple pour la commande de boîte de vitesses, des données de bloc de mémoire d'erreurs, des données d'état d'erreur standard et de la durée totale de fonctionnement. Si, lors de l'interrogation de la mémoire flash, il devait s'avérer que les blocs de données souhaités ne peuvent pas être trouvés ou qu'ils sont défectueux (la vérification des sommes de contrôle signale des erreurs), des valeurs de remplacement provenant d'une ROM sont utilisées ou les données sont simplement mises à zéro. Cette dernière action a par exemple lieu pour la durée totale de fonctionnement ou pour les tables de traitement d'erreur. Ainsi, des blocs de données adaptatives peuvent être produits, sans définition préalable, dans la phase initiale du démarrage du système de commande. Ce processus est représenté à la figure 5 sous forme d'un schéma de flux. Comme indiqué sur celui-ci, c'est d'abord chaque fois un bloc de mémoire flash qui est contrôlé et qui est lu s'il est intact. Dans le cas contraire, les valeurs de remplacement correspondantes sont placées dans le bloc adaptatif associé de la ROM. Ce processus est exécuté successivement d'abord pour les données de mémoire d'erreurs, puis pour les données de boîte de vitesses, les données de régulateur de courant et les données de compteur d'heures de fonctionnement, lesquelles sont respectivement rangées en mémoire dans la mémoire flash. A la fin de la mise en mémoire des données de compteur d'heures de fonctionnement, un signal "état " est délivré, ce signal indiquant la fin du remplissage du bloc adaptatif de la RAM. Pour qu'un accès plus rapide à la mémoire flash puisse avoir lieu, par exemple lorsque sont nécessaires des données de fonctionnement qui ne sont pas encore mises en mémoire dans la RAM, il est prévu une fonction d'arrière-plan qui analyse le contenu de la mémoire flash pour déterminer l'état de celui-ci et les blocs de données de fonctionnement chaque fois les plus récents. Un indicateur correspondant à chaque genre de bloc des données de fonctionnement est chaque fois placé, cet indicateur indiquant les données de fonctionnement les plus récentes de ce genre de bloc. Etant donné que cette opération se déroule en arrière-plan, la capacité de puissance du système ne s'en trouve pas réduite. L'analyse s'effectue en particulier en déterminant d'abord le bloc de mémoire flash actif, en déterminant la fin de la zone de mémoire flash occupée, de sorte que la position est indiquée pour une mise en mémoire suivante de données de fonctionnement, et en plaçant un indicateur correspondant à chaque genre de bloc dans la zone de mémoire flash occupée, active. Dans l'exemple de réalisation représenté aux figures 6 et 7, la mémoire flash 1 comporte deux segments 14, 15 servant à inscrire les données de fonctionnement variables, qui sont par exemple situées dans la zone d'adresses 0x04000 à Ox05FFF (premier segment) et dans la zone d'adresses s'étendant de 0x06000 à 0x07FFF (second segment). Les autres sections de mémoire flash sont réservées pour d'autres tâches. Toutefois, le nombre des segments de la mémoire flash qui sont prévus pour l'inscription de données de fonctionnement peut aussi avoir une autre valeur, à savoir par exemple 1 ou 3 et davantage. Les deux segments sont respectivement remplis complètement de données de fonctionnement l'un après l'autre, jusqu'à ce qu'une réorganisation soit imposée. Pour qu'il soit indiqué au système de commande quel segment est utilisable, il est inscrit au premier emplacement d'adresse OxFFFF (qui indique un segment vide), Ox5A5A (qui désigne la tête d'un bloc de données valable et indique un segment partiellement plein) ou Ox5A00 (qui indique un segment plein). Si un segment a été rempli, l'autre segment est ensuite utilisé aux fins de mise en mémoire et la première en-tête ("header") du segment plein est modifiée de Ox5A5A à Ox5A00, de sorte que ce segment est désormais désactivé. Si les deux segments de la mémoire flash contiennent chacun OxFFFF à leur premier emplacement d'adresse (0x04000 et Ox06000), cela indique que la mémoire flash se trouve dans son état initial et que les deux blocs sont vides. Si aucune des trois possibilités valable OxFFFF, Ox5A5A ou Ox5A00 n'est trouvée au premier emplacements de mémoire flash du bloc de mémoire, l'indicateur indiquant le début de la mémoire flash est incrémenté jusqu'à ce que qu'une option valable soit relevée ou que la fin du bloc de mémoire flash soit atteinte. Les états d'adresse et les contenus de mémoire des segments 14 et 15 dans différents états respectifs d'occupation sont indiqués aux figures 6 et 7. Lors de l'analyse de l'état de la mémoire flash, la fonction d'analyse renvoie au système de commande une valeur de signal appropriée qui indique l'état d'occupation. Si les deux segments de mémoire flash devaient s'avérer totalement vides ou si, par contre, d'une manière défectueuse, les deux segments devaient s'avérer désactivés, le premier segment 14 est utilisé pour l'opération suivante de mémoire. Pour qu'aucun espace libre ne subsiste dans la mémoire flash lors de l'inscription de nouveaux blocs de données de fonctionnement, la fin de la zone occupée est chaque fois déterminée, ce qui s'effectue au moyen du sous-programme représenté à la figure 8. La figure 8 représente un schéma de processus, se comprenant de lui-même, d'un programme servant à la détermination rapide de la fin de la zone de mémoire occupée dans le segment de mémoire flash actuellement utilisé. Il est ainsi possible de raccorder directement de nouvelles données à la fin de la zone de mémoire déjà occupée. La mémoire flash est divisée en blocs virtuels (sections) ayant une taille de 256 bytes. L'exploration commence par le contrôle de la cellule se trouvant chaque fois au début de chaque bloc. S'il est établi que cette cellule contient des données OxFFFF (ou autres données indiquant un état vide), il en est déduit que tout le bloc est vide. Si, en revanche, il est établi que la cellule contient d'autres données quelconques, ce bloc est occupé et ne peut pas être utilisé. C'est alors le bloc virtuel suivant qui est contrôlé. Cet examen se poursuit jusqu'à ce que soit atteinte la fin du segment actuellement utilisé pour les données de fonctionnement. Si, au contraire, un bloc vide est déterminé, l'indicateur de travail est décrémenté jusqu'au bloc virtuel précédent (ayant une étendue de 256 bytes). A partir de cette position, la mémoire flash est explorée mot à mot jusqu'à ce qu'une cellule vide (OxFFFF) soit déterminée. Un nombre préfixé d'autres cellules suivant les cellules vides sont alors contrôlées. Si celles-ci sont également vides, il en est déduit que le début de la zone de mémoire flash libre est atteint. Le nombre des cellules dont l'état vide est contrôlé doit être suffisamment grand pour pouvoir recevoir des blocs adaptatifs possibles, envoyés par la RAM, lors de l'opération suivante d'inscription en mémoire flash ayant lieu lors de la mise hors circuit. Si, lors du contrôle, il devait s'avérer qu'il se présente des cellules qui ne sont pas libres (par exemple des cellules défectueuses), l'indicateur de travail est incrémenté jusqu'à ce qu'un espace libre suffisamment grand soit disponible. Enfin, un indicateur global indiquant la disponibilité est placé dans la première cellule libre de la zone de mémoire flash qui suit l'espace occupé qui précède. Il est en même temps encore confirmé que l'ensemble des données devant être reçues lors de la prochaine opération de mise en mémoire peut être inscrit dans la zone de mémoire flash libre qui précède. Les autres sections de programme sont informées du fait qu'un espace suffisamment grand est disponible pour l'opération suivante de mise en mémoire, par exemple par mise à la valeur 1 d'un bit correspondant (valeur initiale = 0) dans une variable fshblk_cnd. Si, en revanche, un espace suffisamment grand devait s'avérer ne plus être disponible dans le segment de mémoire flash actif pour recevoir les nouvelles données, l'indicateur global indiquant la disponibilité est placé à la dernière adresse de mot du bloc de mémoire flash actif, c'est-à- dire à Ox5FFE ou Ox7FFE, et le bit correspondant dans la variable fshblkcnd est mis à zéro. L'étape suivante de l'analyse de mémoire flash vise à placer un indicateur sur chaque genre du bloc d'information (bloc de données de fonctionnement) qui est déterminé par les indications "TYP" et "ID" (voir figure 2) et est mis en mémoire dans le segment de mémoire flash. Cette fonction est illustrée par le schéma de processus présenté à la figure 9 qui se comprend de lui- même. La mémoire flash est contrôlée du début du segment actif jusqu'à la position de l'indicateur global indiquant la disponibilité. Si une en-tête ("header") de bloc de données de fonctionnement valable comportant "TYP" et "ID" est relevée, l'adresse de début de ce bloc de données est transférée dans une table avec un index approprié correspondant au genre de bloc de données considéré. En outre, un bit de signal est mis, lequel bit indique qu'un bloc de données d'un genre déterminé et d'une identification déterminée a été relevé. S'il devait s'avérer que les indications "TYP" et "ID" sont encore une autre fois relevées lors de l'interrogation suivante du segment de mémoire flash, la nouvelle adresse est mise en mémoire à la place de la précédente. Un contrôle de l'intégrité du bloc de données peut aussi être alors effectué, à partir de la mémoire flash. A la fin de ce sous-programme, la table d'indicateurs est toujours pourvue de la dernière adresse, c'est-à-dire la plus récente, des blocs de données considérés. S'il devait s'avérer qu'aucun bloc de données d'un genre déterminé n'a été relevé, une valeur déterminée, par exemple un zéro, est inscrite dans la table d'indicateurs, cette valeur indiquant qu'aucune donnée valable pour ce genre de bloc de données n'a été relevée dans la mémoire flash, de sorte que des valeurs de remplacement de ROM doivent être utilisées. Si, lors du contrôle du segment de mémoire flash, tous les indicateurs ne pouvaient pas être affectés, il est d'abord procédé, avant l'inscription de la valeur '"0" dans la position appropriée, à une recherche des blocs de données encore manquants, dans l'autre segment de mémoire flash désactivé et au moyen du même algorithme (figure 9) et les résultats alors obtenus sont mis en mémoire dans la table d'indicateurs. Lorsqu'un bloc de données doit être lu à partir de la mémoire flash, son intégrité est d'abord vérifiée. Cela s'effectue au moyen du sous-programme présenté à la figure 10. Il est accédé à ce bloc de données au moyen de l'adresse qui est rangée en mémoire dans la table d'indicateurs. Le bloc de données fait alors l'objet d'une interrogation et la somme de contrôle de bloc est calculée. Cette somme de contrôle calculée est comparée à la somme de contrôle de bloc inscrite en mémoire à la fin de ce bloc de données. Si le contrôle est positif, le bloc de données est lu et est mis en mémoire dans le tampon de mémoire RAM approprié. Si, lors de la vérification de la somme de contrôle ("Somme de contrôle OK ?"), il devait s'avérer qu'il se présente une contradiction, la mémoire 70 est contrôlée en arrière à partir de la valeur d'adresse indiquée, afin de déterminer le bloc de données précédent du même genre (même type et même identification ID). L'indicateur est alors placé sur le bloc de données (intact) précédent et cela est annoncé à la fonction qui appelle. Si, lors de la recherche d'un bloc de données plus ancien, il devait s'avérer qu'aucun résultat ne se présente, cela est annoncé à la fonction qui appelle et des valeurs de remplacement en mémoire ROM sont alors chargées dans le tampon de mémoire RAM approprié pour les données de fonctionnement adaptatives. L'appel de fonction "sys_fsh_nxt_blk" indiqué à la figure 10 servant à déterminer un bloc de données intact plus ancien est présenté plus en détail à la figure 11. La figure 11 se comprend aussi d'elle-même et, au-delà de l'exposé précédent, n'a besoin d'aucune explication supplémentaire. Un accès à la mémoire flash peut aussi être réalisé pendant le fonctionnement en cours du système de commande, afin de, par exemple, charger dans la mémoire RAM des blocs de données qui n'ont pas encore été chargés lors du démarrage du système, étant donné qu'ils ne sont nécessaires que dans des cas qui sont rares. I1 est possible aussi, en cas de besoin, de renvoyer dans la mémoire flash des données provenant de tampons de mémoire RAM, par exemple pour l'actualisation des données. Cette opération peut être commandée au moyen du système d'application. Il est alors possible aussi que des données de fabrication soient modifiées (par exemple après une intervention de réglage ou de réparation) et que ces données de fabrication modifiées soient alors renvoyées dans la mémoire flash. En principe, le processus est chaque fois identique lors de la recherche et du renvoi en mémoire des données de fonctionnement, indépendamment de la question de savoir s'il s'agit de données de fabrication, de données adaptatives, d'enregistrements d'état dans le cas d'une erreur de logiciel de grande importance ou analogues. La figure 12 présente un schéma de processus au moyen duquel il est possible de procéder à une recherche volontaire d'un bloc de données plus ancien (ce qui signifie qu'il ne s'agit pas du bloc de données actuel) d'un genre de données de fonctionnement déterminé. Il peut alors être indiqué s'il doit s'agir du deuxième bloc plus ancien, du troisième bloc plus ancien ou d'un bloc encore plus ancien du genre de données de fonctionnement déterminé ("Numéro de la recherche en arrière"). Dans ce processus, c'est le même algorithme de recherche en mémoire flash, que dans le cas de la partie du programme qui lit les données à partir de la mémoire flash après une remise à zéro du système, qui est utilisé. Pendant le fonctionnement en cours, les données de fonctionnement variables, par exemple les données adaptatives, qui sont contenues dans la mémoire RAM sont actualisées à chaque instant, de sorte que, lors d'une mise hors circuit du système, ce sont les valeurs les plus actuelles prévues pour le renvoi dans la mémoire flash qui sont contenues dans la mémoire RAM. Des enregistrements d'état d'erreur peuvent aussi être rangés pendant le fonctionnement en cours dans la mémoire RAM lors de l'apparition d'erreurs de logiciel, ces enregistrements d'état d'erreur pouvant alors être bloqués dans la mémoire flash. En ce qui concerne les valeurs bloquées pour cet enregistrement d'état, il peut par exemple s'agir de la vitesse de rotation, de la tension du système, de la température, de la pression, etc.. Des détails de la formation et de la mise en mémoire des blocs de données dans la mémoire RAM et dans la mémoire flash lors d'une mise hors circuit du système sont exposés ci-après. Pendant le fonctionnement normal du système de commande, les données de fonctionnement variable, par exemple les données adaptatives ou les données de mémoire d'erreur, sont mises en mémoire dans des tampons de mémoire RAM associés. Ces données doivent être transférées dans la mémoire flash lors de la mise hors circuit du système. A cet effet, elles sont d'abord amenées au format voulu des blocs de données de mémoire flash. Avant le transfert dans la mémoire flash, tous les tampons de mémoire RAM concernés font d'abord l'objet d'une interrogation et leur données sont rassemblées en un bloc unique. Il est alors nécessaire que non seulement les données qui doivent être inscrites dans la mémoire flash soient lues correctement à partir des tampons de mémoire RAM associés et soient correctement rassemblées, mais aussi que soient produites les parties constitutives de bloc associées correspondantes, telles que "Tête", "TYP", "ID", "Fin", etc.. La zone standard de la mémoire RAM est utilisée comme position de sortie, et traitée d'une manière orientée par les indicateurs, dans le cadre de cette fonction. La position de mémoire RAM est normalement utilisée par d'autres parties de programme. Etant donné toutefois que celles-ci ne se déroulent plus (l'action suivante après la programmation de mémoire flash est la remise à l'état initial du système ou la coupure de tension), cette zone peut être utilisée sans perturbation des autres programmes. La figure 13 présente la manière dont, dans la mémoire RAM 16, les différentes grandeurs ("Mémoires d'erreur", "Enregistrements d'état d'erreur", "Valeurs adaptatives de boîte de vitesses", "Valeurs de système") sont transférées dans la zone de mémoire RAM inférieure doublement utilisée, sous forme de blocs de données comportant une en-tête ("Header") et une identification de fin ("Tail"). A la fin de leur production, les blocs de données sont transférés dans la zone adaptative de la mémoire flash 1, c'est-à-dire dans le segment 14 ou 15. Les blocs de données comportent alors la structure présentée à la figure 2. Les opérations servant à produire les blocs de données et à les inscrire dans la mémoire flash sont présentées à la figure 14. L'inscription actuelle des données dans la mémoire flash s'effectue avec une fonction "sys_fsh_blkwrite". S'il devait se trouver qu'une place suffisante en mémoire n'est pas disponible dans la zone adaptative de la mémoire flash, une fonction "sysfsh_reorg" servant à la réorganisation de la mémoire flash et à l'inscription suivante des données en mémoire est appelée. Dans l'exemple de réalisation présenté, la sélection des données de fonctionnement à inscrire dans la mémoire flash a lieu en fonction du mode "MODENORMAL", "MODE FORCEREORG" (réorganisation forcée) ou "MODESWTRAP" (piège de logiciel) chaque fois sélectionné. Le mode "MODENORMAL" représente le mode normal du système de commande, par exemple du système de commande de boîte de vitesses, dans lequel des erreurs standard possibles sont détectées et traitées au moyen d'un gestionnaire d'erreurs. Le mode "MODE_FORCE_REORG" représente un mode dans lequel une réorganisation de la mémoire flash est nécessaire avant la mise en mémoire de données. Les tampons et contenus de mémoire sélectionnés dans chacun de ces deux genres de fonctionnement sont les enregistrements d'état d'erreur "ERRSS", dans la mesure o des identifications correspondantes sont placées, la mémoire d'erreurs "errmbuff", les valeurs adaptatives de boîte de vitesses "trmbuff" et les données de système "sys_buff", notamment le nombre d'heures de fonctionnement total. Le mode "MODE SWTRAP" est activé lors de l'apparition d'une erreur de logiciel entraînant une remise à l'état initial du système et il exécute la détermination et la mise en mémoire d'un nombre élevé d'enregistrements d'état d'erreur "err ssbuff [0], [1], [2], [3]", ainsi que de données de fonctionnement "sysbuff". Ainsi que le montre la figure 14, avant la formation des mots de données correspondant aux données de fonctionnement, par exemple les valeurs adaptatives de boîte de vitesses, les données de mémoire d'erreurs ou la durée de fonctionnement total, il est d'abord vérifié si ces valeurs ont essentiellement varié par rapport à l'état précédent. Cela s'effectue en vérifiant si la somme de contrôle ("Checksumme") des données correspondantes a varié (voir les blocs de décision indiqués chaque fois à la partie supérieure). Ce n'est que lorsque les données correspondantes ont varié par rapport à leur état lors du démarrage du système et donc, lorsque la somme de contrôle a varié, que les mots de données correspondants comportant une tête, une identification de fin et une somme de contrôle sont produits et sont placés dans la zone doublement utilisée de la mémoire RAM 16 en vue de l'inscription dans la mémoire flash. Lors du dépôt des mots de données dans la zone de mémoire RAM doublement utilisée, un indicateur global est utilisé, lequel indicateur est établi initialement au début de la zone de mémoire RAM qui est utilisée pour rassembler les mots de données déterminés pour la mémoire flash. Pendant le remplissage de cette zone de données, l'indicateur est constamment soumis à un traitement complémentaire de façon à indiquer constamment la fin des données rassemblées. La fonction responsable de l'inscription des données dans la mémoire flash peut ainsi déterminer l'ensemble des données qui doivent être transmises dans la mémoire flash, par comparaison de la position actuelle de l'indicateur avec la valeur initiale. Le processus de la fonction "MODEFORCE_REORG" est présenté en détail à la figure 15. Si le segment de la mémoire flash utilisé jusqu'à présent pour la mise en mémoire ne suffit plus, le segment de mémoire flash désactivé, jusqu'à présent non utilisé, doit être effacé, afin que les nouvelles données puissent être inscrites dans ce bloc. Aussi bien pour des raisons de sécurité que pour obtenir des indicateurs compatibles, on s'assure que tous les blocs nécessaires sont contenus dans un segment flash (bloc) unique. C'est pourquoi des blocs de données unifiés doivent d'abord être copiés dans le segment qui vient d'être effacé, à partir du segment jusqu'à présent utilisé. En ce qui concerne ces blocs de données, il s'agit de données de fonctionnement qui ont été inscrites non pas pendant le fonctionnement normal du système de commande, mais uniquement à la fin de la fabrication. Il peut par exemple s'agir des valeurs de réglage de régulateur de courant et de données de fabrication. Le mode actuel est ensuite contrôlé. Si le mode "MODEFORCEREORG" déclenché par des systèmes d'application est préfixé, la mémoire flash est réorganisée d'une manière simple, sans qu'il soit tenu compte des valeurs de données de fonctionnement actuelles contenues dans la mémoire RAM. Dans ce mode, le groupe complet des blocs de données de fonctionnement chaque fois les plus récents est transféré dans le segment de mémoire flash désormais à utiliser. En revanche, dans le fonctionnement normal "MODENORMAL", ce sont les valeurs adaptatives actuelles, et autres données de fonctionnement, contenues dans la mémoire RAM qui sont transférées dans le nouveau segment de mémoire flash. La dernière opération est constituée par la désactivation du bloc plein, la première tête de bloc de données passant à cet effet de "0x5A5A" à "0x5A00". Si les indicateurs correspondant aux blocs de données devaient s'avérer ne pas être compatibles, c'est- à-dire si certains blocs de données devaient s'avérer être contenus dans le segment de mémoire flash qui est effacé au début de la fonction de réorganisation, les données sont d'abord bloquées dans la RAM avant le début de l'effacement du segment de mémoire flash. Ces blocs sont ensuite réinscrits avec les nouveaux blocs de données dans le segment de mémoire flash qui vient d'être effacé. La mise en mémoire correcte des blocs de données dans la mémoire flash peut être contrôlée en comparant dans l'ensemble les mots de données contenus dans la section de mémoire RAM avec les mots de données qui viennent d'être copiés dans la mémoire flash.S'ils coïncident, la mise en mémoire correcte est confirmée et, si la coïncidence fait défaut, l'opération de mise en mémoire peut être répétée et/ou une annonce d'erreur être produite. REVEND I CATIONS 1. Procédé de mise en mémoire et de récupération de données dans un système de commande, notamment situé dans un véhicule automobile, qui comprend un calculateur, une mémoire RAM (16) et une mémoire flash (1) dans laquelle des données de fonctionnement de différents genres, qui peuvent varier pendant le fonctionnement du système de commande, peuvent être mises en mémoire de façon telle qu'il se présente d'une manière multiple des données de fonctionnement du même genre, mais d'une ancienneté différente, caractérisé en ce que, lors d'une remise en circuit du système de commande, les données de fonctionnement sont inscrites dans la mémoire RAM (16) en deux phases, dans la première desquelles uniquement certaines valeurs de remplacement précédemment déterminées sont inscrites dans la mémoire RAM (16) sans accéder à la mémoire flash (1), tandis que ce n'est qu'ensuite, dans la seconde phase, que les données de fonctionnement les plus récentes d'un ou plusieurs genres de données, déterminées dans la mémoire flash (1), sont inscrites dans la mémoire RAM (16). 2. Procédé suivant la revendication 1, caractérisé en ce que, lors d'une mise hors circuit du système de commande, il est vérifié si les données de fonctionnement contenues dans la mémoire RAM (16) ont été modifiées pendant le fonctionnement précédent ayant eu lieu à partir de la dernière mise en circuit du système de commande et en ce que seules les données de fonctionnement qui ont varié sont inscrites dans la mémoire flash (1). 3. Procédé suivant la revendication 1 ou 2, caractérisé en ce que les données de fonctionnement sont introduites chacune dans la mémoire flash (1) avec une en-tête caractérisant le genre de données. 4. Procédé suivant l'une des revendications précédentes, caractérisé en ce que la mémoire flash (1) est divisée en plusieurs segments (14, 15) et, lors de la mise hors circuit du système de commande, les données de fonctionnement sont inscrites chacune successivement dans un segment sans remplacement des données de fonctionnement précédentes par des valeurs plus actualisées, jusqu'à ce que ce segment soit plein, et en ce qu'ensuite, les données de fonctionnement sont inscrites dans un segment suivant. 5. Procédé suivant la revendication 4, caractérisé en ce qu'après remplissage de certains segments ou de tous les segments, un segment déjà précédemment rempli est ré-effacé, puis, dans ce segment maintenant efface, des données de fonctionnement normalement invariables, mais nécessaires pour le fonctionnement du système de commande, sont copiées, en provenance d'un autre segment, dans ce segment maintenant effacé. G. Procédé suivant la revendication 4 ou 5, caractérisé en ce que chaque segment comporte une identification qui indique s'il est plein, vide ou partiellement plein. 7. Procédé suivant l'une des revendications 4 à 6, caractérisé en ce que, lors de la mise en circuit du système de commande, il est d'abord procédé, dans le segment qui vient d'être activé, à une recherche des données de fonctionnement les plus récentes, puis, si tous les genres de données de fonctionnement les plus récentes qui sont nécessaires au fonctionnement ne sont pas trouvés dans ce segment, il est procédé à la recherche des données de fonctionnement manquantes dans un segment désactivé. 8. Procédé suivant l'une des revendications précédentes, caractérisé en ce que la mémoire flash (1) est interrogée lors de la mise en circuit du système de commande, les données de fonctionnement des genres considérés qui sont chaque fois les plus récentes sont déterminées et au moins une partie de ces données de fonctionnement est copiée dans la mémoire RAM (16) et/ou il est placé des indicateurs qui indiquent la position et le genre des données de fonctionnement déterminées. 9. Procédé suivant l'une des revendications précédentes, caractérisé en ce que, lors de la lecture de données de fonctionnement dans la mémoire flash (1), l'intégrité de celles-ci est d'abord vérifiée, puis, si ces données sont considérées comme défectueuses, il est procédé à la recherche, dans la mémoire flash, de données de fonctionnement plus anciennes du même genre qui soient intactes. 10. Procédé suivant l'une des revendications précédentes, caractérisé en ce que, pour la détermination de la fin de la zone de mémoire occupée par des données de fonctionnement, la mémoire flash est divisée en blocs virtuels et il est vérifié, bloc par bloc, si les zones de mémoire contenues dans ceux-ci sont vides o contiennent des données et en ce que, lors de la détermination de la fin de la zone de mémoire occupée, un indicateur indiquant cet emplacement est placé. 11. Procédé suivant l'une des revendications précédentes, caractérisé en ce que, lors de la mise hors circuit du système de commande, les valeurs actuelles des données de fonctionnement qui sont contenues dans la mémoire RAM (16) sont recherchées et sont regroupées en blocs de données correspondants qui, avant leur inscription dans la mémoire flash (1), sont pourvus chacun d'une identification indiquant le genre de données. 12. Procédé suivant la revendication 11, caractérisé en ce que, lors de la formation des blocs de données dans la mémoire RAM (16), la grandeur totale résultante des données à transférer dans la mémoire flash (1) est déterminée.