Brevet FR3045879A1 (20170623)
REVENDICATIONS1.- Programme d'ordinateur définissant un logiciel applicatif (50) hébergé sur une plateforme d'exécution cible (4) du type avionique, caractérisé en ce qu'il comporte des instructions de code de programme d'ordinateur qui définissent : - au moins un bloc de traitement (51), fournissant, lorsque ledit programme est exécuté sur la plateforme d'exécution cible, une fonctionnalité spécifique au logiciel applicatif, le ou chaque bloc de traitement constituant un composant du logiciel applicatif pouvant être certifié de manière indépendante des autres composants du logiciel ; - un noyau applicatif (56) assurant, lorsque ledit programme est exécuté sur la plateforme d'exécution cible, une orchestration de l'appel de ou de chaque bloc de traitement (51) et/ou des services du système d'exploitation (48) de la plateforme d'exécution cible (4) ; - un conteneur logiciel (58), qui, lorsque ledit programme est exécuté sur la plateforme d'exécution cible et sur requête du noyau applicatif, exécute un code binaire (85) présent en mémoire (42) de la plateforme d'exécution cible (4) et associé au bloc de traitement (51), l'exécution du code binaire étant réalisée de manière cloisonnée spatialement et temporellement, le code source exécuté ne pouvant pas échanger de données avec un autre code binaire d'un autre bloc de traitement du logiciel applicatif ou un service du système d'exploitation sans passer par le noyau applicatif, le logiciel applicatif une fois certifié pouvant être mis à jour en modifiant le code binaire correspondant à un bloc de traitement dès lors que ledit code source a été certifié. 2.- Programme d'ordinateur selon la revendication 1, dans lequel le noyau applicatif (56) est développé sur la base de spécifications décrivant la version la plus complète du ou de chaque bloc de traitement (51) qu'il est envisagé de développer. 3.- Programme d'ordinateur selon la revendication 2, dans lequel le code binaire (85) associé à un bloc de traitement (51) est exécuté en utilisant un ensemble d'exécution défini à partir de la version la plus complète envisagée pour ledit bloc de traitement. 4.- Programme d'ordinateur selon la revendication 3, dans lequel l'ensemble de paramètres maximaux comporte : - Un paramètre temporel général correspondant au WCET ; 3045879 19 Une liste de variables globales relatives aux données d'entrée et aux données de sortie dudit bloc de traitement ; - Une liste de variables locales dudit bloc de traitement ; - Une taille en octet du code binaire dudit bloc de traitement ; 5 Une taille en octet des variables globales ; - Une taille en octet des variables locales. 5.- Programme d'ordinateur selon la revendication 3 ou la revendication 4, dans lequel une valeur par défaut est attribuée à une variable globale de l'ensemble de 10 paramètres maximaux d'exécution que le code binaire associé au bloc de traitement considéré et présent dans la mémoire de la plateforme d'exécution cible (4) au moment de l'exécution du logiciel applicatif n'est pas capable de traiter. 6.- Programme d'ordinateur selon l'une quelconque des revendications 15 précédentes, dans lequel le noyau applicatif (56) est un automate d'état, chaque état dudit automate correspond à une procédure logicielle qui lance et contrôle une exécution d'une suite ordonnée d'appels à des blocs de traitement (51) du logiciel applicatif et/ou à des services du système d'exploitation de la plateforme d'exécution cible (4), et chaque transition d'un état dudit automate vers un autre état dudit automate dépendant de valeurs 20 retournées à l'issue de leur exécution, par les blocs de traitement du logiciel applicatif et les services du système d'exploitation (48) appelés. 7.- Programme d'ordinateur selon la revendication 6, dans lequel, le noyau applicatif (56) calcule un statut de contexte de l'aéronef à partir de différentes données 25 externes, la transition d'un état initial vers un état final dudit automate dépendant en outre du statut de contexte courant de l'aéronef calculé. 8.- Plateforme d'exécution cible (4) du type avionique, comportant une couche matérielle (46) et une couche logicielle (47), la couche matérielle comprenant une 30 mémoire (42) et un processeur (40), la couche logicielle comprenant un programme d'ordinateur définissant un système d'exploitation (48) avionique et un programme d'ordinateur définissant un logiciel applicatif, la couche matérielle étant configurée par la couche logicielle, caractérisée en ce que ledit programme d'ordinateur définissant un logiciel applicatif (50) est conforme à l'une quelconque des revendications 1 à\n<CLM>\1\t35 3045879 20 9.- Plateforme de développement (2), comportant une couche matérielle (26) et une couche logicielle (27), la couche matérielle comprenant une mémoire (22) et un processeur (20), la couche logicielle comprenant un programme d'ordinateur définissant un système d'exploitation (28) et un programme d'ordinateur définissant un logiciel de 5 compilation (14), la couche matérielle étant configurée par la couche logicielle, caractérisée en ce que la mémoire comporte un code source (61) d'un bloc de traitement (51) d'un programme d'ordinateur définissant un logiciel applicatif (50) conforme à l'une quelconque des revendications 1 à 7, et en ce que le programme d'ordinateur définissant un logiciel de compilation est propre, lorsqu'il est exécuté, à générer un code binaire (85) 10 à partir du code source, le code binaire étant propre à être chargé dans la mémoire d'une plateforme d'exécution cible (4) du type avionique sur laquelle est exécuté ledit programme d'ordinateur définissant un logiciel applicatif.\n<CLM>\1\tPlateforme de développement (2) selon la revendication 9, dont la mémoire 15 (22) comporte un ensemble de paramètres maximaux d'exécution pour un bloc de traitement (51) dudit programme d'ordinateur définissant un logiciel applicatif (50).