FR3106677A1 - Method for updating a list of instructions for starting an electronic control unit - Google Patents

Method for updating a list of instructions for starting an electronic control unit Download PDF

Info

Publication number
FR3106677A1
FR3106677A1 FR2000642A FR2000642A FR3106677A1 FR 3106677 A1 FR3106677 A1 FR 3106677A1 FR 2000642 A FR2000642 A FR 2000642A FR 2000642 A FR2000642 A FR 2000642A FR 3106677 A1 FR3106677 A1 FR 3106677A1
Authority
FR
France
Prior art keywords
list
instructions
boot
boot instructions
control unit
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
FR2000642A
Other languages
French (fr)
Other versions
FR3106677B1 (en
Inventor
Noé FIGUET
Sylvain RAUPACH
Matthieu COURRIER
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.)
Continental Automotive Technologies GmbH
Original Assignee
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 France SAS filed Critical Continental Automotive France SAS
Priority to FR2000642A priority Critical patent/FR3106677B1/en
Publication of FR3106677A1 publication Critical patent/FR3106677A1/en
Application granted granted Critical
Publication of FR3106677B1 publication Critical patent/FR3106677B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]

Landscapes

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

Abstract

L’invention concerne une unité de contrôle électronique (1) pour véhicule automobile, comprenant un espace mémoire (MEM), comprenant une zone mémoire de démarrage (MEMd) configurée pour stocker une liste d’instructions de démarrage (Ld), ledit espace mémoire (MEM) étant configuré pour stocker une première et une deuxième liste d’instructions d’amorçage (L1, L2), et une liste d’instructions applicative (La), l’unité de contrôle électronique (1) comprend une zone de mémoire vive (MV), dans laquelle peut être copiée la première ou la deuxième liste d’instructions d’amorçage (L1, L2), la zone mémoire applicative (MEMa) est configurée pour recevoir une demande de mise à jour, la liste d’instructions de démarrage (Ld) est configurée pour vérifier la validité de la première liste d’instructions d’amorçage (L1), la copie de la première liste d’instructions d’amorçage (L1) dans la zone de mémoire vive (MV) est configurée pour synchroniser la première et la deuxième liste d’instructions d’amorçage (L1, L2) et mettre à jour la première liste d’instructions d’amorçage (L1). Figure pour l’abrégé : Fig. 1The invention relates to an electronic control unit (1) for a motor vehicle, comprising a memory space (MEM), comprising a start-up memory area (MEMd) configured to store a list of start-up instructions (Ld), said memory space (MEM) being configured to store a first and a second list of priming instructions (L1, L2), and a list of application instructions (La), the electronic control unit (1) comprises a memory area live (MV), into which can be copied the first or the second list of boot instructions (L1, L2), the application memory area (MEMa) is configured to receive an update request, the list of boot instructions (Ld) is configured to check the validity of the first list of boot instructions (L1), copying the first list of boot instructions (L1) to the RAM area (MV) is configured to synchronize the first and second list of bootstrap instructions ge (L1, L2) and update the first list of boot instructions (L1). Figure for the abstract: Fig. 1

Description

Procédé de mise à jour d’une liste d’instructions d’amorçage d’une unité de contrôle électroniqueMethod for updating a list of boot instructions of an electronic control unit

L’invention concerne le domaine des unités de contrôle électronique montées dans un véhicule, notamment automobile, et plus précisément un procédé de mise à jour d’une liste d’instructions d’amorçage d’une unité de contrôle électronique et l’unité de contrôle électronique permettant de mettre en œuvre ce procédé.The invention relates to the field of electronic control units mounted in a vehicle, in particular an automobile, and more specifically to a method for updating a list of instructions for booting an electronic control unit and the electronic control to implement this process.

De nos jours, un véhicule comprend de manière connue une pluralité d’unités de contrôle électronique («Electronic Control Unit» ou ECU en langue anglaise) permettant chacune d’exécuter au moins une application principale permettant de mettre en œuvre une ou plusieurs fonctions dans le véhicule.Nowadays, a vehicle comprises in known manner a plurality of electronic control units ("Electronic Control Unit" or ECU in English) each allowing to execute at least one main application allowing to implement one or more functions in the vehicle.

Cette application principale est enregistrée sous la forme d’une liste d’instructions dans un espace mémoire, de type mémoire «flash», de l’unité de contrôle électronique. Afin de démarrer cette application principale, l’unité de contrôle électronique comprend de manière connue un chargeur d’amorçage, connu sous le nom de «Flash Boot Loader» (FBL) en langue anglaise. Ce chargeur d’amorçage est également enregistré sous la forme d’une liste d’instructions dans l’espace mémoire de l’unité de contrôle électronique, à l’adresse 0 dudit espace mémoire.This main application is recorded in the form of a list of instructions in a memory space, of the “flash” type memory, of the electronic control unit. In order to start this main application, the electronic control unit comprises in a known manner a boot loader, known as the “Flash Boot Loader” (FBL) in English. This boot loader is also saved in the form of a list of instructions in the memory space of the electronic control unit, at address 0 of said memory space.

Ainsi, au démarrage de l’unité de contrôle électronique, le chargeur d’amorçage, qui est exécuté en premier, vérifie la validité de l’application principale et en commande ensuite l’exécution lorsqu’elle est valide.Thus, when starting the electronic control unit, the bootloader, which is executed first, checks the validity of the main application and then commands its execution when it is valid.

Parfois, il peut être nécessaire de mettre à jour cette application principale. Pour cela, le chargeur d’amorçage est également configuré pour vérifier, avant de commander l’exécution de l’application principale, si une mise à jour de ladite application principale est disponible et en commander l’exécution à la place de celle de l’application principale le cas échéant.Sometimes it may be necessary to update this main application. For this, the boot loader is also configured to check, before ordering the execution of the main application, if an update of said main application is available and to order its execution instead of that of the main application. main application if applicable.

Cependant, parfois, il est également nécessaire de mettre à jour le chargeur d’amorçage. Pour cela, lechargeur d’amorçage efface tout d’abord les instructions de l’application principale enregistrées dans l’espace mémoire, puis copie, dans la zone vide de l’espace mémoire ainsi créée, les instructions d’une applicationde mise à jour dudit chargeur d’amorçage. Une fois copiée, le chargeur d’amorçage commande l’exécution de cette applicationde mise à jour. Lors de son exécution, l’application de mise à jour efface les instructions du chargeur d’amorçage et les remplace par des nouvelles instructions. Une fois les nouvelles instructions du chargeur d’amorçage copiées dans la zone correspondante de l’espace mémoire, l’application de mise à jour du chargeur d’amorçage commande le redémarrage de l’unité de contrôle électronique. Ce redémarrage provoque l’exécution des nouvelles instructions du chargeur d’amorçage, qui commandent alors la suppression de l’application de mise à jour du chargeur d’amorçage puis la réinstallation de l’application principale ou l’installation d’une nouvelle version de l’application principale.However, sometimes it is also necessary to update the boot loader. To do this, the boot loader first erases the instructions of the main application recorded in the memory space, then copies, in the empty zone of the memory space thus created, the instructions of an update application of said boot loader. Once copied, the bootloader commands the execution of this update application. When running, the update application erases instructions from the bootloader and replaces them with new instructions. After the new boot loader instructions have been copied to the corresponding area of the memory space, the boot loader update application commands the restart of the electronic control unit. This reboot causes the execution of the new boot loader instructions, which then command the removal of the update application from the boot loader and then the reinstallation of the main application or the installation of a new version of the main application.

Cependant, il peut arriver qu’un incident survienne sur l’unité de contrôle électronique lors de son fonctionnement, entrainant alors un redémarrage de ladite unité de contrôle électronique. Un problème majeur se pose lorsque cet incident intervient pendant l’intervalle de temps où la zone mémoire associée au chargeur d’amorçage est vide, en cours de suppression ou en cours d’installation. Dans ce cas, il n’est plus possible de redémarrer l’unité de contrôle électronique qui doit alors être retournée en usine pour réinstaller le chargeur d’amorçage.However, it may happen that an incident occurs on the electronic control unit during its operation, then causing a restart of said electronic control unit. A major problem arises when this incident occurs during the time interval when the memory area associated with the boot loader is empty, being removed or being installed. In this case, it is no longer possible to restart the electronic control unit, which must then be returned to the factory to reinstall the boot loader.

En outre, même si seul le chargeur d’amorçage doit être mis à jour, l’application principale doit tout de même être supprimée et réinstallée pour chaque mise à jour du chargeur d’amorçage. Cette suppression et cette réinstallation sont d’ailleurs chronophages. De plus, l’application principale n’est plus exécutable entre sa suppression et sa réinstallation, par exemple pendant plusieurs minutes, ce qui présente un inconvénient important.Also, even though only the bootloader needs to be updated, the main application still needs to be removed and reinstalled for each bootloader update. This deletion and reinstallation are also time-consuming. In addition, the main application is no longer executable between its deletion and its reinstallation, for example for several minutes, which presents a significant disadvantage.

