Cette section rassemble les références sur les outils utilisés dans ce support. Ce «catalogue» ne prétend pas être exhaustif.
Dev-Cpp est une interface de développement intégrée (IDE ou Integrated Development Environment très connue sur Windows. Elle permet d'utiliser les outils GNU : le compilateur gcc, le debugger gdb, make, etc.
Dev-Cpp est téléchargeable à partir du site
SourceForge. Le
fichier exécutable de la forme devcpp-x.x.x_x_setup.exe
comprend l'interface graphique et tous les outils de développement. Il n'est
pas nécessaire d'installer d'outils supplémentaires pour commencer à développer
en C/C++.
Les outils de la chaîne de développement C/C++ sont installés par défaut avec le système d'exploitation. On peut le vérifier en interrogeant le gestionnaire de paquets APT.
$ aptitude search gcc-4.1 i gcc-4.1 - The GNU C compiler i gcc-4.1-base - The GNU Compiler Collection (base package) p gcc-4.1-doc - documentation for the GNU compilers (gcc, gobjc, g++) i gcc-4.1-locales - The GNU C compiler (native language support files) i gcc-4.1-multilib - The GNU C compiler (multilib files) p gcc-4.1-source - Source of the GNU Compiler Collection
SDCC est un compilateur C multi-cibles conforme à la norme ANSI. Il supporte les microcontrôleurs (MCUs) des familles Intel 8051, Maxim 80DS390, Zilog Z80, Motorola 68HC08, Microchip PIC16 et PIC18.
Ce compilateur est une alternative intéressante pour les microcontrôleurs qui ne sont pas directement supportés par la chaîne d'outils GNU.
Les composants Texas Instruments™ de la famille MSC1210 sont des convertisseurs analogiques/numériques (ADC) qui intègrent un microcontrôleur 8051 avec 2Ko de ROM contenant des fonctions de pilotage de périphériques et de contrôle. Ce type de composant entre donc bien dans les cibles du compilateur SDCC.
Le compilateur et ses bibliothèques sont téléchargeables à partir du
site
SourceForge. Le fichier exécutable de la forme
sdcc-2.6.0-setup.exe disponible à la rubrique sdcc-win32
de la page de téléchargement du projet.
Cette installation ne comprend que les outils de compilation.
Le compilateur et ses bibliothèques sont disponibles sous forme de paquets dans la distribution Debian. La liste des paquets utiles est obtenue en interrogeant le gestionnaire de paquets.
$ aptitude search sdcc p sdcc - Small Device C Compiler p sdcc-doc - Small Device C Compiler (documentation) p sdcc-libraries - Small Device C Compiler (libraries) p sdcc-ucsim - Micro-controller simulator for SDCC
Comme pour tout logiciel libre, les sources de la chaîne de développement sont disponibles à partir des pages Web du projet SDCC - Small Device C Compiler sur SourceForge. Pour bénéficier des toutes dernières avancées de l'équipe de développement, il est possible de compiler la chaîne de développement.
On commence par créer une arborescence de stockage local des sources.
phil@b0x:~$ mkdir -p SVN/sdcc phil@b0x:~$ cd SVN/sdcc phil@b0x:~/SVN/sdcc$
Le premier téléchargement se fait avec la commande svn checkout.
phil@b0x:~/SVN/sdcc$ svn co https://svn.sourceforge.net/svnroot/sdcc/trunk/sdcc sdcc
Toutes les mises à jour suivantes se font avec la commande svn update.
phil@b0x:~/SVN/sdcc$ svn update À la révision 4788.
La compilation sur un système GNU/Linux utilise les outils classiques de la chaîne GNU. On retrouve les trois étapes rituelles : ./configure, make et make install
La commande ./configure recense les outils installés sur le poste de travail et les bibliothèques nécessaires à la compilation. Si cette étape se passe correctement, on obtient un résultat du type :
phil@b0x:~/SVN/sdcc$ ./configure
<snipped/>
sdcc 2.7.2 is now configured for
Build:
Host:
Source directory: .
C compiler: gcc
CFLAGS: -pipe -ggdb -g -O2
ENABLED Ports:
avr yes
ds390 yes
ds400 yes
gbz80 yes
hc08 yes
mcs51 yes
pic yes
pic16 yes
xa51 yes
z80 yes
Disable packihx: 0
Disable ucsim: 0
Disable device lib: 0
Disable sdcpp: 0
Disable sdcdb: 0
Enable documentation: 0
Enable libgc: 0
Install paths:
binary files: ${prefix}
include files: ${datarootdir}/sdcc/include
library files: ${datarootdir}/sdcc/lib
documentation: ${datarootdir}/doc/${PACKAGE_TARNAME}
prefix: /usr/local
datadir: ${datarootdir}
datarootdir: ${prefix}/share
Search paths (incomplete, see manual for all search paths):
binary files: $SDCC_HOME/bin
include files: /share/sdcc/include
path(argv[0])/../share/sdcc/include
/usr/local/share/sdcc/include
library files: $SDCC_HOME/share/sdcc/lib/<model>
path(argv[0])/../share/sdcc/lib/<model>
/usr/local/share/sdcc/lib/<model>
La commande make lance les opérations de compilation en fonction des cibles définies lors de l'étape précédente.
phil@b0x:~/SVN/sdcc$ make for misc in debugger/mcs51 sim/ucsim; do make -C $misc ; done make[1]: entrant dans le répertoire « /home/phil/SVN/sdcc/debugger/mcs51 » make[1]: quittant le répertoire « /home/phil/SVN/sdcc/debugger/mcs51 » make[1]: entrant dans le répertoire « /home/phil/SVN/sdcc/sim/ucsim » make -f main.mk all make[2]: entrant dans le répertoire « /home/phil/SVN/sdcc/sim/ucsim » make[2]: quittant le répertoire « /home/phil/SVN/sdcc/sim/ucsim » <snipped/>
La commande make install doit être exécutée
avec les droits superutilisateur pour installer les binaires et les
bibliothèques dans l'arborescence /usr/local.
phil@b0x:~/SVN/sdcc$ su
Password:
b0x:/home/phil/SVN/sdcc# make install
<snipped/>
mkdir -p /usr/local/share/sdcc/lib/src
cp -u -r build/* /usr/local/share/sdcc/lib
cp -u -r small medium large ./mcs51 ./ds390 ./ds400 \
./gbz80 ./z80 ./hc08 \
./pic ./pic16 ./*.c /usr/local/share/sdcc/lib/src
<snipped/>
On peut enfin vérifier que la version active de la chaîne de développement correspond aux outils que l'on vient de compiler.
$ sdcc -v SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.7.2 #4851 (Jun 13 2007) (UNIX)
Par défaut, le support des nombres réels (type float)
n'est activé que pour les microcontrôleurs de la famille
DS390. Pour activer l'utilisation des nombres réels sur
les microcontrôleurs de la famille MSC121x, il faut éditer
manuellement le fichier device/lib/printf_large.c et
procéder aux modifications suivantes :
phil@b0x:~/SVN/sdcc$ diff -uBb device/lib/printf_large.c.dist device/lib/printf_large.c
--- device/lib/printf_large.c.dist 2006-05-22 23:27:38.868496000 +0200
+++ device/lib/printf_large.c 2006-05-22 22:29:34.298724000 +0200
@@ -24,9 +24,9 @@
what you give them. Help stamp out software-hoarding!
-------------------------------------------------------------------------*/
-#if defined(__ds390)
+//#if defined(__ds390)
#define USE_FLOATS 1
-#endif
+//#endif
#include <stdarg.h>
#include <string.h>
Il suffit ensuite de reprendre la compilation des outils de la chaîne de développement et leur installation comme présentées ci-dessus pour bénéficier du support des nombres réels.
Texas Instruments™ fournit un logiciel pour Windows de pilotage de la liaison série entre le PC et le système embarqué. Ce logiciel sert aussi bien à la programmation du composant qu'aux communications lorsque le programme est en cours d'exécution.
TIDownloader est disponible à l'adresse : Software for Programming the Flash Memory Using the Serial Port v1.3.4 (Rev. C) (sbac018c.zip, 2381 KB )
Vous êtes ici :