Brevet FR2971349A1 — publié le 20120810

La présente invention appartient au domaine des calculateurs électroniques des véhicules automobiles, et concerne plus particulièrement un procédé de reprogrammation d'un calculateur de véhicule automobile, un support de mémorisation de données dans lequel est mémorisé un logiciel de reprogrammation, et un calculateur de véhicule automobile comportant un tel support de mémorisation de données. Les calculateurs électroniques de véhicules automobiles se présentent de manière connue sous la forme d'un microcontrôleur comportant, outre un ou plusieurs microprocesseurs, des mémoires électroniques (flash, EEPROM, RAM, etc.), des périphériques d'interface, etc. Dans des mémoires non volatiles du calculateur sont mémorisés des produits programmes d'ordinateur, ou « logiciels », constitués d'un ensemble d'instructions de code de programme à exécuter par un microprocesseur afin de réaliser les différentes tâches dudit calculateur. Généralement, trois principaux types de logiciels sont mémorisés dans des mémoires non volatiles du calculateur : - un logiciel d'amorçage, à exécuter notamment au démarrage du calculateur électronique pour initialiser celui-ci, connu dans la littérature anglo-saxonne sous le nom de « Boot Software », - un logiciel applicatif, à exécuter pour réaliser les tâches spécifiques du calculateur électronique, connu dans la littérature anglo-saxonne sous le nom de « Application Software », un logiciel de reprogrammation permettant de charger un nouveau logiciel destiné à remplacer tout ou partie de logiciels mémorisés dans des mémoires non volatiles réinscriptibles du calculateur électronique, connu dans la littérature anglo-saxonne sous le nom de « Loader Software ». Les logiciels d'amorçage et de reprogrammation peuvent être également un même logiciel, connu alors sous le nom de « Boot Loader ». De nos jours, le logiciel d'amorçage, le logiciel de reprogrammation et le logiciel applicatif sont généralement mémorisés dans une même mémoire 2 électronique non volatile réinscriptible, telle qu'une mémoire flash. On comprend que si le logiciel de reprogrammation est exécuté, par un microprocesseur, directement depuis ladite mémoire flash pour modifier le logiciel applicatif et/ou le logiciel d'amorçage, cela entraînera pour la mémoire flash des contraintes d'accès simultané en lecture et en écriture dudit microprocesseur au contenu de ladite mémoire flash. Cependant, les mémoires flash actuelles ont des capacités limitées d'accès simultané en lecture et en écriture. On connait des mémoires flash organisées en un nombre limité de segments différents, dans lesquelles il est possible d'accéder en lecture à un segment, tout en accédant en écriture à un autre segment. Toutefois, il n'est pas rare d'avoir à accéder simultanément à un même segment d'une mémoire flash, à la fois en écriture et en lecture. Pour palier aux capacités limitées d'accès simultané en lecture et en écriture des mémoires flash actuelles, il est connu de copier le logiciel de reprogrammation, préalablement à son exécution, de la mémoire flash vers une mémoire électronique volatile, telle qu'une mémoire RAM. Le logiciel de reprogrammation est alors exécuté depuis la mémoire RAM, de sorte le microprocesseur accède en lecture au contenu de la mémoire RAM, et en écriture au contenu de la mémoire flash. De la sorte, il n'est plus nécessaire de pouvoir accéder simultanément en écriture et en lecture au contenu de la mémoire flash. Une telle approche est cependant difficile à mettre en ceuvre dans le contexte des calculateurs de véhicules automobiles, dans la mesure où la mémoire RAM est généralement, afin de réduire au maximum le coût du calculateur, prévue en quantité limitée. La présente invention a notamment pour objectif de fournir une solution qui permette de réduire le besoin en mémoire RAM. Selon un premier aspect, la présente invention concerne un procédé de reprogrammation d'un calculateur de véhicule automobile par modification du contenu d'une mémoire réinscriptible non volatile dudit calculateur, ladite reprogrammation s'effectuant au moyen d'un logiciel de reprogrammation mémorisé dans la mémoire réinscriptible non volatile, le logiciel de reprogrammation étant organisé en une pluralité de composants logiciels 3 affectés à des tâches à effectuer pour reprogrammer le calculateur et dont l'exécution est initiée par un séquenceur de tâches. Selon l'invention, les composants logiciels du logiciel de reprogrammation sont préalablement répartis en au moins deux ensembles : un premier ensemble comportant chaque composant logiciel à exécuter simultanément à une opération de modification du contenu de la mémoire réinscriptible non volatile, un second ensemble comportant tout ou partie des autres composants logiciels du logiciel de reprogrammation, En outre, lors de la reprogrammation du calculateur : les composants logiciels du second ensemble sont exécutés par un microprocesseur du calculateur depuis la mémoire réinscriptible non volatile, et - le séquenceur de tâches et les composants logiciels à exécuter du premier ensemble sont préalablement copiés dans une mémoire volatile du calculateur, et sont exécutés par le microprocesseur depuis ladite mémoire volatile. De préférence, le séquenceur de tâches est exécuté suivant deux modes de fonctionnement distincts : un premier mode de fonctionnement, dit « mode standard », dans lequel des composants logiciels du premier ensemble et du second ensemble sont exécutés, et un second mode de fonctionnement, dit « mode reprogrammation », utilisé lors des opérations de modification du contenu de la mémoire réinscriptible non volatile, dans lequel seuls des composants logiciels du premier ensemble sont exécutés. De préférence, le procédé comporte : une étape de copie du séquenceur de tâches et des composants logiciels à exécuter du premier ensemble dans la mémoire volatile du calculateur, - une étape d'exécution, depuis la mémoire volatile, du séquenceur de tâches dans le mode standard, une étape de détermination si une requête de modification du contenu de la mémoire réinscriptible non volatile a été reçue, lorsqu'une requête de modification du contenu de la mémoire 4 réinscriptible non volatile a été détectée : une étape d'exécution du séquenceur de tâches dans le mode reprogrammation, au cours de laquelle les opérations de modification indiquées dans la requête sont effectuées, - une étape de détermination s'il reste des opérations de modification du contenu de la mémoire réinscriptible non volatile à effectuer, - lorsqu'il n'y a plus d'opérations de modifications du contenu de la mémoire réinscriptible non volatile à effectuer, le procédé retourne à l'étape d'exécution du séquenceur de tâches dans le mode standard. De préférence, lorsqu'une requête de modification du contenu de la mémoire réinscriptible non volatile est reçue : le séquenceur de tâches en mode standard exécute un composant logiciel de modification virtuelle qui copie la requête dans une mémoire tampon volatile et bascule le séquenceur de tâches dans le mode reprogrammation, - le séquenceur de tâches en mode reprogrammation exécute un composant logiciel de modification réelle qui lit la requête dans la mémoire tampon volatile et effectue les opérations de modification indiquées dans la requête. De préférence, les composants logiciels du premier ensemble sont organisés en plusieurs groupes associés respectivement à des contextes de reprogrammation différents, ledit procédé comportant une étape de détection du contexte de la reprogrammation à effectuer, seuls les composants logiciels du premier ensemble du groupe associé au contexte détecté étant copiés dans la mémoire volatile. De préférence, des informations spécifiques de configuration du séquenceur de tâches sont associées à chaque contexte de reprogrammation, lesdites informations de configuration associées au contexte détecté étant copiées dans la mémoire volatile, ledit procédé comportant une étape de configuration des modes standard et reprogrammation du séquenceur de tâches en fonction desdites informations de configuration. De préférence, les contextes de reprogrammation correspondent à des protocoles de communication différents à mettre en oeuvre, lors de la reprogrammation, entre le calculateur et un dispositif de reprogrammation externe. 5 Selon un second aspect, la présente invention concerne un support de mémorisation de données, du type mémoire électronique réinscriptible non volatile, comportant des instructions d'un logiciel de reprogrammation qui, lorsqu'elles sont exécutées par un microprocesseur d'un calculateur de véhicule automobile, effectuent une reprogrammation dudit calculateur conformément à un procédé selon l'invention. Selon un troisième aspect, la présente invention concerne un calculateur de véhicule automobile comportant un support de mémorisation de données selon l'invention. L'invention sera mieux comprise à la lecture de la description suivante, donnée à titre d'exemple nullement limitatif, et faite en se référant aux figures qui représentent : - Figure 1 : une représentation schématique d'un calculateur 10 de véhicule automobile, - Figure 2: un diagramme représentant schématiquement les principales étapes d'un mode préféré de mise en oeuvre d'un procédé de reprogrammation selon l'invention, Figure 3: un diagramme représentant schématiquement une variante de mise en oeuvre du procédé de reprogrammation représenté sur la figure 2, - Figures 4a et 4b : des représentations schématiques de l'organisation, relative à la reprogrammation d'un calculateur conformément à l'invention, du contenu d'une mémoire flash et d'une mémoire RAM dudit calculateur. La figure 1 représente de façon très schématique un calculateur 10 de véhicule automobile. De manière connue, le calculateur 10 de véhicule automobile comporte un microprocesseur 102 relié à des mémoires électroniques 104, 106 par un bus de données 108. Le calculateur 10 comporte au moins une 6 mémoire réinscriptible non volatile 104, dans laquelle sont mémorisées des instructions de code de programme, ou logiciels, à exécuter pour effectuer les différentes tâches affectées audit calculateur. Le calculateur 10 comporte également au moins une mémoire volatile, dite « mémoire RAM » 106, dans laquelle des données sont copiées temporairement lors du fonctionnement du calculateur 10. Il est à noter que le microprocesseur 102 et les mémoires flash 104 et RAM 106 sont, suivant certains modes de réalisation, intégrés dans un même circuit intégré connu sous le nom de microcontrôleur. Dans le contexte de l'invention, le calculateur 10 est reprogrammé par modification du contenu de la mémoire réinscriptible non volatile 104 au moyen d'un logiciel de reprogrammation mémorisé dans ladite mémoire réinscriptible non volatile. Par « modification du contenu de la mémoire réinscriptible non volatile », on entend une écriture d'un nouveau logiciel à exécuter dans ladite mémoire réinscriptible non volatile et/ou un effacement d'une partie de ladite mémoire réinscriptible non volatile. La présente invention trouve une application particulièrement avantageuse, bien que nullement limitative, dans le cas d'une mémoire réinscriptible non volatile 104 à capacité limitée d'accès simultané en lecture et en écriture (ou effacement), telle qu'une mémoire flash. Dans la suite de la description, on se place de manière non limitative dans le cas où la mémoire réinscriptible non volatile 104 est une mémoire flash. Le logiciel de reprogrammation comporte notamment un séquenceur de tâches et des composants logiciels dont l'exécution est initiée par ledit séquenceur de tâches. Un séquenceur de tâches peut être assimilé à un système d'exploitation. Toutefois, en pratique, un séquenceur de tâches d'un logiciel de reprogrammation d'un calculateur 10 de véhicule automobile peut être un programme simple, qui se contente d'exécuter de façon séquentielle et récurrente un certain nombre de composants logiciels affectés à des tâches à effectuer pour reprogrammer le calculateur 10. Dans son principe, un procédé 50 de reprogrammation selon l'invention repose sur une répartition préalable des composants logiciels en au moins deux sous-ensembles : 7 un premier ensemble comportant chaque composant logiciel à exécuter simultanément à une opération de modification du contenu de la mémoire flash 104, un second ensemble comportant tout ou partie des autres 5 composants logiciels du logiciel de reprogrammation. Lors de la reprogrammation du calculateur 10, le logiciel de reprogrammation est exécuté par le microprocesseur 102 du calculateur 10. Les composants logiciels du second ensemble sont exécutés depuis la mémoire flash 104. Le séquenceur de tâches et les composants logiciels à 10 exécuter du premier ensemble sont préalablement copiés dans la mémoire RAM 106 du calculateur 10, et sont exécutés depuis ladite mémoire RAM. Il est à noter que les composants logiciels du premier ensemble ne sont pas nécessairement des composants logiciels exécutés exclusivement lors des opérations de modification du contenu de la mémoire flash 104. 15 Chaque composant logiciel susceptible d'être exécuté simultanément à une opération de modification du contenu de la mémoire flash 104 doit être placé dans le premier ensemble et doit être exécuté depuis la mémoire RAM 106. Cette répartition des composants logiciels en deux ensembles, dont seulement le premier ensemble est exécuté depuis la mémoire RAM 106, 20 permet de réduire la quantité de données à copier dans la mémoire RAM 106 pour effectuer la reprogrammation du calculateur 10. En effet, seule une partie des composants logiciels est copiée dans la mémoire RAM 106, et non tous les composants logiciels du logiciel de reprogrammation. Il est à noter que rien n'exclut, suivant certains modes de mise en 25 oeuvre du procédé 50 de reprogrammation, d'affecter certains composants logiciels qui ne sont jamais exécutés simultanément à une opération de modification du contenu de la mémoire flash 104 à un troisième ensemble de composants logiciels à exécuter depuis la mémoire RAM 106. En d'autres termes, il est possible d'exécuter certains composants logiciels depuis la 30 mémoire RAM 106, même si ceux-ci ne sont jamais exécutés simultanément à une opération de modification du contenu de la mémoire flash 104. De préférence, tous les composants logiciels appartiennent soit au premier ensemble soit au second ensemble. En d'autres termes, le second 8 ensemble comporte tous les composants logiciels non identifiés comme susceptibles d'être exécutés simultanément à une opération de modification du contenu de la mémoire flash 104. On comprend que, de la sorte, la quantité de données à copier temporairement dans la mémoire RAM 106 est minimisée et réduite aux seuls composants logiciels du premier ensemble. Dans la suite de la description, on se place de manière non limitative dans le cas où tous les composants logiciels appartiennent soit au premier ensemble soit au second ensemble. De préférence, le séquenceur de tâches comporte deux modes 10 distincts de fonctionnement : un premier mode de fonctionnement, dit «mode standard », dans lequel des composants logiciels du premier ensemble et du second ensemble sont exécutés, un second mode de fonctionnement, dit « mode 15 reprogrammation », utilisé lors des opérations de modification du contenu de la mémoire flash 104, dans lequel seuls des composants logiciels du premier ensemble sont exécutés. Du fait de ces deux modes distincts de fonctionnement, et du fait que le séquenceur de tâches est lui-même exécuté depuis la mémoire RAM 106, 20 on assure qu'aucun accès simultané en lecture et en écriture (ou effacement) à la mémoire flash 104 ne sera nécessaire. En effet, on comprend que si le séquenceur de tâches est exécuté en mode reprogrammation lorsqu'une opération de modification du contenu de la mémoire flash 104 est en cours, aucun accès en lecture à la mémoire flash 104 ne sera requis puisque seuls 25 des composants logiciels du premier ensemble seront exécutés depuis la mémoire RAM 106. La figure 2 représente les principales étapes d'un mode préféré de mise en oeuvre du procédé 50 de reprogrammation, exploitant les modes standard et reprogrammation du séquenceur de tâches. 30 Tel qu'illustré par la figure 2, le procédé 50 comporte une étape 52 préalable de copie du séquenceur de tâches et des composants logiciels à exécuter du premier ensemble dans la mémoire RAM 106 du calculateur 10. Ensuite, le procédé 50 comporte : 9 - une étape 54 d'exécution, depuis la mémoire RAM 106, du séquenceur de tâches dans le mode standard, une étape 55 de détermination si une requête de modification du contenu de la mémoire flash 104 a été reçue ; tant qu'aucune requête de modification n'est détectée (référence 550), le procédé 50 poursuit l'étape 54 d'exécution du séquenceur de tâches dans le mode standard, - lorsqu'une requête de modification du contenu de la mémoire flash 104 a été détectée (référence 552) : une étape 56 d'exécution du séquenceur de tâches dans le mode reprogrammation, au cours de laquelle les opérations de modification indiquées dans la requête sont effectuées, une étape 57 de détermination si toutes les opérations de modification du contenu de la mémoire flash 104 ont été effectuées ; tant qu'il reste des opérations à effectuer (référence 570), le procédé 50 poursuit l'étape 56 d'exécution du séquenceur de tâches dans le mode reprogrammation, - lorsqu'il n'y a plus d'opérations de modification du contenu de la mémoire flash 104 à effectuer (référence 572), le procédé 50 retourne à l'étape 54 d'exécution du séquenceur de tâches dans le mode standard. De préférence, le logiciel de reprogrammation comporte un composant logiciel de modification virtuelle dans la mémoire flash 104, qui est incorporé dans le second ensemble de composants logiciels. Le composant logiciel de modification virtuelle est exécuté, par le séquenceur de tâches en mode standard, lorsqu'une requête de modification du contenu de la mémoire flash 104 est détectée. Le composant logiciel de modification virtuelle ne modifie pas le contenu de la mémoire flash 104 conformément à ce qui est indiqué dans la requête (le séquenceur de tâches est en mode standard et ledit composant logiciel de modification virtuelle appartient au second ensemble de composants logiciels). Par contre, le composant logiciel de modification virtuelle copie la requête dans une mémoire tampon volatile, par exemple la mémoire RAM 106. 10 Lorsque que la requête a été copiée dans la mémoire tampon volatile, le composant logiciel de modification virtuelle bascule le séquenceur de tâches dans le mode reprogrammation. Dans le mode reprogrammation, le séquenceur de tâches exécute notamment un composant logiciel de modification réelle qui va modifier le contenu la mémoire flash 104 conformément à ce qui est indiqué dans la requête mémorisée dans la mémoire tampon volatile (dans laquelle ladite requête a été copiée par le composant logiciel de modification virtuelle). Lorsque que toutes les opérations de modification indiquées dans la requête ont été effectuées, le composant logiciel de modification réelle bascule le séquenceur de tâches dans le mode standard. Une telle solution, basée sur l'utilisation de deux composants logiciels de modification du contenu de la mémoire flash 104, l'une réelle l'autre virtuelle, présente l'avantage d'être particulièrement robuste en termes d'interdiction d'accès simultané en lecture et en écriture (ou effacement) à la mémoire flash 104. Dans une variante du procédé 50, compatible avec l'un quelconque des modes de mise en oeuvre précédemment décrits, les composants logiciels du premier ensemble sont préalablement organisés en plusieurs groupes associés respectivement à des contextes de reprogrammation différents. La figure 3 représente un exemple de mise en ceuvre de cette variante dans lequel le procédé 50 comporte les mêmes étapes que le mode de mise en ceuvre décrit en référence à la figure 2, et comporte en outre une étape 51 préalable de détection du contexte de la reprogrammation à effectuer. Au cours de l'étape 52 de copie de composants logiciels à exécuter, seuls les composants logiciels du groupe associé au contexte détecté sont copiés dans la mémoire RAM 106. Par exemple, les contextes de reprogrammation correspondent à des protocoles de communication différents à mettre en oeuvre, lors de la reprogrammation, entre le calculateur 10 et un dispositif externe (non représenté sur les figures). En effet, la reprogrammation d'un calculateur 10 s'effectue généralement en connectant un dispositif externe audit calculateur. Pour échanger des données, par exemple pour transférer un nouveau logiciel à 11 écrire dans la mémoire flash 104, le dispositif externe et le calculateur 10 doivent supporter un même protocole de communication. En pratique, il est généralement nécessaire, pour un calculateur 10 de véhicule automobile, de supporter plusieurs protocoles de communication différents (CAN, FlexRay, Ethernet, etc.), de sorte qu'il est avantageux d'organiser les composants logiciels en groupes associés ces différents protocoles de communication. En interdisant au calculateur 10 de communiquer simultanément avec deux dispositifs externes utilisant deux protocoles de communication différents, seul le groupe de composants logiciels associé au protocole de communication à utiliser doivent être copiés dans la mémoire RAM 106. De la sorte, la quantité de données à mémoriser temporairement dans la mémoire RAM 106 est réduit, et la taille requise pour la mémoire RAM 106 est également réduite. En pratique, il peut s'avérer nécessaire de configurer le séquenceur de tâches en fonction du contexte de reprogrammation, les tâches à exécuter pouvant varier d'un contexte de reprogrammation à un autre. Dans une variante du procédé 50, compatible avec l'un quelconque des modes de mise en oeuvre précédemment décrits, des informations spécifiques de configuration du séquenceur de tâches sont associées à chaque contexte de reprogrammation. Les informations de configuration associées à un contexte de reprogrammation permettent de configurer le séquenceur de tâches pour qu'il exécute les tâches prévues pour ce contexte. Lesdites informations de configuration associées au contexte détecté sont également copiées depuis la mémoire flash 104 dans la mémoire RAM 106. Le procédé 50 de reprogrammation comporte alors une étape 53 de configuration des modes standard et reprogrammation du séquenceur de tâches en fonction desdites informations de configuration mémorisées dans la mémoire RAM 106. Etant donné que seules les informations de configuration du contexte de reprogrammation détecté sont copiées dans la mémoire RAM 106, celles-ci peuvent être copiées toujours à la même adresse de la mémoire RAM 106, relativement au séquenceur de tâches. De la sorte, il est possible de préconfigurer ledit séquenceur de tâches pour qu'il aille lire les informations de contrôle à partir d'une adresse prédéfinie. A contrario, on comprend que si le 12 séquenceur de tâches devait lire les informations de contrôle dans la mémoire flash 104, l'adresse des informations de contrôle dans la mémoire flash 104 dépendrait du contexte de reprogrammation et ne pourrait pas être prédéfinie. La figure 4a représente très schématiquement l'organisation du contenu de la mémoire flash 104. Sur cette figure, seul un logiciel de reprogrammation LR est représenté. Tel qu'indiqué précédemment, le logiciel de reprogrammation LR est organisé en un séquenceur de tâches ST, un premier ensemble E1 et un second ensemble E2 de composants logiciels. Tel que décrit précédemment, le premier ensemble E1 comporte les composants logiciels exécutés simultanément à une opération de modification du contenu de la mémoire flash 104. Le second ensemble E2 comprend des composants logiciels COMP_E2_1 et COMP_E2_2. Le premier ensemble E1 est en outre organisé en groupes de composants logiciels associés à des contextes de reprogrammation différents. Dans l'exemple non limitatif de la figure 4a, on considère deux contextes de reprogrammation auxquels sont associés deux groupes de composants logiciels, désignés respectivement par G1 et G2. Le groupe G1 comprend des composants logiciels COMP_G1_1, COMP_G1_2. Le groupe G2 comprend des composants logiciels COMP_G2_1, COMP_G2_2. Dans la mémoire flash 104 sont également mémorisées d'autres données du logiciel de reprogrammation LR, en particulier les informations de configuration associées aux deux contextes de reprogrammation, désignées respectivement ICI et IC2. La figure 4b représente schématiquement l'organisation du contenu de la mémoire RAM 106, après que le contexte de reprogrammation a été détecté (dans l'exemple illustré par la figure 413 : le contexte de reprogrammation associé au groupe G1 et aux informations de configuration ICI), et après que le séquenceur de tâches ST, le groupe G1 de composants logiciels et les informations de configuration ICI ont été copiées dans la mémoire RAM 106. L'étape suivante est alors l'étape 53 de configuration du séquenceur 13 de tâches ST avec les informations de configuration ICI mémorisées dans la mémoire RAM 106. La présente invention concerne également la mémoire flash 104 dans laquelle sont mémorisées des instructions d'un logiciel de reprogrammation qui, lorsqu'elles sont exécutées par un microprocesseur 102 d'un calculateur 10 de véhicule automobile, effectuent une reprogrammation dudit calculateur conformément au procédé 50 de reprogrammation selon l'un quelconque des modes de mise en oeuvre de l'invention. La présente invention concerne également un calculateur 10 de véhicule automobile comportant une telle mémoire flash 104. La description ci-avant illustre clairement que par ses différentes caractéristiques et leurs avantages, la présente invention atteint les objectifs qu'elle s'était fixés. En particulier, on comprend qu'en ne copiant temporairement dans la mémoire RAM 106 qu'une partie des composants logiciels (ceux du premier ensemble, identifiés comme susceptibles d'être exécutés simultanément à une opération de modification du contenu de la mémoire flash 104), la taille requise pour la mémoire RAM 106 est très réduite par rapport aux solutions de l'art antérieur. De plus, la mise en ceuvre d'un séquenceur de tâches à deux modes de fonctionnement dont l'un, utilisé lors des opérations de modification du contenu de la mémoire flash 104, ne fait appel qu'à des composants logiciels du premier ensemble mémorisés dans la mémoire RAM 106, permet d'assurer qu'aucun accès en lecture à la mémoire flash 104 ne sera réalisé simultanément à un accès en écriture (ou effacement) à la mémoire flash 104. REVENDICATIONS1 Procédé (50) de reprogrammation d'un calculateur (10) de véhicule automobile par modification du contenu d'une mémoire réinscriptible non volatile (104) dudit calculateur, ladite reprogrammation s'effectuant au moyen d'un logiciel de reprogrammation mémorisé dans la mémoire réinscriptible non volatile (104), le logiciel de reprogrammation étant organisé en une pluralité de composants logiciels affectés à des tâches à effectuer pour reprogrammer le calculateur (10) et dont l'exécution est initiée par un séquenceur de tâches, caractérisé en ce que les composants logiciels du logiciel de reprogrammation sont préalablement répartis en au moins deux ensembles : - un premier ensemble comportant chaque composant logiciel à exécuter simultanément à une opération de modification du contenu de la mémoire réinscriptible non volatile (104), - un second ensemble comportant tout ou partie des autres composants logiciels du logiciel de reprogrammation, et en ce que, lors de la reprogrammation du calculateur (10) : - les composants logiciels du second ensemble sont exécutés par un microprocesseur (102) du calculateur (10) depuis la mémoire réinscriptible non volatile (104), - le séquenceur de tâches et les composants logiciels à exécuter du premier ensemble sont préalablement copiés dans une mémoire volatile (106) du calculateur (10), et sont exécutés par le microprocesseur (102) depuis ladite mémoire volatile. 2 - Procédé (50) de reprogrammation selon la revendication 1, caractérisé en ce que le séquenceur de tâches est exécuté suivant deux modes de fonctionnement distincts : - un premier mode de fonctionnement, dit « mode standard », dans lequel des composants logiciels du premier ensemble et du second ensemble sont exécutés, - un second mode de fonctionnement, dit « mode reprogrammation », utilisé lors des opérations de modification du contenu de la mémoire réinscriptible non volatile (104), dans lequel seuls des composants 15 logiciels du premier ensemble sont exécutés. 3 - Procédé (50) de reprogrammation selon la revendication 2, caractérisé en ce qu'il comporte : - une étape (52) de copie du séquenceur de tâches et des composants logiciels à exécuter du premier ensemble dans la mémoire volatile (106) du calculateur (10), - une étape (54) d'exécution, depuis la mémoire volatile (106), du séquenceur de tâches dans le mode standard, - une étape (55) de détermination si une requête de modification du contenu de la mémoire réinscriptible non volatile (104) a été reçue, - lorsqu'une requête de modification du contenu de la mémoire réinscriptible non volatile (104) a été détectée : une étape (56) d'exécution du séquenceur de tâches dans le mode reprogrammation, au cours de laquelle les opérations de modification indiquées dans la requête sont effectuées, - une étape (57) de détermination s'il reste des opérations de modification du contenu de la mémoire réinscriptible non volatile (104) à effectuer, - lorsqu'il n'y a plus d'opérations de modifications du contenu de la mémoire réinscriptible non volatile (104) à effectuer, le procédé retourne à l'étape (54) d'exécution du séquenceur de tâches dans le mode standard. 4 - Procédé (50) selon la revendication 3, caractérisé en ce que, lorsqu'une requête de modification du contenu de la mémoire réinscriptible non volatile (104) est reçue : - le séquenceur de tâches en mode standard exécute un composant logiciel de modification virtuelle qui copie la requête dans une mémoire tampon volatile et bascule le séquenceur de tâches dans le mode reprogrammation, - le séquenceur de tâches en mode reprogrammation exécute un composant logiciel de modification réelle qui lit la requête dans la mémoire tampon volatile et effectue les opérations de modification indiquées dans la requête. 16 - Procédé (50) selon l'une des revendications précédentes, caractérisé en ce que les composants logiciels du premier ensemble sont organisés en plusieurs groupes associés respectivement à des contextes de reprogrammation différents, ledit procédé comportant une étape (51) de 5 détection du contexte de la reprogrammation à effectuer, seuls les composants logiciels du premier ensemble du groupe associé au contexte détecté étant copiés dans la mémoire volatile (106). 6 - Procédé (50) selon la revendication 5, caractérisé en ce que des informations spécifiques de configuration du séquenceur de tâches sont associées à chaque contexte de reprogrammation, lesdites informations de configuration associées au contexte détecté étant copiées (52) dans la mémoire volatile (106), ledit procédé (50) comportant une étape (53) de configuration des modes standard et reprogrammation du séquenceur de tâches en fonction desdites informations de configuration. 7 - Procédé (50) selon l'une des revendications 5 à 6, dans lequel les contextes de reprogrammation correspondent à des protocoles de communication différents à mettre en ceuvre, lors de la reprogrammation, entre le calculateur (10) et un dispositif de reprogrammation externe. 8 - Support de mémorisation de données du type mémoire électronique réinscriptible non volatile (104), caractérisé en ce qu'il comporte des instructions d'un logiciel de reprogrammation qui, lorsqu'elles sont exécutées par un microprocesseur (102) d'un calculateur (10) de véhicule automobile, effectuent une reprogrammation dudit calculateur (10) conformément à un procédé selon l'une des revendications 1 à 7. 9 - Calculateur (10) de véhicule automobile, caractérisé en ce qu'il comporte un support de mémorisation de données selon la revendication 8.