L’invention concerne une unité de contrôle électronique pour véhicule automobile, ladite unité de contrôle électronique comprenant un espace mémoire, ledit espace mémoire comprenant une zone mémoire de démarrage configurée pour stocker une liste d’instructions de démarrage, une zone mémoire d’amorçage principale configurée pour stocker une première liste d’instructions d’amorçage, une zone mémoire d’amorçage secondaire configurée pour stocker une deuxième liste d’instructions d’amorçage et une zone mémoire applicative configurée pour stocker une liste d’instructions applicative, l’unité de contrôle électronique comprend également une zone de mémoire vive, dans laquelle peut être copiée la première liste d’instructions d’amorçage ou la deuxième liste d’instructions d’amorçage, l’unité de contrôle électronique étant caractérisée en ce que :

  1. la zone mémoire applicative est configurée pour recevoir une demande de mise à jour,
  2. la liste d’instructions de démarrage est configurée pour vérifier la validité de la première liste d’instructions d’amorçage,
  3. la copie de la première liste d’instructions d’amorçage dans la zone de mémoire vive est configurée pour :
    1. réaliser la synchronisation entre la première liste d’instructions d’amorçage et la deuxième liste d’instructions d’amorçage,
    2. recevoir un ensemble d’instructions de mise à jour de la première liste d’instructions d’amorçage,
    3. mettre à jour la première liste d’instructions d’amorçage, à partir de l’ensemble d’instructions de mise à jour reçue,
  4. l’unité de contrôle électronique est configurée pour redémarrer suite à la mise à la mise à jour de la première liste d’instructions d’amorçage.
The invention relates to an electronic control unit for a motor vehicle, said electronic control unit comprising a memory space, said memory space comprising a boot memory area configured to store a list of boot instructions, a main boot memory area configured to store a first list of boot instructions, a secondary boot memory area configured to store a second list of boot instructions and an application memory area configured to store an application list of instructions, the unit electronic control unit also comprises a random access memory area, into which the first list of boot instructions or the second list of boot instructions can be copied, the electronic control unit being characterized in that:
  1. the application memory zone is configured to receive an update request,
  2. the boot instruction list is configured to check the validity of the first boot instruction list,
  3. copying the first boot instruction list to the RAM area is configured to:
    1. achieve synchronization between the first list of boot instructions and the second list of boot instructions,
    2. receive a set of update instructions from the first list of boot instructions,
    3. update the first list of boot instructions, from the set of update instructions received,
  4. the electronic control unit is configured to restart following the update of the first list of boot instructions.

Ainsi, si la zone mémoire d’amorçage principale est vide ou si la première liste d’instructions d’amorçage, enregistrée dans la zone mémoire d’amorçage principale, n’est pas utilisable, l’unité de contrôle électronique permet de conserver au moins la deuxième liste d’instructions d’amorçage synchronisée avec la version la plus récente de la première liste d’instructions d’amorçage, et applicable si besoin.Thus, if the main boot memory zone is empty or if the first list of boot instructions, recorded in the main boot memory zone, is not usable, the electronic control unit makes it possible to keep the minus the second boot instruction list synchronized with the most recent version of the first boot instruction list, and applicable as needed.

De plus, l’unité de contrôle électronique permet de conserver la liste d’instructions applicative, toujours applicable si besoin.In addition, the electronic control unit makes it possible to keep the list of application instructions, always applicable if necessary.

De préférence, dans l’unité de contrôle, lorsque la première liste d’instructions d’amorçage est valide, la liste d’instructions de démarrage est configurée pour :

  1. copier la première liste d’instructions d’amorçage dans la zone de mémoire vive,
  2. exécuter la copie de la première liste d’instructions d’amorçage dans la zone de mémoire vive.
Preferably, in the control unit, when the first boot instruction list is valid, the boot instruction list is configured to:
  1. copy the first list of boot instructions to the RAM area,
  2. executing the copy of the first list of boot instructions into the RAM area.

De préférence encore, dans l’unité de contrôle, si la première liste d’instructions d’amorçage n’est pas valide, alors la liste d’instructions de démarrage est configurée pour vérifier la validité de la deuxième liste d’instructions d’amorçage, si la deuxième liste d’instructions d’amorçage est valide, alors, la liste d’instructions de démarrage est configurée pour :

  1. copier la deuxième liste d’instructions d’amorçage dans la zone de mémoire vive,
  2. exécuter la copie de la deuxième liste d’instructions d’amorçage dans la zone de mémoire vive.
Preferably again, in the control unit, if the first list of boot instructions is not valid, then the list of boot instructions is configured to check the validity of the second list of boot instructions. boot, if the second boot instruction list is valid, then the boot instruction list is configured to:
  1. copy the second list of boot instructions into the RAM area,
  2. executing the copy of the second list of boot instructions in the RAM area.

De manière avantageuse, dans l’unité de contrôle, la copie de la deuxième liste d’instructions d’amorçage dans la zone de mémoire vive est configurée pour :

  1. réaliser la synchronisation entre la première liste d’instructions d’amorçage et la deuxième liste d’instructions d’amorçage,
  2. recevoir un ensemble d’instructions de mise à jour de la première liste d’instructions d’amorçage,
  3. mettre à jour la première liste d’instructions d’amorçage, à partir de la liste d’instructions de mise à jour reçue.
Advantageously, in the control unit, the copy of the second list of boot instructions in the RAM area is configured to:
  1. achieve synchronization between the first list of boot instructions and the second list of boot instructions,
  2. receive a set of update instructions from the first list of boot instructions,
  3. updating the first boot instruction list from the received update instruction list.

Avantageusement, dans l’unité de contrôle, afin de réaliser la synchronisation, la copie de la première liste d’instructions d’amorçage ou de la deuxième liste d’instructions d’amorçage est configurée pour vérifier l’intégrité de la première liste d’instructions d’amorçage.Advantageously, in the control unit, in order to achieve synchronization, the copy of the first list of boot instructions or of the second list of boot instructions is configured to check the integrity of the first list of boot instructions. bootstrap instructions.

L’invention concerne également un véhicule, notamment automobile, comprenant au moins une unité de contrôle telle que décrite précédemment.The invention also relates to a vehicle, in particular a motor vehicle, comprising at least one control unit as described above.

L’invention concerne également un procédé de mise à jour d’une liste d’instructions d’amorçage d’une unité de contrôle électronique, telle que décrite précédemment, ledit procédé étant remarquable en ce qu’il comprend les étapes de :

  1. réception d’une demande de mise à jour,
  2. après réception de la demande de mise à jour, vérification de la validité de la première liste d’instructions d’amorçage,
  3. synchronisation de la première liste d’instructions d’amorçage et de la deuxième liste d’instructions d’amorçage, après vérification de la validité de la première liste d’instructions d’amorçage,
  4. réception d’un ensemble d’instructions de mise à jour de la première liste d’instructions d’amorçage,
  5. mise à jour de la première liste d’instructions d’amorçage à partir de l’ensemble d’instructions de mise à jour reçu,
  6. redémarrage de l’unité de contrôle électronique.
The invention also relates to a method for updating a list of boot instructions of an electronic control unit, as described above, said method being noteworthy in that it comprises the steps of:
  1. receipt of an update request,
  2. after receiving the update request, checking the validity of the first list of boot instructions,
  3. synchronization of the first list of boot instructions and the second list of boot instructions, after checking the validity of the first list of boot instructions,
  4. receiving a set of instructions for updating the first list of boot instructions,
  5. updating the first list of boot instructions from the set of update instructions received,
  6. restarting the electronic control unit.

Ainsi, si la zone mémoire d’amorçage principale est vide ou si la première liste d’instructions d’amorçage, enregistrée dans la zone mémoire d’amorçage principale, n’est pas utilisable, le procédé permet de conserver au moins la deuxième liste d’instructions d’amorçage synchronisée avec la version la plus récente de la première liste d’instructions d’amorçage, et applicable si besoin.Thus, if the main boot memory zone is empty or if the first list of boot instructions, recorded in the main boot memory zone, is not usable, the method makes it possible to keep at least the second list of boot instructions synchronized with the most recent version of the first list of boot instructions, and applicable if necessary.

De plus, le procédé permet de conserver la liste d’instructions applicative, toujours applicable si besoin.In addition, the method makes it possible to keep the list of application instructions, which can still be applied if necessary.

