www.pictec.org
SDCC le compilateur C open source
 

Sdcc est un compilateur C sous licence GPL. Il a été adapté pour pouvoir compiler du C pour PIC.
Nous allons voir dans les pages qui suivent comment l'installer sous windows ainsi que les outils indispensables pour le mettre en oeuvre.
Le but de ces pages est avant tout de pouvoir porter les applications du site www.pictec.org et notamment PicoIP sous SDCC pour permettre une distribution plus large de cette application sans pour autant que les utilisateurs ne disposent d'un compilateur propriétaire comme CC5X.
Pour le mome,t, nous n'avons testé SDCC que pour le 18F458. Les essais avec les PIC de la série 16F seront réalisés rapidement.


Installer SDCC
Installer GPUTILS
Modifier le PATH de Windows
Créer le fichier d'éxécution
Un premier programme avec SDCC
Les liens SDCC

INSTALLER SDCC

Sdcc est disponible sous la forme d'un éxécutable qui va installer dans le dossier program files de windows un repertoire SDCC contenant l'ensemble des fichiers et des bibliothéques. Ce compilateur étant disponible pour de nombreuses cibles, certains dossiers ne seront utiles que si vous travaillez aussi sur d'autres processeurs.
Ce paquetage peut être téléchargé à l'adresse suivante: http://sdcc.sourceforge.net
Sdcc est maintenant installé sur votre ordinateur !!

INSTALLER GPUTILS

Bien que SDCC dispose d'options permettant de le rendre compatible avec MPASM et MPLINK, les outils de Microchip, je ne suis pas arrivé à le faire fonctionner avec ces outils. Il a été donc plus simple d'utiliser GPASM et GPLINK qui sont des outils GPL disponibles sous windows.
GPUTILS est disponible sous la forme d'un fichier compressé ZIP qui peut être téléchargé à l'adresse suivante:
http://gputils.sourceforge.net
Le paquetage sera décompréssé dans un dossier à la racine du disque C. Vous disposerez ensuite d'un dossier C:\gputils\ . Il est important pour la suite de la mise en oeuvre de SDCC que les noms des dossiers soient respectés.

MODIFIER LE PATH DE WINDOWS XP

Nous allons maintenant modifier le path de windows pour que GPASM et GPLINK soient accessibles.
Pour cela dans le menu démarrer de windows XP, faites un clic droit sur 'Poste de travail' et cliquez sur 'propriétés'.

Cliquez sur l'onglet 'Avancé', puis sur le bouton 'Variables d'environnement'.

Cliquez ensuite sur modifier pour ajouter GPASM et GPLINK au PATH de windows.

Ajoutez ';C:\gputils\bin;' à la valeur de la variable PATH.
Redémarrez ensuite l'ordinateur.

CREER LE FICHIER D'EXECUTION

Il s'agit maintenant de créer un fichier .BAT pour compiler, assembler et linker votre programme en langage C.
Pour cela, ouvrez votre éditeur de texte préféré (le notepad de windows fera l'affaire) et recopiez les lignes suivantes:

sdcc -S -V -mpic16 -p18F458 %1.c
gpasm.exe -Dpic18f458 -D__18f458 -c %1.asm -o %1.o
gplink.exe -I"c:\program files\sdcc\bin\lib\pic16" -s"c:\gputils\lkr\18f458.lkr" -o %1 %1.o crt0i.o pic18f458.lib libsdcc.lib

Enregistrez dans un dossier 'projet sdcc' ces quelques lignes avec l'appellation suivante: g.bat

VOTRE PREMIER PROGRAMME AVEC SDCC

Nous allons maintenant écrire un premier programme avec SDCC pour générer un signal carré sur la broche RB7 d'un 18F458.

#define __18F458
#include <pic18F458.h>

#pragma stack 0x200 100

unsigned int i;

void main(void) {

TRISB = 0;
while(1) {
PORTBbits.RB7=1;
for (i=1;i<1000;i++);
PORTBbits.RB7=0;
for (i=1;i<1000;i++);
}
}

enregistrez le programme dans le dossier 'projet SDCC' sous le nom 'test.c'.
Ouvrez une fenêtre inivite de commande MSDOS puis taper 'g test'.
Le programme sera compilé, assemblé puis linké.
Vous obtiendrez un fichier test.hex dans ce même dossier.

Voici le résultat:

LES LIENS SUR SDCC

Sdcc est depuis peu compatible avec les PIC. Il y a donc peu de sites qui lui sont consacrés.

Ou télécharger les paquetages et la documentation:
http://sdcc.sourceforge.net

http://gputils.sourceforge.net

Comment installer SDCC sous linux ou avec CYGWIN:
http://ubicomp.lancs.ac.uk/~martyn/sdcc_linux/

Quelques exemples de codes pour le PIC:
http://sdccokr.dl9sec.de/news.htm