16F88 |
Utiliser le bootloader de SPARKFUN |
WWW.PICTEC.ORG |
|
Régles d'utilisation du bootloader de SPARKFUN pour le 16F88 |
|
SPARKFUN met à la disposition des utilisateurs de 16F88 un bootloader entiérement gratuit. Pour l'utiliser il suffit de respecter quelques régles, a défaut le loader windows refusera de transférer le programme dans le PIC. Nous nous proposons de vous les expliquer ici.
Premiére étape: Ou trouver le bootloader ? |
Le bootloader
peut être téléchargé à l'adresse suivante: www.sparkfun.com/tutorial/Bloader/bloader.htm
L'ensemble
se présente sous la forme d'un fichier compressé dans lequel vous trouverez
un fichier éxécutable qui est le downloader windows et qui servira pour toute
la série des 16FXXX. Un certain nombre de fichiers à programmer dans votre 16F88
sont également fournis sous forme de source en C ou de fichiers HEX.
Ce bootloader
a été écrit avec CC5X et la compilation pourra être réalisée sans problème avec
la version de démonstration puisque le code comporte moins de 250 octets. A
noter toutefois que la version livrée avec le package logiciel est destinée
à fonctionner en utilisant un reset externe sur le PIC. J'ai préféré utiliser
le reset interne. Pour cela remplacer la directive #pragma
config |= 0x3F22
par #pragma
config |= 0x3F10.
Cette
directive figure à la ligne 16 du source en langage C.
Deuxiéme étape: Structure du programme |
Pour fonctionner
avec ce bootloader, votre programme se doit de respecter une seule régle. Il
s'agit de démarrer le programme à l'adresse 4 et le premier mot de la mémoire programme
doit être un saut à l'adresse de démarrage réelle. Il faut également que le
fichier HEX généré par votre compilateur ne comporte aucune données destinées
aux adresses 1,2 et 3 de la zone mémoire. A défaut le downloader vous indiquera
que vous ne respectez pas la structure imposée et ne transférera pas votre programme.
Cette
restriction empêche le bootloader de fonctionner, par exemple, avec les compilateurs
basic et pascal de mikroelektronika même si une directive mémoire est inscrite
dans le programme. Nous proposerons bientot un downloader compatible qui permettra
de contourner ce problème. Un utilitaire
est déja disponible pour modifier les fichiers hex générés par les compilateurs
de MikroElektronica.
Troisiéme étape: Exemple en langage C avec CC5X |
Voici la structure d'un programme en langage C écrit avec CC5X qui fonctionnera avec le bootloader:
La directive
indiquant au programme qu'il doit commencer à l'adresse 4 ne figure pas dans
le programme principal mais dans la librairie interrupt.c. Cette librairie est
disponible dans la section VRAC du site. www.pictec.org/vrac/uart/
Voici
néammoins l'ensemble du code source sous la forme d'un fichier compressé: firsttest.zip
Ce
fichier a été téléchargé 001454 fois.
Quatrième étape: Exemple en assembleur |
La structure d'un programme en assembleur est identique dans son principe, voici un exemple ci-dessous assemblé avec MPLAB:
Nous avons assemblé le programme à l'adresse 100 et un goto
figure en tête du programme et est assemblé à l'adresse 0.
Voici le fichier
asm correspondant: testasm.asm
Ce
fichier a été téléchargé 002600 fois.