De préférence, après l’étape de vérification de la validité de la première liste d’instructions d’amorçage, si la première liste d’instructions d’amorçage est valide, le procédé comprend :

  1. une étape de copie de la première liste d’instructions d’amorçage dans la zone de mémoire vive,
  2. une étape d’exécution de la copie de la première liste d’instructions d’amorçage dans la zone de mémoire vive.
Preferably, after the step of verifying the validity of the first list of boot instructions, if the first list of boot instructions is valid, the method comprises:
  1. a step of copying the first list of boot instructions into the RAM area,
  2. a step of executing the copying of the first list of boot instructions into the RAM area.

De préférence encore, si la première liste d’instructions d’amorçage n’est pas valide, alors le procédé comprend une étape de vérification de la validité de la deuxième liste d’instructions d’amorçage, si la deuxième liste d’instructions d’amorçage est valide, le procédé comprend :

  1. une étape de copie de la deuxième liste d’instructions d’amorçage dans la zone de mémoire vive,
  2. une étape d’exécution de la copie de la deuxième liste d’instructions d’amorçage dans la zone de mémoire vive.
Preferably again, if the first list of boot instructions is not valid, then the method comprises a step of verifying the validity of the second list of boot instructions, if the second list of instructions d priming is valid, the process includes:
  1. a step of copying the second list of boot instructions into the RAM area,
  2. a step of executing the copying of the second list of boot instructions into the RAM area.

Avantageusement, l’étape de synchronisation du procédé comprend :

  1. une étape de comparaison de la première liste d’instructions d’amorçage et de la deuxième liste d’instructions d’amorçage,
  2. si la première liste d’instructions d’amorçage et la deuxième liste d’instructions d’amorçage sont différentes : une étape de vérification de l’intégrité de la première liste d’instructions d’amorçage,
    1. si la première liste d’instructions d’amorçage est intègre, alors la première liste d’instructions d’amorçage est copiée, en remplacement de la deuxième liste d’instructions d’amorçage, dans la zone mémoire d’amorçage secondaire,
    2. si la première liste d’instructions d’amorçage n’est pas intègre, une étape de vérification de l’intégrité de la deuxième liste d’instructions d’amorçage, si ladite deuxième liste d’instructions d’amorçage est intègre, alors la deuxième liste d’instructions d’amorçage est copiée, en remplacement de la première liste d’instructions d’amorçage, dans la zone mémoire d’amorçage principale.
Advantageously, the synchronization step of the method comprises:
  1. a step of comparing the first list of boot instructions and the second list of boot instructions,
  2. if the first list of boot instructions and the second list of boot instructions are different: a step for verifying the integrity of the first list of boot instructions,
    1. if the first list of boot instructions is intact, then the first list of boot instructions is copied, replacing the second list of boot instructions, into the secondary boot memory zone,
    2. if the first list of boot instructions is not intact, a step of verifying the integrity of the second list of boot instructions, if said second list of boot instructions is intact, then the second list of boot instructions is copied, replacing the first list of boot instructions, into the main boot memory area.

D’autres caractéristiques et avantages de l’invention apparaîtront encore à la lecture de la description qui va suivre. Celle-ci est purement illustrative et doit être lue en regard des dessins annexés sur lesquels:
: la figure1 illustre un schéma bloc fonctionnel du véhicule selon l’invention,
: la figure2 illustre un mode de réalisation du procédé, lorsque la première liste d’instructions d’amorçage est valide, selon l’invention,
: la figure3 illustre un mode de réalisation du procédé, lorsque la deuxième liste d’instructions d’amorçage est valide, selon l’invention.
Other characteristics and advantages of the invention will become apparent on reading the description which follows. This is purely illustrative and should be read in conjunction with the attached drawings on which:
: figure 1 illustrates a functional block diagram of the vehicle according to the invention,
: figure 2 illustrates an embodiment of the method, when the first list of boot instructions is valid, according to the invention,
: FIG. 3 illustrates an embodiment of the method, when the second list of boot instructions is valid, according to the invention.

En référence à la figure 1, il va être présenté une forme de réalisation d’un véhicule, notamment automobile, selon l’invention.With reference to FIG. 1, an embodiment of a vehicle, in particular automobile, according to the invention will be presented.

Le véhicule comprend au moins une unité de contrôle électronique 1 permettant d’exécuter au moins une application principale permettant de mettre en œuvre une ou plusieurs fonctions dans le véhicule. Afin de démarrer cette application principale, l’unité de contrôle électronique 1 comprend un chargeur d’amorçage, connu sous le nom de «Flash Boot Loader» (FBL) en langue anglaise, se présentant sous la forme d’un ensemble d’instructions dont la fonction est notamment de permettre la mise à jour de l’au moins une application principale lors d’un redémarrage de l’unité de contrôle électronique1. L’application principale et le chargeur d’amorçage sont mis à jour par un outil externe, par exemple un ordinateur connecté au véhicule via une prise de contrôle (par exemple de type «On Board Diagnostic» ou OBD) et un bus CAN du véhicule, de manière connue en soi.The vehicle comprises at least one electronic control unit 1 making it possible to execute at least one main application making it possible to implement one or more functions in the vehicle. In order to start this main application, the electronic control unit 1 comprises a boot loader, known by the name "Flash Boot Loader" (FBL) in English, in the form of a set of instructions whose function is in particular to allow updating of the at least one main application during a restart of the electronic control unit 1 . The main application and the bootloader are updated by an external tool, for example a computer connected to the vehicle via a control socket (for example of the “On Board Diagnostic” or OBD type) and a CAN bus of the vehicle , in a manner known per se.

L’unité de contrôle électronique 1 est montée dans un véhicule, notamment automobile et comprend un espace mémoire MEM, notamment de type mémoire « flash » et une zone de mémoire vive MV.The electronic control unit 1 is mounted in a vehicle, in particular a motor vehicle, and comprises a memory space MEM, in particular of the “flash” memory type and a RAM zone M V .

L’espace mémoire MEM comprend:
- une zone mémoire de démarrage MEMdcomportant une liste d’instructions de démarrage Ld,
- une zone mémoire d’amorçage principale MEM1comportant une première liste d’instructions d’amorçage L1,
- une zone mémoire d’amorçage secondaire MEM2comportant une deuxième liste d’instructions d’amorçage L2,
- une zone mémoire applicative MEMacomportant une liste d’instructions applicative La.
The MEM memory space includes:
- a boot memory area MEM d comprising a list of boot instructions L d ,
- a main boot memory zone MEM 1 comprising a first list of boot instructions L 1 ,
- a secondary boot memory zone MEM 2 comprising a second list of boot instructions L 2 ,
- an application memory zone MEM a comprising a list of application instructions L a .

La liste d’instructions applicative Laest configurée pour s’exécuter au démarrage de l’unité de contrôle électronique 1 et notamment pourexécuter l’au moins une application principale afin de mettre en œuvre une ou plusieurs fonctions du véhicule.The list of application instructions L a is configured to be executed when the electronic control unit 1 is started and in particular to execute the at least one main application in order to implement one or more functions of the vehicle.

Plus précisément, par défaut, la liste d’instructions de démarrage Ldexécute la liste d’instructions applicative Laet donc l’au moins une application principale s’exécute.More precisely, by default, the list of start-up instructions L d executes the list of application instructions L a and therefore the at least one main application is executed.

La liste d’instructions applicative Laest configurée pour recevoir une demande extérieure de mise à jour, envoyée par un outil externe à l’unité de contrôle électronique 1. Que la demande extérieure de mise à jour concerne la première liste d’instructions d’amorçage L1ou la liste d’instructions applicative La, la liste d’instructions applicative Laest configurée pour placer, notamment enregistrer, un indicateur de demande de mise à jour dans la zone de mémoire vive MV.The application instruction list L a is configured to receive an external update request, sent by an external tool to the electronic control unit 1. That the external update request concerns the first instruction list d boot L 1 or the list of application instructions L a , the list of application instructions L a is configured to place, in particular save, an update request indicator in the RAM zone M V .

La liste d’instructions applicative Laest également configurée pour redémarrer l’unité de contrôle électronique 1, sans toutefois couper l’alimentation de l’unité de contrôle électronique 1.The application instruction list L a is also configured to restart the electronic control unit 1, without however cutting off the power supply to the electronic control unit 1.

