Installation de Piklab sous ubuntu
Par jb le dimanche 30 septembre 2007, 14:43 - Des pingouins et des hommes - Lien permanent
Les microcontrôleurs Microchip PIC sont beaucoup utilisés par l'amateur d'électronique (avec les Atmel AVR) . La suite de développement fournie par Microchip est très efficace mais ne fonctionne pas sous Linux et ne propose pas de compilateur C en standard. Nous allons faire d'une pierre deux coups en installant Piklab qui permet de compiler (en assembleur mais aussi en C via SDCC), simuler et programmer des PIC sous Ubuntu.
Installation
Pré requis
Avant d'installer Piklab, quelques paquets doivent être installés :
alienqui permet de convertir un paquetrpm(paquet RedHat et compatibles) en un paquetdeb(debian et compatibles)gputilsetgpsimsont l'assembleur et le simulateur de PICsdccest un compilateur C pour de nombreux microcontrôleurs dont les PICs.
Pour les installer, soit la ligne de commande (apt-get ou aptitude) soit Synaptic.
Piklab est une application KDE, il faut donc les librairies Qt, la plupart du temps elles sont installées, car on a souvent des application KDE en plus des applications Gnome.
Installation de Piklab
Pour l'installation, la manœuvre est expliqué en anglais sur le forum ubuntu.
Télécharger le fichier piklab-0.14.5-1mdv2007.0.i586.rpm sur sourceforge. Ensuite le transformer en paquet deb à l'aide de la commande suivante :
sudo alien piklab-0.14.5-1mdv2007.0.i586.rpm
Puis l'installer avec
sudo dpkg -i piklab_0.14.5-2_i386.deb
Ensuite il reste à construire des liens vers deux librairies (edit du 17/10/2007 : éventuellement le numéro de version peut changer) :
sudo ln -s /usr/lib/libpcreposix.so.3.12.0 /usr/lib/libpcreposix.so.0 sudo ln -s /usr/lib/libpcre.so.3.12.0 /usr/lib/libpcre.so.0
Ensuite pour lancer Piklab, soit la ligne de commande (piklab), soit le menu Applications, Développement, Piklab.
Premier projet en C
Création du projet
Dans le menu projet, choisir nouveau projet. Dans la boite de dialogue qui apparait, choisir le processeur voulu et le compilateur SDCC. J'ai choisi un PIC16F628A qui est souvent utilisé pour des projets simples. Ensuite, cliquer sur Next, une nouvelle boite apparait. Elle permet d'ajouter des fichiers existants au projet ou de choisir un fichier source modèle (un template). C'est cette solution que nous allons retenir en cliquant sur Finish. Un fichier .c est crée avec une configuration par défaut. Nous allons maintenant retoucher la configuration des fusibles du PIC.
Configuration des fusibles
Le menu Tools propose un assistant pour construire la configuration des fusibles en cliquant sur Générateur de configuration.... La boite de dialogue ci-contre apparait. Pour notre test, j'ai choisi de modifier le type d'horloge en passant FOSC à Quartz/résonateur(0001). Il faut ensuite copier la ligne de configuration dans le presse papier (en utilisant le bouton qui va bien !) puis remplacer la ligne de configuration existante avec le contenu du presse papier.
Écriture du programme
Là on va faire simple ! Dans la fonction main, on va simplement ajouter un compteur dont on envoie la valeur sur le PORTB :
void main() {
char i;
for(i=0;i<=255;i++){
PORTB=i;
}
}
Compilation et simulation
Pour construire l'ensemble du projet, appuyer sur F8 (ou aller dans le menu Construire puis Construire le projet). Après quelques lignes dans le journal de compilation (fenêtre du bas), la compilation est terminée. Quelques nouveaux fichiers sont crées, notamment le fichier .asm qui contient le code assembleur obtenu.
Avant de programmer le PIC, il est souvent utile de faire une petite simulation (d'autant plus que je n'ai pas de programmateur sous la main !). Nous allons donc faire une simulation qui va nous permettre de surveiller l'évolution du PORTB, qui doit normalement compter de 0 à 255.
Pour commencer, nous allons ajouter le PORTB dans la liste des éléments à surveiller. En cliquant sur l'onglet Vue surveillance dans le panneau de gauche, un nouvel onglet apparait dans l'éditeur. En cliquant sur le bouton PORTB, on sélectionne Surveiller pour ajouter le PORTB à la liste des registres observés.
Ensuite, avant de lancer la simulation, il est utile de placer un (ou des) point(s) d'arrêt(s) pour interrompre le programme en cours d'exécution. Ouvrir le fichier .asm en double cliquant dessus, puis se placer sur une ligne de code (par exemple MOVF r0x20,W) et cliquer du bouton droit (le menu Définir un point d'arrêt apparait).
Pour lancer la simulation, aller dans le menu Débogueur puis Démarrer (on peut aussi cliquer sur le bouton de la barre d'outils). La simulation commence et s'arrête sur le point d'arrêt qui devient vert. Il est possible de continuer la simulation soit en cliquant sur l'icône pas-à-pas (une flèche au dessus d'un x), soit en cliquant de nouveau sur le bouton Démarrer. Dans l'onglet Vue surveillance, l'état du PORTB est mis à jour à chaque passage au point d'arrêt, on constate bien que la boucle compte.
Commentaires
Bonjour,
Je n'arrive malheureusement pas à faire fonctionner le logiciel en suivant vos instructions. J'obtiens l'erreur suivante lors du lancement :
libpcreposix.so.0: cannot open shared object file: No such file or directory
Je présume que j'ai mal construit les liens vers les librairies. Quels sont les numéros de version à modifier et ceux à conserver dans les lignes de commandes ? En d'autres termes quelles seraient les lignes de commande en remplaçant les constantes propres au système par xx ?
P.S. j'utilise ubuntu 7.10.
Je suis nouveau sous linux et vous prie de m'excuser si cette question vous parait évidente. Merci pour votre attention.
++
Problème résolu en ajoutant un -f (force) en option.
Merci pour cette causerie très utile ! :-)
++
Pour simuler, il faut que gpsim soit installé et surtout choisir gpsim comme programmeur. Sinon, les boutons de simulation apparaissent en grisé et inaccessibles.
Piklab s'installe sans problème depuis Synaptic avec Ubuntu 8.04 beta Hardy Heron.
Très bon topic, il faut préciser que lorqu'on fait une installe à partir de synaptic, il faut bien sélectionner les paquets gpsim en simul et en doc, et qu'il faut aussi posséder le compilo g++ ce qui n'est fait par défaut dans ubuntu