Bonjour à tous,
Je suis actuellement sur un projet qui vise à concevoir une couche d'abstraction matérielle.
Je m'explique. J'ai aujourd'hui un programme applicatif qui tourne sur une plateforme PIC18. Cette applicatif dans son fonctionnel comporte des communications avec un autre PIC par liaison SPI, il comporte aussi une communication en RS232. L'architecture actuelle en permet pas d'évolutivité, si par exemple on veut changer de type de communication (de SPI à I2C par exemple) on doit modifier directement la partie applicatif du code.
Mon objectif est donc de créer une nouvelle couche entre mon fonctionnel et mes drivers afin qu'en cas de changement de matériel je n'ai plus à changer mon fonctionnel. Cela doit rendre donc la fonctionnel plus générique et plus lisible.
Je veut suivre une démarche de conception plutot rigoureuse et penser a tout mon architecture avant de coder.
J'aimerai donc savoir si je m'engage dans la bonne direction avec mes choix.
Je pensais faire comme suit :
---------- Applicatif : Utilisation de fonction générique de base ------------
----------------- Init(nom_du_périphérique_utili sé) -------------
----------------- Lecture(nom_du_périphérique_ut ilisé, ...) ------
----------------- Ecrire(nom_du_périphérique_uti lisé, ...) --------
----------------- Stop(nom_du_périphérique_utili sé) ------------
---------- Ma couche : Contient les fonctions génériques de base, celles-ci renseignent les éléments utiles, et appellent les fonctions des driver ---------------
---------- Mes drivers : Contiennent les routines d'utilisation des liaisons --------------
Le tout avec un fichier de configuration qui comportera les informations liées au projet, du style quelles sont les types de liaisons utilisées, les noms des périphériques associés, etc...
Ce que je me dis c'est que c'est trop simple
Le but serai par la suite de pouvoir externaliser cette nouvelle couche pour l'utiliser comme une bibliothèque. Elle comportera les appels pour plein de liaison différentes.
Donc voila j'aimerai avoir votre avis sur ce que j'ai marqué là , mais aussi savoir si j'ai une bonne démarche, si je ne loupe pas des étapes pour faire une conception propre ??? Et si j'ai tout faux dite moi comment je dois m'y prendre, quelles sont les étapes!?
Merci d'avance JL
-----