La liste d’instructions de démarrage Ldcorrespond à une partie de l’ensemble d’instructions du chargeur d’amorçage. La liste d’instructions de démarrage Ldest notamment configurée pour:
- être la première liste d’instructions exécutée au démarrage de l’unité de contrôle électronique 1, quand ladite liste d’instructions de démarrage Lddétecte la présence d’un indicateur de demande de mise à jour enregistré dans la zone mémoire de démarrage MEMd,
- commander la vérification de la validité de la liste d’instructions applicative La, de la première liste d’instructions d’amorçage L1et de la deuxième liste d’instructions d’amorçage L2,
- commander la copie de la première liste d’instructions d’amorçage L1ou de la deuxième liste d’instructions d’amorçage L2, dans la zone de mémoire vive MV.
- commander l’exécution de la liste d’instructions copiée dans la zone de mémoire vive MV.
The boot instruction list L d corresponds to part of the boot loader instruction set. The list of start instructions L d is notably configured for:
- be the first list of instructions executed at startup of the electronic control unit 1, when said list of startup instructions L d detects the presence of an update request indicator recorded in the startup memory zone MEMd ,
- order the verification of the validity of the list of application instructions L a , of the first list of boot instructions L 1 and of the second list of boot instructions L 2 ,
- Order the copy of the first list of bootstrap instructions L 1 or of the second list of bootstrap instructions L 2 , in the RAM zone M V .
- Order the execution of the list of instructions copied into the RAM zone M V .

La première liste d’instructions d’amorçage L1correspond à une partie de l’ensemble d’instructions du chargeur d’amorçage et est exécutée à la demande de la liste d’instructions de démarrage Ld. La première liste d’instructions d’amorçage L1est configurée pour:
- être copiée dans la zone de mémoire vive MVsur requête de la liste d’instructions de démarrage Ldet s’exécuter dans ladite zone de mémoire vive MV,
- être mise à jour à partir d’une liste d’instructions de mise à jour comprise dans une demande de mise à jour envoyée par un outil externe.
The first list of boot instructions L 1 corresponds to part of the set of boot loader instructions and is executed at the request of the list of boot instructions L d . The first L 1 boot instruction list is configured for:
- be copied into the RAM area M V on request from the list of start-up instructions L d and be executed in said RAM area M V ,
- be updated from a list of update instructions included in an update request sent by an external tool.

Plus précisément, lorsque la première liste d’instructions d’amorçage L1est copiée dans la zone de mémoire vive MV, la copie de la première liste d’instructions d’amorçage L1est configurée pours’exécuter dans la mémoire MVafin de mettre à jour la première liste d’instructions d’amorçage L1(originale) enregistrée dans la zone mémoire d’amorçage principale MEM1. Notamment, la copie de la première liste d’instructions d’amorçage L1(enregistrée et exécutée en zone de mémoire vive MV) est configurée pour :
- recevoir un ensemble d’instructions de mise à jour,
- commander la suppression de la première liste d’instructions d’amorçage L1 stockée dans la zone mémoire d’amorçage principale MEM1,
- commander le téléchargement, depuis l’outil externe, d’une nouvelle première liste d’instructions d’amorçage L1_newdans la zone mémoire d’amorçage principale MEM1.
More precisely, when the first list of boot instructions L1is copied into the RAM area MV, the copy of the first list of boot instructions L1is configured to run in memory MVin order to update the first list of boot instructions L1(original) recorded in the main boot memory area MEM1. In particular, the copy of the first list of boot instructions L1(recorded and executed in RAM area MV) is configured for:
- receive a set of update instructions,
- order the deletion of the first list of boot instructions L1 stored in the main boot memory zone MEM1,
- order the download, from the external tool, of a new first list of boot instructions L1_newin the main boot memory area MEM1.

La deuxième liste d’instructions d’amorçage L2est une duplication sécuritaire de la première liste d’instructions d’amorçage L1, qui a pour but d’être exécutée lorsque la première liste d’instructions d’amorçage L1n’est pas valide. La deuxième liste d’instructions d’amorçage L2est configurée pourêtre copiée dans la zone de mémoire vive MVsur requête de la liste d’instructions de démarrage Ldet pour s’exécuter dans ladite zone de mémoire vive MV.The second list of boot instructions L 2 is a secure duplication of the first list of boot instructions L 1 , which is intended to be executed when the first list of boot instructions L 1 does not is not valid. The second list of boot instructions L 2 is configured to be copied into the RAM area M V on request from the list of boot instructions L d and to be executed in said RAM area M V .

Plus précisément, lorsque la deuxième liste d’instructions d’amorçage L2est copiée dans la zone de mémoire vive MV, la copie de la deuxième liste d’instructions d’amorçage L2est configurée pours’exécuter dans la zone de mémoire vive MVafin de mettre à jour la première liste d’instructions d’amorçage L1enregistrée dans la zone mémoire d’amorçage principale MEM1. Notamment, la copie de la deuxième liste d’instructions d’amorçage L2est configurée pour :
- recevoir un ensemble d’instructions de mise à jour,
- commander la suppression de la première liste d’instructions d’amorçage L1stockée dans la zone mémoire d’amorçage principale MEM1,
- commander le téléchargement, depuis l’outil externe, d’une nouvelle première liste d’instructions d’amorçage L1 _newdans la zone mémoire d’amorçage principale MEM1.
More precisely, when the second list of boot instructions L2is copied into the RAM area MV, the copy of the second list of boot instructions L2is configured to run in RAM area MVin order to update the first list of boot instructions L1recorded in the main boot memory area MEM1. In particular, the copy of the second list of boot instructions L2is configured for:
- receive a set of update instructions,
- order the deletion of the first list of boot instructions L1stored in the main boot memory area MEM1,
- order the download, from the external tool, of a new first list of boot instructions L1 _newin the main boot memory area MEM1.

La zone de mémoire vive MV, par exemple de type RAM (pour « Random Access Memory» en langue anglaise), est configurée pour stocker l’un ou l’autre de la première liste d’instructions d’amorçage L1 ou de la deuxième liste d’instructions d’amorçage L2.The RAM area MV, for example of the RAM type (for “Random Access Memory” in English), is configured to store either of the first list of boot instructions L1 or the second list of boot instructions L2.

L’unité de contrôle électronique 1 comprend un processeur apte à mettre en œuvre les listes d’instructions décrites précédemment.The electronic control unit 1 comprises a processor able to implement the lists of instructions described previously.

Il va maintenant être présenté un mode de réalisation du procédé selon l’invention, mis en œuvre par une unité de contrôle électronique 1 telle que présentée précédemment.An embodiment of the method according to the invention will now be presented, implemented by an electronic control unit 1 as presented above.

Le procédé comprend tout d’abord une étape de démarrage de l’unité de contrôle électronique 1. Au démarrage de l’unité de contrôle électronique 1, la liste d’instructions applicative Las’exécute par défaut.The method firstly comprises a step of starting the electronic control unit 1. When the electronic control unit 1 is started, the list of application instructions L a is executed by default.

Le procédé comprend ensuite une étape de réception E0 par la zone mémoire applicative MEMad’une demande extérieure de mise à jour, envoyée par un outil externe à l’unité de contrôle électronique 1.The method then comprises a step of reception E0 by the application memory zone MEM a of an external update request, sent by an external tool to the electronic control unit 1.

La liste d’instructions applicative Laplace alors un indicateur de demande de mise à jour dans la zone de mémoire vive MVet demande le redémarrage de l’unité de contrôle électronique 1, sans toutefois couper l’alimentation de l’unité de contrôle électronique 1.The application instruction list L a then places an update request flag in the RAM zone M V and requests the restarting of the electronic control unit 1, without however cutting off the power supply to the control unit. electronic control 1.

Le procédé comprend donc une étape de redémarrage E1 de l’unité de contrôle électronique, lors de laquelle, la liste d’instructions de démarrage Lds’exécute et détecte la présence de l’indicateur de demande de mise à jour enregistré dans la zone de mémoire vive MV.The method therefore comprises a step E1 of restarting the electronic control unit, during which the list of start-up instructions L d is executed and detects the presence of the update request indicator recorded in the RAM area M V .

De plus, après détection de l’indicateur de demande de mise à jour, la liste d’instructions de démarrage Ld supprime l’indicateur de demande de mise à jour précédemment enregistré dans la zone de mémoire vive MV.Also, after detecting the update request flag, the boot instruction list Ld removes the update request flag previously saved in RAM area MV.

Par ailleurs, lorsque la liste d’instructions de démarrage Lddétecte la présence de l’indicateur de demande de mise à jour, le procédé comprend alors une étape de vérification E2, lors de laquelle la liste d’instructions de démarrage Ldcommande la vérification de la validité de la première liste d’amorçage L1.Furthermore, when the list of start instructions L d detects the presence of the update request indicator, the method then comprises a verification step E2, during which the list of start instructions L d commands verification of the validity of the first boot list L 1 .

La validité de la première liste d’instructions d’amorçage L1est contrôlée grâce à un outil de contrôle de code. Pour cela, il est notamment utilisé le principe du contrôle de redondance cyclique, noté CRC, pour Cyclic Redundancy Check en langue anglaise.The validity of the first list of bootstrap instructions L 1 is checked by means of a code checking tool. For this, the principle of cyclic redundancy check, denoted CRC, for Cyclic Redundancy Check in English is used in particular.

