Brevet FR2880151A1 — publié le 20060630

La présente invention concerne un système de développement et de portage d'au moins une application logicielle sur un terminal comportant au moins des moyens de calcul et de mémorisation ainsi qu'au moins un périphérique matériel non encore exécutable. Un procédé classique de portage d'un logiciel sur une nouvelle plateforme matérielle comporte les étapes principales suivantes: - compilation du code portable pour la plateforme de destination, - développement d'une bibliothèque d'interfaces avec les composants matériels de la plateforme, - test et déboguage de la plateforme complète. Cette dernière étape peut être particulièrement longue et coûteuse car une grande quantité de code logiciel doit être testée en même temps. Le procédé présente donc l'inconvénient majeur de repousser le déboguage du logiciel jusqu'au moment où la plateforme matérielle est complète. Le but de l'invention est de répondre à cet inconvénient en permettant un développement logiciel qui suit en parallèle le développement du matériel de la plateforme de portage, c'est-à-dire qui permette de développer et de déboguer un logiciel, et en particulier la bibliothèque d'interfaces au fur et à mesure du développement des éléments matériels. L'objet de l'invention est un système de développement et de portage d'au moins une application logicielle sur un terminal comportant au moins des moyens de calcul et de mémorisation ainsi qu'au moins un périphérique matériel non encore exécutable pendant la phase de développement et de portage de l'application logicielle, caractérisé en ce qu'il comporte des moyens d'interfaçage à l'application logicielle et d'émulation temporaire du périphérique matériel adaptés pour exécuter, pendant l'émulation temporaire, de manière identique vis-à-vis de l'application logicielle, la fonctionnalité du périphérique matériel et de ses moyens de pilotage. Des caractéristiques de l'invention sont: - les moyens d'interfaçage et d'émulation temporaires comportent, sur le terminal, des moyens d'interfaçage à l'application logicielle connectés à des moyens de communication et de transfert de données entre le terminal et une station de travail, lesdits moyens de communication et de transfert de données 2880151 2 étant connectés, sur la station de travail, à des moyens de simulation du fonctionnement du périphérique matériel; - les moyens de communication et de transfert de données comportent des moyens d'interfaçage standardisés vis-à-vis des moyens d'interfaçage à l'application logicielle; - le terminal comporte au moins deux périphériques matériels non encore exécutables, et les moyens d'interfaçage à l'application logicielle et d'émulation temporaire de chaque périphérique utilisent des moyens communs de communication et de transfert de données; et - les moyens de communication et de transfert de données utilisent un protocole de communication série, ou USB, ou Ethernet, ou infrarouge. L'invention sera mieux comprise à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple, et faite en référence aux dessins en annexe dans lesquels: - la figure 1 est un schéma synoptique du mode de réalisation préféré du système selon l'invention, - la figure 2 est un schéma synoptique des blocs fonctionnels du mode de réalisation, la figure 3 est un schéma synoptique des blocs fonctionnels dans une variante du mode de réalisation de l'invention. Selon le mode préféré de réalisation du système selon l'invention, figure 1, un terminal 1 en cours de développement et sur lequel on souhaite porter des applications logicielles est connecté à une station de travail 2 par une liaison 3 de transfert de données. L'application logicielle, qui peut en fait être composée de multiples logiciels, doit être exécutée sur le terminal 1 qui possède pour cela des moyens de calcul et de mémorisation (non représentés). Le terminal, qui peut être par exemple un terminal de paiement, possède également un certain nombre de périphériques matériels tels que des interfaces homme-machine (écran, clavier) et, par exemple, une interface de communication avec des cartes bancaires. Au cours du développement du terminal, tous ses périphériques peuvent ne pas être encore disponibles soit parce qu'ils correspondent à des développements spécifiques, soit parce qu'ils sont encore en cours d'acquisition. 2880151 3 Un tel périphérique matériel est donc dit non encore exécutable pendant cette phase du développement et de portage de l'application logicielle. Afin de permettre cependant le développement et le portage de l'application logicielle 4, figure 2, comme si le périphérique matériel existait déjà, les moyens 5 d'interfaçage à l'application logicielle et d'émulation temporaire du périphérique sont installés sur le terminal 1 pour exécuter, pendant l'émulation temporaire, la fonctionnalité du périphérique matériel manquant et de ses moyens de pilotage. Cette exécution se comporte, vis-à-vis de l'application logicielle, de manière identique à celle du périphérique matériel. Pour ce faire, ces moyens 5 d'interfaçage et d'émulation comportent sur le terminal, des moyens 6 d'interfaçage à l'application logicielle. Les moyens d'interfaçage sont identiques, vis-à-vis de l'application logicielle, à ceux du périphérique matériel. Autrement dit, ils se présentent sous la forme d'une bibliothèque de fonctions identiques, respectant la même syntaxe d'appel, que celles du pilote du périphérique. Les moyens 6 d'interfaçage sont connectés aux moyens 3 de communication et de transfert de données entre le terminal 1 et la station de travail 2. Les moyens 3 de communication utilisent un lien physique et un protocole de communication. Par exemple, ces moyens 3 de communications utilisent une liaison série RS 232, ou USB, ou bien une connexion internet ou infrarouge. Les moyens 3 de communication utilisent, au niveau applicatif, un protocole spécifique pour ce système implémenté dans les moyens 6 d'interfaçage. De ce fait, les moyens 6 d'interfaçage avec l'application logicielle traduisent les commandes reçues de cette application en des commandes équivalentes selon le protocole de communication. Les moyens 3 de communication transfèrent alors les commandes reçues à la station de travail 2. Celle-ci comporte des moyens 7 de simulation, ou simulateur, du fonctionnement du périphérique matériel. Le ou les simulateurs 7 de périphérique reçoivent les messages envoyés par le terminal 1 par l'intermédiaire des moyens 3 de communication. 2880151 4 Chaque message contient la nature de la fonction appelée ainsi que ses paramètres. Le simulateur 7 de périphérique simule l'exécution de cette fonction sur la station de travail 2. Quand l'exécution de la fonction se termine, le simulateur 7 de périphériques envoie un message au terminal 1 par l'intermédiaire des moyens 3 de communication. Ce message contient les valeurs de retour de la fonction. Un procédé de portage, utilisant le système décrit, se déroule selon les étapes suivantes: - le code à porter est compilé pour la plateforme-cible, c'est-à-dire pour les moyens de calcul du terminal, - les interfaces matérielles minimales sont portées sur la plateformecible, c'est-à-dire les interfaces qui vont émuler les périphériques matériels. Si les simulateurs sont déjà existants, cette étape peut être très rapide puisqu'il ne s'agit de développer que des bibliothèques de fonctions dont le rôle consiste à renvoyer les commandes de l'application logicielle 4 vers le simulateur 7 et en retour, de transférer l'information reçue du simulateur 7 à l'application logicielle 4, - les périphériques matériels du terminal sont alors développés et installés sur le terminal les uns après les autres en remplaçant l'interface minimale par le vrai pilote du périphérique. Dans une variante du système, les moyens d'interfaçage 6 sont découplés en des moyens 6A, 6B d'interfaçage à l'application logicielle proprement dits et en des moyens 8 de gestion de la liaison 3. Cela permet de créer une couche d'abstraction de la liaison 3. Ainsi les moyens 6A, 6B sont indépendants du type de liaison, leur écriture en est donc simplifiée. De plus, il est remarquable de noter que l'utilisation de moyens de communication standardisés permet d'utiliser des moyens 3 communs de communications et de transfert pour l'émulation de plusieurs périphériques matériels. Dans ce cas, ce sont ces moyens 8 de gestion de la liaison qui vont assurer le multiplexage des moyens entre les différentes émulations. Le système selon l'invention permet ainsi un développement et un portage d'applications logicielles sur un terminal de façon beaucoup plus aisée. En effet, il est ainsi possible de tester et de débloquer la plateforme entière à tout moment pendant le développement et en particulier bien avant que les périphériques matériels ne soient prêts et intégrés dans le terminal. 2880151 5 REVENDICATIONS 1. Système de développement et de portage d'au moins une application logicielle (4) sur un terminal comportant au moins des moyens de calcul et de mémorisation ainsi qu'au moins un périphérique matériel non encore exécutable pendant la phase de développement et de portage de l'application logicielle (4), caractérisé en ce qu'il comporte des moyens (5) d'interfaçage à l'application logicielle et d'émulation temporaire du périphérique matériel adaptés pour exécuter, pendant l'émulation temporaire, de manière identique vis-à-vis de l'application logicielle (4) , la fonctionnalité du périphérique matériel et de ses moyens de pilotage. 2. Système de développement et de portage d'application logicielle selon la revendication 1, caractérisé en ce que les moyens (5) d'interfaçage et d'émulation temporaires comportent, sur' le terminal, des moyens (6, 6A, 6B) d'interfaçage à l'application logicielle connectés à des moyens (3) de communication et de transfert de données entre le terminal et une station de travail, lesdits moyens de communication et de transfert de données étant connectés, sur la station de travail, à des moyens (7, 7A, 7B) de simulation du fonctionnement du périphérique matériel. 3. Système de développement et de portage d'au moins une application logicielle selon la revendication 2, caractérisé en ce que les moyens (3) de communication et de transfert de données comportent des moyens (8) d'interfaçage standardisés vis-à-vis des moyens (6, 6A, 6B) d'interfaçage à l'application logicielle. 4. Système de développement et de portage d'au moins une application logicielle selon la revendication 3, caractérisé en ce que le terminal comporte au moins deux périphériques matériels non encore exécutables, et les moyens (6, 6A, 6B) d'interfaçage à l'application logicielle et d'émulation temporaire de chaque périphérique utilisent des moyens (5) communs de communication et de transfert de données. 5. Système de développement et de portage d'au moins une application logicielle selon l'une des revendications 2 à 5, caractérisé en ce que les moyens (3) de communication et de transfert de données utilisent un protocole de communication série, ou USB, ou Ethernet, ou infrarouge.