FR2971349A1 - Procede de reprogrammation d'un calculateur, support de memorisation de donnees et calculateur de vehicule automobile - Google Patents

Procede de reprogrammation d'un calculateur, support de memorisation de donnees et calculateur de vehicule automobile Download PDF

Info

Publication number
FR2971349A1
FR2971349A1 FR1100395A FR1100395A FR2971349A1 FR 2971349 A1 FR2971349 A1 FR 2971349A1 FR 1100395 A FR1100395 A FR 1100395A FR 1100395 A FR1100395 A FR 1100395A FR 2971349 A1 FR2971349 A1 FR 2971349A1
Authority
FR
France
Prior art keywords
reprogramming
software
memory
volatile
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1100395A
Other languages
English (en)
Other versions
FR2971349B1 (fr
Inventor
Romain Lafuente
Jean Christophe Seguy
Gunther Schirmbeck
Andre Goebel
Josef Kulzer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vitesco Technologies GmbH
Original Assignee
Continental Automotive GmbH
Continental Automotive France SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Continental Automotive GmbH, Continental Automotive France SAS filed Critical Continental Automotive GmbH
Priority to FR1100395A priority Critical patent/FR2971349B1/fr
Priority to US13/984,613 priority patent/US9223697B2/en
Priority to CN201280008130.9A priority patent/CN103339603B/zh
Priority to PCT/EP2012/000493 priority patent/WO2012107189A2/fr
Publication of FR2971349A1 publication Critical patent/FR2971349A1/fr
Application granted granted Critical
Publication of FR2971349B1 publication Critical patent/FR2971349B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44573Execute-in-place [XIP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

La présente invention concerne un procédé (50) de reprogrammation d'un calculateur (10) par modification du contenu d'une mémoire réinscriptible non volatile (104) dudit calculateur au moyen d'un logiciel de reprogrammation mémorisé dans la mémoire réinscriptible non volatile (104). Le logiciel de reprogrammation comporte un séquenceur de tâches et une pluralité de composants logiciels préalablement répartis en au moins deux ensembles : i) 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), et ii) un second ensemble comportant tout ou partie des autres composants logiciels du logiciel de reprogrammation. Lors de la reprogrammation du calculateur (10), les composants logiciels du second ensemble sont exécutés depuis la mémoire réinscriptible non volatile (104), 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 (106) du calculateur (10), et sont exécutés depuis ladite mémoire volatile.

Description

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.

Claims (4)

  1. 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. 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. 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. 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.
FR1100395A 2011-02-09 2011-02-09 Procede de reprogrammation d'un calculateur, support de memorisation de donnees et calculateur de vehicule automobile Active FR2971349B1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR1100395A FR2971349B1 (fr) 2011-02-09 2011-02-09 Procede de reprogrammation d'un calculateur, support de memorisation de donnees et calculateur de vehicule automobile
US13/984,613 US9223697B2 (en) 2011-02-09 2012-02-03 Computer reprogramming method, data storage medium and motor vehicle computer
CN201280008130.9A CN103339603B (zh) 2011-02-09 2012-02-03 计算机重新编程方法、数据存储介质和机动车辆计算机
PCT/EP2012/000493 WO2012107189A2 (fr) 2011-02-09 2012-02-03 Procede de reprogrammation d'un calculateur, support de memorisation de donnees et calculateur de vehicule automobile

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1100395A FR2971349B1 (fr) 2011-02-09 2011-02-09 Procede de reprogrammation d'un calculateur, support de memorisation de donnees et calculateur de vehicule automobile

Publications (2)

Publication Number Publication Date
FR2971349A1 true FR2971349A1 (fr) 2012-08-10
FR2971349B1 FR2971349B1 (fr) 2015-12-04

Family

ID=44314208

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1100395A Active FR2971349B1 (fr) 2011-02-09 2011-02-09 Procede de reprogrammation d'un calculateur, support de memorisation de donnees et calculateur de vehicule automobile

Country Status (4)

Country Link
US (1) US9223697B2 (fr)
CN (1) CN103339603B (fr)
FR (1) FR2971349B1 (fr)
WO (1) WO2012107189A2 (fr)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016201769A1 (de) * 2016-01-20 2017-07-20 Robert Bosch Gmbh Verfahren zum Aktualisieren von Software eines Steuergerätes, vorzugsweise für ein Kraftfahrzeug
DE102016200711A1 (de) * 2016-01-20 2017-07-20 Robert Bosch Gmbh Verfahren zum Aktualisieren von Software eines Steuergerätes, vorzugsweise für ein Kraftfahrzeug
US10359971B2 (en) * 2017-07-17 2019-07-23 Hewlett Packard Enterprise Development Lp Storing memory profile data of an application in non-volatile memory
US20220229910A1 (en) * 2021-01-19 2022-07-21 Vitesco Technologies GmbH Automobile method for securing a motor vehicle computer

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009074499A1 (fr) * 2007-12-10 2009-06-18 Continental Automotive Gmbh Procédé pour faire fonctionner un appareil de commande et appareil de commande

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5881327A (en) * 1994-03-23 1999-03-09 Fuji Photo Film Co., Ltd. Camera and input/output device for camera
SE518232C2 (sv) * 1999-03-16 2002-09-10 Wm2M Comm Ab Mobilstation med CPU-minne som gränssnitt mot en mångfald, för mobilstationen, externa applikationer
DE10128305A1 (de) * 2001-06-12 2002-12-19 Giesecke & Devrient Gmbh Steuereinheit
US20040192373A1 (en) * 2002-12-05 2004-09-30 Galetti Ralph R. Method and circuit for initializing non-volatile memory
US7337317B2 (en) * 2003-07-03 2008-02-26 Hand Held Products, Inc. Memory data copying system for devices
JP4492470B2 (ja) * 2005-07-20 2010-06-30 株式会社デンソー 車載制御装置のデータ書き換え方法および車載制御装置
SE0502820L (sv) * 2005-12-13 2006-12-19 Scania Cv Abp Adaptivt farthållarsystem
US8560012B2 (en) * 2009-11-30 2013-10-15 Panasonic Corporation Communication device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009074499A1 (fr) * 2007-12-10 2009-06-18 Continental Automotive Gmbh Procédé pour faire fonctionner un appareil de commande et appareil de commande

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
ANDREAS PATZER: "Flexible Flash Solution for Every Job - Open standards enable use of generic tool chains", TECHNICAL ARTICLE - VECTOR INFORMATIK, 3 March 2008 (2008-03-03), pages 1 - 8, XP055005338, Retrieved from the Internet <URL:http://www.vector.com/portal/medien/cmc/press/Vector/Flashen_DesignElektronik_200707_PressArticle_EN.pdf> [retrieved on 20110822] *
ANDREAS PATZER: "XCP at the Focal Point of Measurement and Calibration Applications", TECHNICAL ARTICLE, 22 May 2007 (2007-05-22), Vector, pages 1 - 5, XP055005201, Retrieved from the Internet <URL:http://www.vector.com/portal/medien/cmc/press/PMC/XCP_UseCases_ElektronikAutomotive_200705_PressArticle_EN.pdf> [retrieved on 20110818] *
HUNG-MANH PHAM ET AL: "Reconfigurable ECU communications in Autosar Environment", INTELLIGENT TRANSPORT SYSTEMS TELECOMMUNICATIONS,(ITST),2009 9TH INTERNATIONAL CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, 20 October 2009 (2009-10-20), pages 581 - 585, XP031619123, ISBN: 978-1-4244-5346-7 *
MENTOR GRAPHICS: "Volcano Bootloader", MENTOR GRAPHICS - AUTOMOTIVE DATASHEET, 1 January 2007 (2007-01-01), pages 1 - 2, XP055005532, Retrieved from the Internet <URL:http://www.mentor.com/products/vnd/upload/VolcanoBootloader_DS.pdf> [retrieved on 20110824] *
PETER LIEBSCHER: "Loading automotive software made easy by a CAN/LIN flash bootloader", ECE MAGAZINE, 1 May 2004 (2004-05-01), pages 24 - 25, XP055004102 *

Also Published As

Publication number Publication date
CN103339603B (zh) 2017-10-13
WO2012107189A2 (fr) 2012-08-16
CN103339603A (zh) 2013-10-02
FR2971349B1 (fr) 2015-12-04
US20140025870A1 (en) 2014-01-23
US9223697B2 (en) 2015-12-29
WO2012107189A3 (fr) 2012-10-26

Similar Documents

Publication Publication Date Title
FR2671223A1 (fr) Memoire semiconductrice remanente pour ordinateur personnel.
WO2009156615A1 (fr) Procede et dispositif de mise a jour d&#39;application informatique
EP2786317B1 (fr) Ecriture de données dans une mémoire non volatile de carte à puce
EP2555110A1 (fr) Système de téléphone mobile intelligent et procédé d&#39;amorçage de celui-ci
WO2000038067A1 (fr) Systeme de memorisation comprenant des moyens de gestion d&#39;une memoire avec anti-usure et procede de gestion anti-usure d&#39;une memoire
WO2013045101A1 (fr) Procede d&#39;effacement d&#39;informations memorisees dans une memoire reinscriptible non volatile, support de memorisation et calculateur de vehicule automobile
AU2015236460A1 (en) User selectable operating systems
FR2971349A1 (fr) Procede de reprogrammation d&#39;un calculateur, support de memorisation de donnees et calculateur de vehicule automobile
US20210334083A1 (en) Method and Apparatus for Upgrading Firmware of Transfer Device on Mobile Carrier, and Non-Transitory Storage Medium
CN105159716A (zh) 一种存储器件初始化方法和电子设备
EP0769742B1 (fr) Composant électronique à mémoire non volatile effaçable électriquement
EP3246820A1 (fr) Gestion du stockage dans une mémoire flash
EP2834741A1 (fr) Procédé de modification en mémoire d&#39;un ensemble de données
EP2048576B2 (fr) Procédé de mise à jour sécurisée d&#39;un programme à lancement automatique et entité électronique portable le mettant en oeuvre
CN108829460A (zh) 车载终端快速启动的方法、装置及车载终端
WO1997041510A1 (fr) Procede et dispositif permettant a un programme fige de pouvoir evoluer
EP3924831A1 (fr) Procédé de mise à jour d&#39;un calculateur automobile de façon à lui ajouter une fonctionnalité supplémentaire
EP2383746B1 (fr) Procédé d&#39;écriture et de lecture dans une mémoire d&#39;atomicité
FR2851349A1 (fr) Procede de gestion d&#39;une pile de microprocesseur pour la sauvegarde de donnees contextuelles
FR3074317B1 (fr) Procede d&#39;acces a une zone memoire non volatile de type flash d&#39;un element securise, tel qu&#39;une carte a puce
EP3422233B1 (fr) Procédé de protection d&#39;un dispositif électronique exécutant un programme contre des attaques par injection de faute
EP3131005A1 (fr) Equipement électronique ferroviaire comprenant un programme de démarrage comportant une ou plusieurs partitions de démarrage, véhicule ferroviaire et système ferroviaire associés
FR3077399A1 (fr) Dispositif et procede pour eviter l’obsolescence des calculateurs a logiciel telechargeable utilisant une memoire a duree de retention limitee
FR3077892A1 (fr) Système et procédé d&#39;enregistrement d&#39;une transaction associée à une mémoire non volatile orientée page
CA3179748A1 (fr) Proced de verrouillage d&#39;une memoire non-volatile reinscriptible et dispositif electronique mettant en oeuvre ledit procede

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 11

TP Transmission of property

Owner name: VITESCO TECHNOLOGIES, DE

Effective date: 20210309

CA Change of address

Effective date: 20220103

PLFP Fee payment

Year of fee payment: 12

PLFP Fee payment

Year of fee payment: 13

PLFP Fee payment

Year of fee payment: 14