Si la première liste d’amorçage L1est valide, alors le procédé comprend une étape, commandée par la liste d’instructions de démarrage Ld, de copie E3 de la première liste d’instructions d’amorçage L1dans la zone de mémoire vive MV.If the first bootstrap list L 1 is valid, then the method comprises a step, controlled by the boot instruction list L d , of copying E3 of the first bootstrap instruction list L 1 in the zone of RAM M V .

Une fois la première liste d’amorçage L1 copiée dans la zone mémoire vive MV, la liste d’instructions de démarrage Ldcommande l’exécution de la copie de la première liste d’amorçage L1dans la zone de mémoire vive MV.Once the first bootstrap list L1 copied into RAM area MV, the list of boot instructions Ldcommands the execution of the copy of the first boot list L1in RAM area MV.

Le procédé comprend ensuite une étape de synchronisation E4 de la première liste d’instructions d’amorçage L1et de la deuxième liste d’instructions d’amorçage L2, ladite étape de synchronisation E4 étant commandée par la copie de la première liste d’instructions d’amorçage L1enregistrée dans la zone mémoire vive MV.The method then comprises a synchronization step E4 of the first list of boot instructions L 1 and of the second list of boot instructions L 2 , said synchronization step E4 being controlled by the copy of the first list d bootstrap instructions L 1 recorded in the RAM zone M V .

L’étape de synchronisation E4 comprend une étape de comparaison entre la première liste d’instructions d’amorçage L1et la deuxième liste d’instructions d’amorçage L2, enregistrées respectivement dans la zone mémoire d’amorçage principale MEM1et dans la zone mémoire d’amorçage secondaire MEM2de l’espace mémoire MEM.The synchronization step E4 includes a comparison step between the first list of boot instructions L1and the second list of boot instructions L2, recorded respectively in the main boot memory area MEM1and in the secondary boot memory area MEM2memory space MEM.

Si la première liste d’instructions d’amorçage L1 et la deuxième liste d’instructions d’amorçage L2 sont différentes, alors, l’étape de synchronisation E4 comprend une étape de vérification de l’intégrité de la première liste d’instructions d’amorçage L1enregistrée dans la zone mémoire d’amorçage principale MEM1.If the first list of boot instructions L1 and the second list of boot instructions L2 are different, then the synchronization step E4 includes a step for verifying the integrity of the first list of boot instructions L1recorded in the main boot memory area MEM1.

Dans le cas présent, la vérification de l’intégrité consiste en un contrôle de la première liste d’amorçage L1enregistrée dans la zone mémoire d’amorçage principale MEM1à l’instant courant. Autrement dit, il est vérifié si le pré téléchargement de la première liste d’amorçage L1, dans la zone mémoire d’amorçage principale MEM1, a correctement été effectué. Pour cela, il peut être notamment utilisé le principe du contrôle de redondance cyclique CRC, de manière connue en soi.In the present case, the verification of the integrity consists of a check of the first boot list L 1 recorded in the main boot memory zone MEM 1 at the current instant. In other words, it is checked whether the pre-downloading of the first boot list L 1 , into the main boot memory zone MEM 1 , has been correctly carried out. For this, the principle of the CRC cyclic redundancy check may in particular be used, in a manner known per se.

Si la première liste d’instructions d’amorçage L1 est intègre, alors la première liste d’instructions d’amorçage L1 est copiée, en remplacement de la deuxième liste d’instructions d’amorçage L2dans la zone mémoire d’amorçage secondaire MEM2.If the first list of boot instructions L1 is intact, then the first list of boot instructions L1 is copied, replacing the second list of boot instructions L2in the secondary boot memory area MEM2.

Dans un autre mode de réalisation, si la zone mémoire d’amorçage secondaire MEM2est vide, alors, si la première liste d’instructions d’amorçage L1 est intègre, la première liste d’instructions d’amorçage L1 est copiée directement dans la zone mémoire d’amorçage secondaire MEM2.In another embodiment, if the secondary boot memory area MEM2is empty, then if the first list of boot instructions L1 is intact, the first list of boot instructions L1 is copied directly into the secondary boot memory area MEM2.

A l’inverse, si la première liste d’instructions d’amorçage L1 n’est pas intègre, alors l’étape de synchronisation E4 comprend une étape de vérification de l’intégrité de la deuxième liste d’instructions d’amorçage L2. Il est notamment également utilisé le principe du contrôle de redondance cyclique CRC, de manière connue en soi.Conversely, if the first list of boot instructions L1 is not intact, then the synchronization step E4 includes a step for verifying the integrity of the second list of boot instructions L2. In particular, the principle of the CRC cyclic redundancy check is also used, in a manner known per se.

Si la deuxième liste d’instructions d’amorçage L2est effectivement intègre, la deuxième liste d’instructions d’amorçage L2est copiée en remplacement de la première liste d’instructions d’amorçage L1dans la zone mémoire d’amorçage principale MEM1.If the second list of boot instructions L 2 is actually intact, the second list of boot instructions L 2 is copied to replace the first list of boot instructions L 1 in the boot memory area main MEM 1 .

Par ailleurs, si la première liste d’instructions d’amorçage L1 et la deuxième liste d’instructions d’amorçage L2 sont effectivement identiques, alors, le procédé exécute directement l’étape suivante.Moreover, if the first list of boot instructions L1 and the second list of boot instructions L2 are effectively identical, then the process directly executes the next step.

Le procédé comprend ensuite une étape d’indication, par l’outil externe, du type de mise à jour à mettre en œuvre: soit une mise à jour de l’application principale, autrement dit de la liste d’instructions applicative La, soit une mise à jour de la première liste d’instructions d’amorçage L1.The method then comprises a step of indicating, by the external tool, the type of update to be implemented: either an update of the main application, in other words of the list of application instructions L a , or an update of the first list of boot instructions L1.

Si la mise à jour indiquée concerne la première liste d’instructions d’amorçage L1, l’outil externe envoie à l’unité de contrôle électronique 1, et notamment à la copie de la première liste d’instructions d’amorçage L1, un ensemble d’instructions de mise à jour de la première liste d’instructions d’amorçage L1. Le procédé comprend donc une étape de mise à jour E5 de la première liste d’instructions d’amorçage L1à partir de l’ensemble d’instructions de mise à jour.If the update indicated concerns the first list of boot instructions L 1 , the external tool sends to the electronic control unit 1, and in particular to the copy of the first list of boot instructions L 1 , a set of instructions for updating the first list of bootstrap instructions L 1 . The method therefore comprises a step E5 of updating the first list of bootstrap instructions L 1 from the set of update instructions.

En résumé, dans ce cas, la mise à jour de la première liste d’instructions d’amorçage L1est demandée par l’outil externe à l’unité de contrôle électronique 1 et réalisée par l’exécution de la première liste d’instructions L1copiée dans la zone de mémoire vive MV.In summary, in this case, the update of the first list of bootstrap instructions L 1 is requested by the tool external to the electronic control unit 1 and carried out by the execution of the first list of instructions L 1 copied into the RAM zone M V .

L’étape de mise à jour E5 comprend une sous-étape de suppression E51, commandée par l’outil externe, de la première liste d’instructions d’amorçage L1enregistrée dans la zone mémoire d’amorçage principale MEM1.The updating step E5 includes a sub-step E51 of deletion, controlled by the external tool, of the first list of boot instructions L 1 recorded in the main boot memory zone MEM 1 .

Lorsque la sous-étape de suppression E51 est réalisée, le procédé comprend une étape de téléchargement E52, commandée par l’outil externe, lors de laquelle une nouvelle première liste d’instructions d’amorçage L1_newest enregistrée, notamment à partir de la liste d’instructions de mise à jour, dans la zone mémoire d’amorçage principale MEM1.When the deletion sub-step E51 is carried out, the method comprises a downloading step E52, controlled by the external tool, during which a new first list of boot instructions L 1_new is recorded, in particular from the list of update instructions, in the main boot memory area MEM 1 .

Il va de soi que la nouvelle première liste d’instructions d’amorçage L1_newpourrait être enregistrée directement à la place de l’ancienne première liste d’instructions d’amorçage L1sans qu’il y ait besoin d’une sous-étape de suppression.It goes without saying that the new first list of boot instructions L 1_new could be saved directly in place of the old first list of boot instructions L 1 without the need for a sub- removal step.

