Brevet FR3125147A1 — publié le 20230113

Procédé de gestion d’une zone mémoire d’une unité de contrôle électronique de véhicule automobile comprenant notamment les étapes de mise en œuvre (E2) d’un premier ensemble d’instructions de commande (EIC1) par le module de chargement de démarrage de sorte que la configuration matérielle courante (CC) de l’unité de contrôle électronique soit identique à la configuration matérielle requise (CR) pour installer la mise à jour de l’application, de réinitialisation (E4) du module de chargement de démarrage, de vérification de la configuration matérielle requise (CR) par la mise à jour de l’application et, lorsque la configuration requise par la mise à jour de l’application est identique à la configuration matérielle courante (CC) de l’unité de contrôle électronique, d’installation (E6) de la mise à jour (MAJ) de l’application. Figure pour l’abrégé : Fig 2 Procédé de gestion d’une zone mémoire d’une unité de contrôle électronique de véhicule automobile La présente invention concerne le domaine de l’automobile et plus particulièrement un procédé de gestion d’une zone mémoire d’une unité de contrôle électronique de véhicule automobile. De nos jours, les véhicules automobiles mettent en œuvre diverses unités de contrôle électronique (ECU pour « Electronic Control Unit » en langue anglaise) pour commander certains équipements électriques ou électroniques embarqués. A titre d’exemple, il est connu d’utiliser une ou plusieurs unités de contrôle électronique pour contrôler le ou les moteurs du véhicule ou bien les équipements électroniques de bord du véhicule. De manière connue, une unité de contrôle électronique comporte un microcontrôleur associé à une zone mémoire dans laquelle sont stockées des instructions formant une application informatique. Ces instructions permettent à l’unité de contrôle électronique de contrôler les différents équipements en générant et en leur envoyant des commandes. Dans une forme de réalisation existante d’architecture, l’unité de contrôle électronique comprend un module de chargement de démarrage, mis en œuvre par le microcontrôleur, des registres matériels et une application stockée dans la zone mémoire et dédiée au fonctionnement de l’unité de contrôle électronique. Le module de chargement de démarrage, connu de l’homme du métier sous le nom de « bootloader », peut être activé à distance depuis un ordinateur via un outil de maintenance logicielle et permet au constructeur ou à un opérateur de maintenance d’installer et de mettre à jour l’application. Les registres matériels définissent le fonctionnement de l’unité de contrôle électronique et peuvent être configurés dans différentes positions, la configuration de l’ensemble de ces registres définissant la configuration matérielle de l’unité de contrôle électronique. Dans une solution existante, on distingue un mode de primo-installation de l’application et un mode de mise à jour d’une application déjà installée dans la zone mémoire de l’unité de contrôle électronique. Dans le mode de primo-installation, le module de chargement de démarrage reçoit tout d’abord une requête d’installation de l’outil de maintenance logicielle et procède directement à l’installation de l’application. Dans le mode de mise à jour, le module de chargement de démarrage reçoit tout d’abord une requête de mise à jour de l’outil de maintenance logicielle, efface l’application déjà installée, vérifie que la configuration matérielle requise par la nouvelle application pour la faire fonctionner est conforme à la configuration matérielle du microcontrôleur puis, lorsque la configuration requise est conforme, procède à l’installation ou à la mise à jour de l’application. Cependant, un problème se pose lorsque la configuration requise par la mise à jour de l’application est différente de la configuration matérielle utilisée par l’unité de contrôle électronique au moment de ladite mise à jour. En effet, la configuration requise par l’application n’étant pas vérifiée par le module de chargement de démarrage lors de la première installation de l’application, il se peut que l’application soit installée et fonctionne alors que la configuration qu’elle requière est différente de la configuration matérielle de l’unité de contrôle électronique. Dans ce cas, il s’avère que, vu que la configuration requise par la mise à jour est différente de la configuration matérielle de l’unité de contrôle électronique, le module de chargement de démarrage ne pourra non seulement pas installer la mise à jour mais l’unité de contrôle électronique deviendra inutilisable car le module de chargement de démarrage aura effacé l’application de la zone mémoire suite à la requête de mise à jour. Il existe donc le besoin d’une solution permettant de remédier au moins en partie à ces inconvénients. Un des buts de l’invention est de permettre la mise à jour d’une application installée dans la zone mémoire d’une unité de contrôle électronique avec une configuration différente de la configuration matérielle de ladite unité de contrôle électronique. Un autre but de l’invention est de permettre de continuer à utiliser une unité de contrôle électronique quelle que soit la configuration requise par la mise à jour d’une application déjà installée. A cette fin, l’invention a tout d’abord pour objet un procédé de gestion d’une zone mémoire d’une unité de contrôle électronique de véhicule automobile, ladite unité de contrôle électronique comprenant un microcontrôleur, une pluralité de registres matériels et une zone mémoire, ledit microcontrôleur étant configuré pour recevoir, d’un outil externe de maintenance logicielle, une requête de mise à jour d’une application installée dans un espace de la zone mémoire avec une application cible et pour exécuter les instructions contenue dans un module de chargement de démarrage mis en œuvre par ledit microcontrôleur et les instructions de l’application contenue dans l’espace de la zone mémoire, les registres matériels étant adaptés pour être placés dans différentes positions définissant la configuration matérielle courante de l’unité de contrôle électronique, ledit procédé comprenant les étapes de : - réception d’une première requête de mise à jour de l’application installée à partir d’un premier ensemble d’instructions de commande, ledit premier ensemble d’instructions de commande étant configuré pour être mis en œuvre avec la configuration matérielle courante de l’unité de contrôle électronique, - mise en œuvre du premier ensemble d’instructions de commande par le module de chargement de démarrage suite à la réception de ladite première requête, le premier ensemble d’instructions de commande étant configuré pour modifier la configuration matérielle courante de l’unité de contrôle électronique de sorte à la rendre identique à la configuration matérielle requise pour installer la mise à jour de l’application cible, - invalidation du premier ensemble d’instructions de commande, - réinitialisation du module de chargement de démarrage, - réception d’une deuxième requête de mise à jour de l’application installée à partir d’un deuxième ensemble d’instructions de commande, ledit deuxième ensemble d’instructions de commande étant configuré pour être mis en œuvre avec la configuration matérielle modifiée de l’unité de contrôle électronique, - mise en œuvre du deuxième ensemble d’instructions de commande par le module de chargement de démarrage suite à la réception de ladite deuxième requête, le deuxième ensemble d’instructions de commande étant configuré pour vérifier que la configuration matérielle requise par la mise à jour de l’application est identique à la configuration matérielle modifiée de l’unité de contrôle électronique et pour valider la mise à jour de l’application afin de la mettre en œuvre au prochain démarrage. Le procédé selon l’invention permet de mettre à jour la configuration matérielle de l’unité de contrôle électronique afin de s’assurer qu’elle corresponde à la configuration matérielle requise pour installer la mise à jour de l’application (i.e. installer l’application cible) correctement. Notamment, la configuration matérielle courante de l’unité de contrôle électronique peut être corrigée, ce qui évite de remplacer physiquement l’unité de contrôle électronique. De préférence, le premier ensemble d’instructions de commande comprenant une librairie de commandes configurées pour modifier les registres matériels, ladite librairie est mise en œuvre lorsque le premier ensemble d’instructions de commande est exécuté. De préférence encore, le deuxième ensemble d’instructions de commande permettant de supprimer le premier ensemble d’instructions de commande, le procédé comprend une étape de suppression du premier ensemble d’instructions de commande. Selon un aspect de l’invention, l’invalidation du premier ensemble d’instructions de commande consiste à réactiver le module de chargement de démarrage afin que ledit module de chargement de démarrage complète la mise à jour de l’application. L’invention concerne également un produit programme d’ordinateur remarquable en ce qu’il comporte un ensemble d’instructions de code de programme qui, lorsqu’elles sont exécutées par un ou plusieurs microcontrôleurs ou processeurs, configurent le ou les microcontrôleurs ou processeurs pour mettre en œuvre un procédé tel que présenté précédemment. L’invention concerne également une unité de contrôle électronique pour véhicule automobile, ladite unité de contrôle électronique comprenant un microcontrôleur, une pluralité de registres matériels et une zone mémoire, ledit microcontrôleur étant configuré pour recevoir, d’un outil externe de maintenance logicielle, une requête de mise à jour d’une application installée dans un espace de la zone mémoire avec une application cible et pour exécuter les instructions contenue dans un module de chargement de démarrage mis en œuvre par ledit microcontrôleur et les instructions de l’application contenue dans l’espace de la zone mémoire, les registres matériels étant adaptés pour être placés dans différentes positions définissant la configuration matérielle de l’unité de contrôle électronique, l’unité de contrôle électronique étant configurée pour : - recevoir une première requête de mise à jour de l’application installée à partir d’un premier ensemble d’instructions de commande, ledit premier ensemble d’instructions de commande étant configuré pour être mis en œuvre avec la configuration matérielle courante de l’unité de contrôle électronique, - mettre en œuvre le premier ensemble d’instructions de commande par le module de chargement de démarrage suite à la réception de ladite première requête, le premier ensemble d’instructions de commande étant configuré pour modifier la configuration matérielle courante de l’unité de contrôle électronique de sorte à la rendre identique à la configuration matérielle requise pour installer la mise à jour de l’application cible, - invalider le premier ensemble d’instructions de commande, - réinitialiser le module de chargement de démarrage, - recevoir une deuxième requête de mise à jour de l’application installée à partir d’un deuxième ensemble d’instructions de commande, ledit deuxième ensemble d’instructions de commande étant configuré pour être mis en œuvre avec la configuration matérielle modifiée de l’unité de contrôle électronique, - mettre en œuvre le deuxième ensemble d’instructions de commande par le module de chargement de démarrage suite à la réception de ladite deuxième requête, le deuxième ensemble d’instructions de commande étant configuré pour vérifier que la configuration matérielle requise par la mise à jour de l’application est identique à la configuration matérielle modifiée de l’unité de contrôle électronique et pour valider la mise à jour de l’application afin de la mettre en œuvre au prochain démarrage. De préférence, le premier ensemble d’instructions de commande comprenant en outre une librairie de commandes configurées pour modifier les registres matériels, le microcontrôleur est configuré pour mettre en œuvre ladite librairie lorsqu’il exécute le premier ensemble d’instructions de commande. De préférence encore, le deuxième ensemble d’instructions de commande permettant de supprimer le premier ensemble d’instructions de commande, le microcontrôleur est configuré pour commander la suppression du premier ensemble d’instructions de commande. Selon un aspect de l’invention, le microcontrôleur est configuré pour invalider le premier ensemble d’instructions de commande, de préférence en réactivant le module de chargement de démarrage afin que ledit module de chargement de démarrage complète la mise à jour de l’application. L’invention concerne également un véhicule automobile comprenant une unité de contrôle électronique telle que présentée précédemment. 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 illustre schématiquement une forme de réalisation du véhicule selon l’invention. La illustre schématiquement un mode de réalisation du procédé selon l’invention. Procédé de gestion d’une zone mémoire (130) d’une unité de contrôle électronique (10) de véhicule (1) automobile, ladite unité de contrôle électronique (10) comprenant un microcontrôleur (110), une pluralité de registres matériels (120) et une zone mémoire (130), ledit microcontrôleur (110) étant configuré pour recevoir, d’un outil externe de maintenance logicielle, une requête de mise à jour d’une application installée dans un espace (132) de la zone mémoire (130) avec une application cible et pour exécuter les instructions contenue dans un module de chargement de démarrage (131) mis en œuvre par ledit microcontrôleur (110) et les instructions de l’application contenue dans l’espace (132) de la zone mémoire (130), les registres matériels (120) étant adaptés pour être placés dans différentes positions définissant la configuration matérielle courante (CC) de l’unité de contrôle électronique (10), ledit procédé comprenant les étapes de : - réception (E1) d’une première requête (R1) de mise à jour de l’application installée à partir d’un premier ensemble d’instructions de commande (EIC1), ledit premier ensemble d’instructions de commande (EIC1) étant configuré pour être mis en œuvre avec la configuration matérielle courante (CC) de l’unité de contrôle électronique (10), - mise en œuvre du premier ensemble d’instructions de commande (EIC1) par le module de chargement de démarrage (131) suite à la réception de ladite première requête (R1), le premier ensemble d’instructions de commande (EIC1) étant configuré pour modifier la configuration matérielle courante (CC) de l’unité de contrôle électronique (10) de sorte à la rendre identique à la configuration matérielle requise (CR) pour installer la mise à jour (MAJ) de l’application cible, - invalidation du premier ensemble d’instructions de commande (EIC1), - réinitialisation du module de chargement de démarrage (131), - réception d’une deuxième requête (R2) de mise à jour de l’application installée à partir d’un deuxième ensemble d’instructions de commande (EIC2), ledit deuxième ensemble d’instructions de commande (EIC2) étant configuré pour être mis en œuvre avec la configuration matérielle modifiée de l’unité de contrôle électronique (10), - mise en œuvre du deuxième ensemble d’instructions de commande (EIC2) par le module de chargement de démarrage (131) suite à la réception de ladite deuxième requête (R2), le deuxième ensemble d’instructions de commande (EIC2) étant configuré pour vérifier que la configuration matérielle requise (CR) par la mise à jour de l’application est identique à la configuration matérielle modifiée de l’unité de contrôle électronique (10) et pour valider la mise à jour de l’application afin de la mettre en œuvre au prochain démarrage. Procédé selon la revendication 1, dans lequel, le premier ensemble d’instructions de commande (EIC1) comprenant une librairie de commandes configurées pour modifier les registres matériels (120), ladite librairie est mise en œuvre lorsque le premier ensemble d’instructions de commande (EIC1) est exécuté. Procédé selon l’une quelconque des revendications précédentes, dans lequel, le deuxième ensemble d’instructions de commande (EIC2) permettant de supprimer le premier ensemble d’instructions de commande (EIC1), le procédé comprend une étape de suppression du premier ensemble d’instructions de commande (EIC1). Procédé selon l’une quelconque des revendications précédentes, dans lequel l’invalidation du premier ensemble d’instructions de commande (EIC1) consiste à réactiver le module de chargement de démarrage (131) afin que ledit module de chargement de démarrage (131) complète la mise à jour de l’application. Produit programme d’ordinateur caractérisé en ce qu’il comporte un ensemble d’instructions de code de programme qui, lorsqu’elles sont exécutées par un ou plusieurs processeurs, configurent le ou les processeurs pour mettre en œuvre un procédé selon l’une quelconque des revendications précédentes. Unité de contrôle électronique (10) pour véhicule (1) automobile, ladite unité de contrôle électronique (10) comprenant un microcontrôleur (110), une pluralité de registres matériels (120) et une zone mémoire (130), ledit microcontrôleur (110) étant configuré pour recevoir, d’un outil externe de maintenance logicielle, une requête de mise à jour d’une application installée dans un espace (132) de la zone mémoire (130) avec une application cible et pour exécuter les instructions contenue dans un module de chargement de démarrage (131) mis en œuvre par ledit microcontrôleur (110) et les instructions de l’application contenue dans l’espace (132) de la zone mémoire (130), les registres matériels (120) étant adaptés pour être placés dans différentes positions définissant la configuration matérielle courante (CC) de l’unité de contrôle électronique (10), l’unité de contrôle électronique (10) étant configurée pour : - recevoir une première requête (R1) de mise à jour de l’application installée à partir d’un premier ensemble d’instructions de commande (EIC1), ledit premier ensemble d’instructions de commande (EIC1) étant configuré pour être mis en œuvre avec la configuration matérielle courante (CC) de l’unité de contrôle électronique (10), - mettre en œuvre le premier ensemble d’instructions de commande (EIC1) par le module de chargement de démarrage (131) suite à la réception de ladite première requête (R1), le premier ensemble d’instructions de commande (EIC1) étant configuré pour modifier la configuration matérielle courante (CC) de l’unité de contrôle électronique (10) de sorte à la rendre identique à la configuration matérielle requise (CR) pour installer la mise à jour de l’application cible, - invalider le premier ensemble d’instructions de commande (EIC1), - réinitialiser le module de chargement de démarrage (131), - recevoir une deuxième requête (R2) de mise à jour de l’application installée à partir d’un deuxième ensemble d’instructions de commande (EIC2), ledit deuxième ensemble d’instructions de commande (EIC2) étant configuré pour être mis en œuvre avec la configuration matérielle modifiée de l’unité de contrôle électronique (10), - mettre en œuvre le deuxième ensemble d’instructions de commande (EIC2) par le module de chargement de démarrage (131) suite à la réception de ladite deuxième requête (R2), le deuxième ensemble d’instructions de commande (EIC2) étant configuré pour vérifier que la configuration matérielle requise (CR) par la mise à jour de l’application est identique à la configuration matérielle modifiée de l’unité de contrôle électronique (10) et pour valider la mise à jour de l’application afin de la mettre en œuvre au prochain démarrage. Unité de contrôle électronique (10) selon la revendication précédente, dans lequel, le premier ensemble d’instructions de commande (EIC1) comprenant en outre une librairie de commandes configurées pour modifier les registres matériels (120), le microcontrôleur (110) est configuré pour mettre en œuvre ladite librairie lorsqu’il exécute le premier ensemble d’instructions de commande (EIC1). Unité de contrôle électronique (10) selon l’une quelconque des revendications 6 ou 7, dans lequel, le deuxième ensemble d’instructions de commande (EIC2) permettant de supprimer le premier ensemble d’instructions de commande (EIC1), le microcontrôleur (110) est configuré pour commander la suppression du premier ensemble d’instructions de commande (EIC1). Unité de contrôle électronique (10) selon l’une quelconque des revendications 6 à 8, dans lequel le microcontrôleur (110) est configuré pour invalider le premier ensemble d’instructions de commande (EIC1) en réactivant le module de chargement de démarrage (131) afin que ledit module de chargement de démarrage (131) complète la mise à jour de l’application. Véhicule (1) automobile comprenant une unité de contrôle électronique (10) selon l’une quelconque des revendications 6 à 9.