Changes between Version 6 and Version 7 of SoclibCourseTp4
- Timestamp:
- Oct 4, 2009, 9:28:59 PM (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SoclibCourseTp4
v6 v7 20 20 gestion de versions et supporte le développement coopératif de la plate-forme. 21 21 Il permet de stocker les fichiers sources dans une structure hiérarchique arborescente, 22 bien adapté à une approche de compilation séparée. 22 bien adaptée à une approche de compilation séparée, mais l'exploitation de cette structure 23 pose (au moins) deux problèmes : 23 24 24 Identifier et localiser 25 n'est pas un problème simple. 26 Les archives qui vous a été fournie pour les trois premiers TPs rassemblaient dans un seul répertoire 27 tous les fichiers nécessaires à la compilation et à la génération du simulateur, ainsi que le Makefile associé. 25 * Il faut dentifier et localiser tous les fichiers nécessaires à générer le simulateur d'une architecture particulière. Les archives qui vous a été fournie pour les trois premiers TPs rassemblaient dans un seul répertoire 26 tous les fichiers nécessaires, ainsi que le Makefile associé. Mais dans le cas général, cete identification des fichiers nécessaires est un travail non négligeable, à cause des dépendances entre composants logiciels (le fichier A fait référence à des objets définis dans le fichier B, qui lui-même fait appel au fichier C, etc.). De ce fait, la construction du Makefile permettant est généralement un exercice complexe. 28 27 29 Dans le cas général, l'identification tous les fichiers nécessaires à la génération du simulateur d'une architecture particulièredes est un travail non négligeable, à cause des dépendances entre composants logiciels (le fichier A 30 fait référence à des objets définis dans le fichier B, qui lui-même fait appel au fichier C, etc.), et 31 la construction du Makefile permettant de générer le simulateur est généralement un exercice complexe. 32 33 Par ailleurs, la plupart des modèles ont des paramètres templates (puisque la plupart des composants ont des interfaces VCI, et que les largeurs des champs VCI sont paramètrables). Pour chaque composant possédant un 34 (ou plusieurs) paramètre(s) template, il faut donc modifier le fichier ''.cpp'' pour préciser la valeur des paramètres 28 * Par ailleurs, la plupart des modèles ont des paramètres templates (puisque la plupart des composants ont des interfaces VCI, et que les largeurs des champs VCI sont paramètrables). Pour chaque composant possédant un (ou plusieurs) paramètre(s) template, il faut donc modifier le fichier ''.cpp'' pour préciser la valeur des paramètres 35 29 template avant de lancer la compilation de ce composant (on dit qu'on instancie les paramètres template). 36 Vous avez fait ce travail dans le TP2, et on a fait ce travail fastidieux pour vous dans le TP3.30 Vous avez fait ce travail dans le TP2, et c'est un travail très fastidieux dès que les architectures modélisées deviennent complexes. 37 31 38 32 La chaîne de compilation SoCLib-CC a pour but de résoudre les deux problèmes dans le cas général, 39 en automatisant la recherche des dépendances, l'instanciation des paramètres templates et la génération33 en automatisant la recherche des dépendances, l'instanciation des paramètres templates, et la génération 40 34 du Makefile. 41 35 42 36 Pour permettre cette automatisation, tout composant logiciel de SoCLib doit être accompagné d'un fichier 43 de ''métadata'' (fichier possédant le suffixe '' .sd'') qui contient les informations suivantes:37 de ''métadata'' (fichier possédant le suffixe '''.sd''') qui contient les informations suivantes: 44 38 * le nom de la classe C++ 45 * les paramètres templates associés, avec l leurs types et les valeurs par défaut39 * les paramètres templates associés, avec leurs types et les valeurs par défaut 46 40 * les chemins d'accès aux fichiers d'en-tête (.h) et d'implémentation (.cpp) 47 * la liste des ports 41 * la liste des ports d(interface du composant 48 42 * la liste des dépendances vers d'autres composants 49 43 * les paramètres du constructeur, avec leurs types 50 Ce fichier est écrit en langage Python, et on trouvera ci-dessous à titre d'exemplele fichier de metadata associé44 Ce fichier est écrit en langage Python, et on trouvera ci-dessous, à titre d'exemple ,le fichier de metadata associé 51 45 au composant ''vci_simple_ram'': 52 46 {{{