Une fois la nouvelle première liste d’instructions d’amorçage L1_newtéléchargée, l’outil externe commande la vérification de l’intégrité et/ou de la validité de la nouvelle première liste d’instructions d’amorçage L1_newet dans le cas où la nouvelle première liste d’instructions d’amorçage L1_newest intègre et/ou valide, l’outil externe commande le redémarrage de l’unité de contrôle électronique 1. Once the new first list of boot instructions L 1_new has been downloaded, the external tool controls the verification of the integrity and/or the validity of the new first list of boot instructions L 1_new and in the case where the new first list of bootstrap instructions L 1_new is intact and/or valid, the external tool commands the restarting of the electronic control unit 1.

Le procédé comprend donc une deuxième étape de redémarrage E6 de l’unité de contrôle électronique 1. Au redémarrage, la liste d’instructions applicative Las’exécute.The method therefore comprises a second step E6 of restarting the electronic control unit 1. On restarting, the list of application instructions L a is executed.

En revanche, si la mise à jour indiquée concerne la liste d’instructions applicative La, l’outil externe envoie à l’unité de contrôle électronique 1, et notamment à la copie de la première liste d’instructions d’amorçage L1, un ensemble d’instructions de mise à jour de la liste d’instructions applicative La. Le procédé comprend donc une étape de mise à jour de la liste d’instructions applicative La(non représentée sur les figures), à partir de l’ensemble d’instructions de mise à jour de la liste d’instructions applicative La.On the other hand, if the update indicated concerns the list of application instructions L a , the external tool sends to the electronic control unit 1, and in particular to the copy of the first list of bootstrap instructions L 1 , a set of instructions for updating the list of application instructions L a . The method therefore comprises a step of updating the list of application instructions L a (not represented in the figures), from the set of instructions for updating the list of application instructions L a .

L’étape de mise à jour de la liste d’instructions applicative La comprend une sous-étape desuppression de la liste d’instructions applicative Laenregistrée dans la zone mémoire applicative MEMa. L’étape de mise à jour comprend également une sous étape de téléchargement, lors de laquelle une nouvelle version de l’application principale, autrement dit de la liste d’instructions applicative Laest enregistrée dans la zone mémoire applicative MEMa.The step of updating the list of application instructions L a comprises a sub-step of deleting the list of application instructions L a recorded in the application memory zone MEM a . The update step also includes a downloading sub-step, during which a new version of the main application, in other words of the list of application instructions L a is recorded in the application memory area MEM a .

S’en suit également une étape de vérification de l’intégrité et/ou de la validité de la nouvelle liste d’instructions applicative Laet de redémarrage de l’unité de contrôle électronique 1.There also follows a step of verifying the integrity and/or the validity of the new list of application instructions L a and of restarting the electronic control unit 1.

La liste d’instructions applicative Lapeut de nouveau recevoir une demande de mise à jour, que cela concerne l’application principale ou la première liste d’instructions d’amorçage L1 , The application instruction list L a can again receive an update request, whether it concerns the main application or the first boot instruction list L 1 ,

Si une nouvelle demande de mise à jour est reçue, de même que précédemment, la liste d’instructions applicative Laplace un indicateur de demande de mise à jour dans la zone de mémoire vive MVet demande le redémarrage de l’unité de contrôle électronique 1.If a new update request is received, as before, the application instruction list L a places an update request flag in the RAM area M V and requests the restarting of the processing unit. electronic control 1.

Ainsi, le procédé est de nouveau réitéré. De plus, suite à la nouvelle étape de redémarrage E1, à la nouvelle étape de vérification E2, à la nouvelle étape de copie E3 et à la nouvelle étape de synchronisation E4, la nouvelle liste d’instructions d’amorçage L1_newest enregistrée à la fois dans la zone mémoire d’amorçage principale MEM1et dans la zone mémoire d’amorçage secondaire MEM2.Thus, the method is repeated again. Moreover, following the new restart step E1, the new verification step E2, the new copy step E3 and the new synchronization step E4, the new list of boot instructions L 1_new is saved at both in the main boot memory area MEM 1 and in the secondary boot memory area MEM 2 .

Par ailleurs, en référence à la figure 3, si après l’étape de vérification E2, la première liste d’instructions d’amorçage L1n’est pas valide, alors le procédé comprend une deuxième étape de vérification E2’ de la validité de la deuxième liste d’instruction d’amorçage L2.Furthermore, with reference to FIG. 3, if after the verification step E2, the first list of bootstrap instructions L 1 is not valid, then the method comprises a second verification step E2′ of the validity of the second boot instruction list L 2 .

La validité de la deuxième liste d’instructions d’amorçage L2est contrôlée grâce à un outil de contrôle de code. Pour cela, il est notamment utilisé le principe du contrôle de redondance cyclique CRC.The validity of the second list of bootstrap instructions L 2 is checked using a code check tool. For this, the principle of the CRC cyclic redundancy check is used in particular.

Si la deuxième liste d’instructions d’amorçage L2est valide, alors le procédé comprend une étape de copie E3 de la deuxième liste d’instructions d’amorçage L2dans la zone de mémoire vive MV, ladite étape de copie E3 étant commandée par la liste d’instructions de démarrage Ld. Une fois la deuxième liste d’amorçage L2 copiée dans la zone mémoire vive MV, la liste d’instructions de démarrage Ldcommande l’exécution de la copie de la deuxième liste d’amorçage L2.If the second list of boot instructions L2is valid, then the method comprises a step E3 of copying the second list of boot instructions L2in RAM area MV, said copying step E3 being controlled by the list of start instructions Ld. Once the second bootstrap list L2 copied into RAM area MV, the list of boot instructions Ldcommands the execution of the copy of the second bootlist L2.

Le procédé comprend ensuite également une étape de synchronisation E4 de la première et deuxième liste d’instructions d’amorçage L1et L2, ladite étape de synchronisation E4 étant commandée par la liste d’instructions copiée dans la zone mémoire vive MV ,et donc par la deuxième liste d’amorçage L2.The method then also includes a synchronization step E4 of the first and second list of boot instructions L1and L2, said synchronization step E4 being controlled by the list of instructions copied into the RAM area MV ,and therefore by the second bootstrap list L2.

L’étape de synchronisation E4 comprend une étape de comparaison et une ou plusieurs étapes de vérification de l’intégrité de la première liste d’instructions d’amorçage L2, tel que décrit précédemment.The synchronization step E4 includes a comparison step and one or more steps for verifying the integrity of the first list of bootstrap instructions L 2 , as described above.

Ensuite, une fois l’étape de synchronisation E4 réalisée, le procédé comprend une étape d’indication, par l’outil externe, du type de mise à jour à réaliser.Then, once the synchronization step E4 has been performed, the method includes a step for indicating, by the external tool, the type of update to be performed.

Si la mise à jour indiquée correspond à la mise à jour de la première liste d’instructions d’amorçage L1, le procédé comprend une étape de mise à jour E5, de la première liste d’instructions d’amorçage L1, telle que décrite en référence aux paragraphes précédemment. Si la mise à jour concerne l’application principale, le procédé comprend une étape de mise à jour de la liste d’instructions applicative La, telle que décrit précédemment en référence aux paragraphes précédemment.If the update indicated corresponds to the update of the first list of boot instructions L 1 , the method comprises a step E5 of updating the first list of boot instructions L 1 , such than described with reference to the previous paragraphs. If the update concerns the main application, the method includes a step of updating the list of application instructions L a , as described above with reference to the paragraphs above.

De même, après réalisation de l’étape de mise à jour E5, le procédé comprend une deuxième étape de redémarrage E6 de l’unité de contrôle électronique 1, après laquelle, la liste d’instructions applicative Las’exécute.Similarly, after performing the update step E5, the method comprises a second step E6 of restarting the electronic control unit 1, after which the list of application instructions L a is executed.

La liste d’instructions applicative Lapeut de nouveau recevoir une demande de mise à jour, concernant l’application principale, autrement dit la liste d’instructions applicative La, ou la première liste d’instructions d’amorçage L1. The application instruction list L a can again receive an update request, concerning the main application, in other words the application instruction list L a , or the first boot instruction list L 1 .

Si une nouvelle demande de mise à jour est reçue, de même que précédemment, la liste d’instructions applicative Laplace un indicateur de demande de mise à jour dans la zone de mémoire vive MVet demande le redémarrage de l’unité de contrôle électronique 1.If a new update request is received, as before, the application instruction list L a places an update request flag in the RAM area M V and requests the restarting of the processing unit. electronic control 1.

Ainsi, le procédé est de nouveau réitéré. De plus, suite à la nouvelle étape de redémarrage E1, à la nouvelle étape de vérification E2, à la nouvelle étape de copie E3 et à la nouvelle étape de synchronisation E4, la nouvelle liste d’instructions d’amorçage L1_newest enregistrée à la fois dans la zone mémoire d’amorçage principale MEM1et dans la zone mémoire d’amorçage secondaire MEM2.Thus, the method is repeated again. Moreover, following the new restart step E1, the new verification step E2, the new copy step E3 and the new synchronization step E4, the new list of boot instructions L 1_new is saved at both in the main boot memory area MEM 1 and in the secondary boot memory area MEM 2 .

