Traduction de Comenzamos… 27 Octubre, 2006
Commençons … Ce blog survient avec l'idée de montrer au grand publique la création d'un nouveau portage de GCC(2). Celui qui écrit, Pedro José Ramírez Gutiérrez, guidé par l'idée initial de David Santo Orcero, commence aujourd'hui la création du portage de l'interfaçage (backend) de GCC à l'architecture PIC16F877. L'orientation de ce projet servira pour 3 buts, compléter le Projet de fin d'étude, qui me transformera en Ingénieur en Informatique ave le titre accrédité (bien que je crois réellement qu'il est né comme çà), participer au Concours Universitaire du Logiciel Libre(1), qui commence avec sa première édition, et établir le chemin du portage de l'interfaçage de GCC à toute l'architecture PIC.
Considérant comme acquis que très peu de gens comprendraient le sens des mots « porting » et « backend » mais espérant que la majorité connaît au moins l'existence de GCC et ce qu'est un microcontrôleur, je vais développer les idées. Avant tout j'avertis, pour améliorer l'explication j'utiliserai continuellement la première personne du pluriel des verbes, sans que cela implique l'existence d'une double personnalité (tais-toi, après je mets le feu à ça), mais je fais participer le lecteur aux explications données.
Commençons, GCC est un ensemble de compilateurs. L'architecture interne de GCC comporte 3 parties très différentes. Pour chaque langage de programmation qu'accepte GCC, nous trouvons un frontend . Le frontend de C, contient l'analyseur syntaxique, sémantique, et les instructions pour qu'un programme en langage C écrit dans une archive passe à un langage intermédiaire connu comme RTL. Une fois que les instructions du programme d'entrée sont dans le langage intermédiaire, nous trouvons la seconde partie de GCC, le middle-end. Ici c'est où toutes les optimisations internes se déroulent qui font de GCC le compilateur le plus puissant actuellement. Le langage RTL est seulement dans la mémoire de GCC, mais pour l'instant il nous suffit de savoir qu'il existe et que GCC sait l'optimiser. Une fois que le code RTL a été optimisé, il passe à l'ultime chaînon de la chaîne, le backend. Dépendant de l'architecture choisie pour la sortie du programme, on utilisera le backend nécessaire pour obtenir le code souhaité.
Voici l'objectif du projet. La création d'un backend de GCC pour l'architecture PIC 16F877, nous permet de compiler du code C, pour obtenir le code assembleur et l'exécutable pour le graver dans le PIC 16F877. Mais qu'est ce que le 16F877 ?. Bon, un microcontrôleur est une petite boite noire avec des petites pattes métalliques qui contient à l'intérieur un processeur, de la mémoire RAM et ROM et diverses dispositifs. Un des fabricants qui créent les microcontrôleurs est MicroChip(3) et un des modèles que crée MicroChip est le modèle 16F877. En échange de réussir à mettre un processeur et divers dispositifs dans une petite boite plus petite qu'un euro, nous avons un processeur simple mais efficace, peu de mémoire RAM et ROM (comparée aux ordinateurs actuels) et des dispositifs d'Entrée/Sortie relativement simples. Mais le principal avantage de ces “petits” est son prix, les modèles varient selon la mémoire, les dispositifs ou la vitesse mais en moyenne ils valent quelques 6 €. Ceux qui ne les connaîtraient pas découvriront dans ce projet une très agréable possibilité pour le développement matériel.
L'idée à long terme c'est de compléter la famille PIC16 de Microchip, mais comme tout a un début on a choisi ce microcontrôleur, puissant et complet vu ces périphériques. Les idées à plus long terme continuent avec en point de mire la famille PIC17 et PIC18. Et derrière la seconde étoile à droite, j'entrevois un 30 et un 24 (les connaisseurs souriront et j'espère qu'ils ne se moqueront pas… beaucoup). Nonobstant pour commencer, le modèle PIC 16F877 est un bon début.
Cela dit, commençons…
1) http://concurso-softwarelibre.us.es/
2) http://gcc.gnu.org/
3) http://www.microchip.com
Retour PICGCC