Ainsi, lorsque l’unité de contrôle électronique 1 démarre ou redémarre, par exemple suite à un incident détecté, même si la zone mémoire d’amorçage principale MEM1est vide, le procédé mis en œuvre par l’unité de contrôle électronique 1 permet de conserver au moins la deuxième liste d’instructions d’amorçage L2synchronisée avec la version la plus récente de la première liste d’instructions d’amorçage L1, et applicable si besoin.Thus, when the electronic control unit 1 starts or restarts, for example following a detected incident, even if the main boot memory zone MEM 1 is empty, the method implemented by the electronic control unit 1 allows to keep at least the second list of boot instructions L 2 synchronized with the most recent version of the first list of boot instructions L 1 , and applicable if necessary.

De plus, avantageusement, le procédé permet de toujours conserver la liste d’instructions applicative La, applicable si besoin.Moreover, advantageously, the method makes it possible to always keep the list of application instructions L a , applicable if necessary.

Enfin, la zone de mémoire vive MVpermet l’exécution de la première ou de la deuxième liste d’instructions d’amorçage L1, L2.Finally, the RAM zone M V allows the execution of the first or the second list of bootstrap instructions L 1 , L 2 .

Claims (10)

Unité de contrôle électronique (1) pour véhicule automobile, ladite unité de contrôle électronique (1) comprenant un espace mémoire (MEM), ledit espace mémoire (MEM) comprenant une zone mémoire de démarrage (MEMd) configurée pour stocker une liste d’instructions de démarrage (Ld), une zone mémoire d’amorçage principale (MEM1) configurée pour stocker une première liste d’instructions d’amorçage (L1), une zone mémoire d’amorçage secondaire (MEM2) configurée pour stocker une deuxième liste d’instructions d’amorçage (L2) et une zone mémoire applicative (MEMa) configurée pour stocker une liste d’instructions applicative (La), l’unité de contrôle électronique (1) comprend également une zone de mémoire vive (MV), dans laquelle peut être copiée la première liste d’instructions d’amorçage (L1) ou la deuxième liste d’instructions d’amorçage (L2), l’unité de contrôle électronique (1) étant caractérisée en ce que:
  1. la zone mémoire applicative (MEMa) est configurée pourrecevoir une demande de mise à jour,
  2. la liste d’instructions de démarrage (Ld) est configurée pourvérifier la validité de la première liste d’instructions d’amorçage (L1),
  3. la copie de la première liste d’instructions d’amorçage (L1) dans la zone de mémoire vive (MV) est configurée pour:
    1. réaliser la synchronisation entre la première liste d’instructions d’amorçage (L1) et la deuxième liste d’instructions d’amorçage (L2),
    2. recevoir un ensemble d’instructions de mise à jour de la première liste d’instructions d’amorçage (L1),
  1. mettre à jour la première liste d’instructions d’amorçage (L1), à partir de l’ensemble d’instructions de mise à jour reçue,
  1. l’unité de contrôle électronique (10) est configurée pour redémarrer suite à la mise à la mise à jour de la première liste d’instructions d’amorçage (L1).
Electronic control unit (1) for a motor vehicle, said electronic control unit (1) comprising a memory space (MEM), said memory space (MEM) comprising a start-up memory zone (MEMd) configured to store a list of boot instructions (Ld), a main boot memory area (MEM1) configured to store a first list of boot instructions (L1), a secondary boot memory area (MEM2) configured to store a second list of boot instructions (L2) and an application memory area (MEMTo) configured to store a list of application instructions (LTo), the electronic control unit (1) also includes a RAM area (MV), into which the first list of boot instructions (L1) or the second boot instruction list (L2), the electronic control unit (1) being characterized in that:
  1. the application memory zone (MEM a ) is configured to receive an update request,
  2. the list of boot instructions (L d ) is configured to check the validity of the first list of boot instructions (L 1 ),
  3. the copy of the first list of boot instructions (L 1 ) in the RAM area (M V ) is configured for:
    1. achieve synchronization between the first list of boot instructions (L 1 ) and the second list of boot instructions (L 2 ),
    2. receive a set of instructions for updating the first list of boot instructions (L 1 ),
  1. updating the first list of boot instructions (L 1 ), from the set of update instructions received,
  1. the electronic control unit (10) is configured to restart following the updating of the first list of boot instructions (L 1 ).
Unité de contrôle (1), selon la revendication précédente, dans laquelle, lorsque la première liste d’instructions d’amorçage (L1) est valide, la liste d’instructions de démarrage (Ld) est configurée pour:
  1. copier la première liste d’instructions d’amorçage (L1) dans la zone de mémoire vive (MV),
  2. exécuter la copie de la première liste d’instructions d’amorçage (L1) dans la zone de mémoire vive (MV).
Control unit (1), according to the preceding claim, in which, when the first list of boot instructions (L1) is valid, the boot instruction list (Ld) is configured for:
  1. copy the first list of boot instructions (L 1 ) into the RAM area (M V ),
  2. execute the copy of the first list of bootstrap instructions (L 1 ) in the RAM area (M V ).
Unité de contrôle (1), selon l’une quelconque des revendications précédentes, dans laquelle, si la première liste d’instructions d’amorçage (L1) n’est pas valide, alors la liste d’instructions de démarrage (Ld) est configurée pour vérifier la validité de la deuxième liste d’instructions d’amorçage (L2), si la deuxième liste d’instructions d’amorçage (L2) est valide, alors, la liste d’instructions de démarrage (Ld) est configurée pour:
  1. copier la deuxième liste d’instructions d’amorçage (L2) dans la zone de mémoire vive (MV),
  2. exécuter la copie de la deuxième liste d’instructions d’amorçage (L2) dans la zone de mémoire vive (MV).
Control unit (1), according to any one of the preceding claims, in which, if the first list of boot instructions (L1) is invalid, then the boot instruction list (Ld) is configured to check the validity of the second list of boot instructions (L2), if the second list of boot instructions (L2) is valid, then the list of boot instructions (Ld) is configured for:
  1. copy the second list of boot instructions (L 2 ) into the RAM area (M V ),
  2. execute the copy of the second list of bootstrap instructions (L 2 ) in the RAM area (M V ).
Unité de contrôle (1), selon la revendication précédente, dans laquelle la copie de la deuxième liste d’instructions d’amorçage (L2) dans la zone de mémoire vive (MV) est configurée pour :
  1. réaliser la synchronisation entre la première liste d’instructions d’amorçage (L1) et la deuxième liste d’instructions d’amorçage (L2),
  2. recevoir un ensemble d’instructions de mise à jour de la première liste d’instructions d’amorçage (L1),
  3. mettre à jour la première liste d’instructions d’amorçage (L1), à partir de la liste d’instructions de mise à jour reçue.
Control unit (1), according to the preceding claim, in which the copy of the second list of boot instructions (L2) in the RAM area (MV) is configured for:
  1. achieve synchronization between the first list of boot instructions (L 1 ) and the second list of boot instructions (L 2 ),
  2. receiving a set of update instructions from the first list of boot instructions (L1),
  3. updating the first list of bootstrap instructions (L 1 ), from the list of update instructions received.
Unité de contrôle (1), selon l’une quelconque des revendications 3 et 4, dans laquelle, afin de réaliser la synchronisation, la copie de la première liste d’instructions d’amorçage (L1) ou de la deuxième liste d’instructions d’amorçage (L2) est configurée pour vérifier l’intégrité de la première liste d’instructions d’amorçage (L1).Control unit (1), according to any one of claims 3 and 4, in which, in order to achieve synchronization, the copying of the first list of boot instructions (L1) or the second boot instruction list (L2) is configured to verify the integrity of the first list of boot instructions (L1). Véhicule, notamment automobile, comprenant au moins une unité de contrôle (1) selon l’une quelconque des revendications 1 à 5.Vehicle, in particular automobile, comprising at least one control unit (1) according to any one of claims 1 to 5. Procédé de mise à jour d’une liste d’instructions d’amorçage d’une unité de contrôle électronique (1), selon l’une quelconque des revendications 1 à 5, ledit procédé étant remarquable en ce qu’il comprend les étapes de:
  1. réception (E0) d’une demande de mise à jour,
  2. après réception (E0) de la demande de mise à jour, vérification (E2) de la validité de la première liste d’instructions d’amorçage (L1),
  3. synchronisation (E4) de la première liste d’instructions d’amorçage (L1) et de la deuxième liste d’instructions d’amorçage (L2), après vérification de la validité de la première liste d’instructions d’amorçage (L1),
  4. réception d’un ensemble d’instructions de mise à jour de la première liste d’instructions d’amorçage (L1),
  5. mise à jour (E5) de la première liste d’instructions d’amorçage (L1) à partir de l’ensemble d’instructions de mise à jour reçu,
  6. redémarrage (E6) de l’unité de contrôle électronique (10).
Method for updating a list of boot instructions of an electronic control unit (1), according to any one of claims 1 to 5, said method being noteworthy in that it comprises the steps of :
  1. receipt (E0) of an update request,
  2. after receipt (E0) of the update request, verification (E2) of the validity of the first list of boot instructions (L 1 ),
  3. synchronization (E4) of the first list of boot instructions (L 1 ) and of the second list of boot instructions (L 2 ), after verification of the validity of the first list of boot instructions ( L1 ),
  4. reception of a set of instructions for updating the first list of boot instructions (L 1 ),
  5. updating (E5) of the first list of bootstrap instructions (L 1 ) from the set of update instructions received,
  6. restarting (E6) of the electronic control unit (10).
Procédé selon la revendication précédente, comprenant, après l’étape de vérification (E2) de la validité de la première liste d’instructions d’amorçage (L1), si la première liste d’instructions d’amorçage (L1) est valide:
  1. une étape de copie de la première liste d’instructions d’amorçage (L1) dans la zone de mémoire vive (MV),
  2. une étape d’exécution de la copie de la première liste d’instructions d’amorçage (L1) dans la zone de mémoire vive (MV).
Method according to the preceding claim, comprising, after the step of verifying (E2) the validity of the first list of boot instructions (L1), if the first list of boot instructions (L1) is validated:
  1. a step of copying the first list of boot instructions (L 1 ) into the RAM zone (M V ),
  2. a step of executing the copy of the first list of bootstrap instructions (L 1 ) in the random access memory zone (M V ).
Procédé, selon l’une quelconque des revendications 7 à 8, dans lequel, si la première liste d’instructions d’amorçage (L1) n’est pas valide, alors le procédé comprend une étape de vérification de la validité de la deuxième liste d’instructions d’amorçage (L2), si la deuxième liste d’instructions d’amorçage (L2) est valide, le procédé comprend:
  1. une étape de copie de la deuxième liste d’instructions d’amorçage (L2) dans la zone de mémoire vive (MV),
  2. une étape d’exécution de la copie de la deuxième liste d’instructions d’amorçage (L2) dans la zone de mémoire vive (MV).
A method, as claimed in any of claims 7 to 8, wherein if the first boot instruction list (L1) is not valid, then the method includes a step of verifying the validity of the second list of boot instructions (L2), if the second list of boot instructions (L2) is valid, the method includes:
  1. a step of copying the second list of bootstrap instructions (L 2 ) into the RAM zone (M V ),
  2. a step of executing the copy of the second list of bootstrap instructions (L 2 ) in the random access memory zone (M V ).
Procédé, selon l’une quelconque des revendications 6 à 8, dans lequel, l’étape de synchronisation (E4)comprend :
  1. une étape de comparaison de la première liste d’instructions d’amorçage (L1) et de la deuxième liste d’instructions d’amorçage (L2),
  2. si la première liste d’instructions d’amorçage (L1) et la deuxième liste d’instructions d’amorçage (L2) sont différentes: une étape de vérification de l’intégrité de la première liste d’instructions d’amorçage (L1),
  3. si la première liste d’instructions d’amorçage (L1) est intègre, alors la première liste d’instructions d’amorçage (L1) est copiée, en remplacement de la deuxième liste d’instructions d’amorçage (L2), dans la zone mémoire d’amorçage secondaire (MEM2),
  4. si la première liste d’instructions d’amorçage (L1) n’est pas intègre, une étape de vérification de l’intégrité de la deuxième liste d’instructions d’amorçage (L2), si ladite deuxième liste d’instructions d’amorçage (L2) est intègre, alors la deuxième liste d’instructions d’amorçage (L2) est copiée, en remplacement de la première liste d’instructions d’amorçage (L1), dans la zone mémoire d’amorçage principale (MEM1).
Method, according to any one of claims 6 to 8, in which the synchronization step (E4) comprises:
  1. a step of comparing the first list of boot instructions (L 1 ) and the second list of boot instructions (L 2 ),
  2. if the first list of boot instructions (L 1 ) and the second list of boot instructions (L 2 ) are different: a step for verifying the integrity of the first list of boot instructions ( L1 ),
  3. if the first list of boot instructions (L 1 ) is intact, then the first list of boot instructions (L 1 ) is copied, replacing the second list of boot instructions (L 2 ) , in the secondary boot memory area (MEM 2 ),
  4. if the first list of boot instructions (L 1 ) is not intact, a step of verifying the integrity of the second list of boot instructions (L 2 ), if said second list of instructions (L 2 ) is intact, then the second list of boot instructions (L 2 ) is copied, replacing the first list of boot instructions (L 1 ), into the memory area of main priming (MEM 1 ).
FR2000642A 2020-01-23 2020-01-23 Method for updating a list of boot instructions of an electronic control unit Active FR3106677B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR2000642A FR3106677B1 (en) 2020-01-23 2020-01-23 Method for updating a list of boot instructions of an electronic control unit

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2000642A FR3106677B1 (en) 2020-01-23 2020-01-23 Method for updating a list of boot instructions of an electronic control unit
FR2000642 2020-01-23

Publications (2)

Publication Number Publication Date
FR3106677A1 true FR3106677A1 (en) 2021-07-30
FR3106677B1 FR3106677B1 (en) 2022-07-22

Family

ID=71094444

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2000642A Active FR3106677B1 (en) 2020-01-23 2020-01-23 Method for updating a list of boot instructions of an electronic control unit

Country Status (1)

Country Link
FR (1) FR3106677B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11398117B1 (en) * 2021-09-02 2022-07-26 Rivian Ip Holdings, Llc Method for real-time ECU crash reporting and recovery

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140136826A1 (en) * 2012-11-13 2014-05-15 Electronics & Telecommunications Research Institute Method and apparatus for updating boot loader
US20190018669A1 (en) * 2017-07-14 2019-01-17 Calamp Corp. Systems and Methods for Failsafe Firmware Upgrades

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140136826A1 (en) * 2012-11-13 2014-05-15 Electronics & Telecommunications Research Institute Method and apparatus for updating boot loader
US20190018669A1 (en) * 2017-07-14 2019-01-17 Calamp Corp. Systems and Methods for Failsafe Firmware Upgrades

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11398117B1 (en) * 2021-09-02 2022-07-26 Rivian Ip Holdings, Llc Method for real-time ECU crash reporting and recovery

Also Published As

Publication number Publication date
FR3106677B1 (en) 2022-07-22

Similar Documents

Publication Publication Date Title
US9792105B2 (en) Method and system for booting and automatically updating software, and recovering from update error, and computer readable recording medium storing method
US9606791B2 (en) Controlled method and apparatus to securely install and update software
CN101425018B (en) Embedded firmware upgrading method and device based on sectional form
KR100915564B1 (en) Method, software and apparatus for application upgrade during execution
WO2009156615A1 (en) Method and device for updating a computer application
CN101158906A (en) Customer terminals program automatic update method
US20110119434A1 (en) System And Method For Safely Updating Thin Client Operating System Over A Network
CN103345411A (en) Method and device for uninstalling application program
EP2510674A1 (en) Method for providing a target application
WO2014040458A1 (en) Systems and methods for repairing system files
FR3106677A1 (en) Method for updating a list of instructions for starting an electronic control unit
EP2031502A1 (en) System and method for managing the restarting of automatic control equipment
US20150039872A1 (en) Multiple Signed Filesystem Application Packages
US8453141B1 (en) High performance install update
CN111258681B (en) BeeGFS service starting method and device
CN113032183A (en) System management method, device, computer equipment and storage medium
FR3089325A1 (en) Method and device for managing software configurations of aircraft equipment
JP2006309289A (en) Backup method, backup system, and program therefor
JP2007066132A (en) Program system
WO2020165518A1 (en) Method for updating a motor vehicle computer in such a way as to add an additional functionality thereto
JP2003280963A (en) Document management system, restoration method, program for performing restoration, and recording medium with program recorded thereon
CN111427720A (en) Database repair method and device, computer equipment and storage medium
US20030237021A1 (en) Automatic restoration of software applications in a mobile computing device
EP1810129A1 (en) Onboard system and computer for holding data unloading in case of computer stoppage
WO2023280756A1 (en) Method for managing a memory area of a motor-vehicle electronic control unit

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20210730

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

TP Transmission of property

Owner name: CONTINENTAL AUTOMOTIVE TECHNOLOGIES GMBH, DE

Effective date: 20230807

PLFP Fee payment

Year of fee payment: 5