Un Bootloader ? c'est quoi?

Un Bootloader est un programme, qui se lance en amont de toute application, qui permet de prendre la main sur un systeme afin de pouvoir (dans notre cas) faire évoluer le logiciel contenu dans ce systeme, et ce, sans necessiter de trops lourds moyens de programmation. Généralement un simple ordinateur avec un moyen de connexion au système suffit (Câble RS232, USB, Ethernet, ...)


Le bootloader est donc composé de 2 logiciels disctincts:

- un logiciel à installer sur le PC : (BootPic)
qui servira à ouvrir un dialogue avec le système, à choisir le fichier à injecter, puis de le programmer.

- un logiciel re-programmé dans le système : (fichier HEX)
qui servira à dialoguer avec le PC pour pouvoir correctement recevoir la nouvelle version du fichier, puis de l'écrire en lieu et place de l'ancienne version.

Le Principe

A la mise sous tension de la carte, le Bootloader envoi au PC (via RS232), un octet de démarrage. Après l’envoi de cet octet, le Bootloader se met, pendant une durée donnée, en réception d’un octet d’accrochage provenant du PC. Dès que le Soft PC (BootPic) reçois l’octet de démarrage, il renvoie au Bootloader un octet d’accrochage. 
Dès réception de cet octet, le Bootloader est prêt à exécuter les commandes reçues par le Soft PC (BootPic). Si l’octet d’accrochage n’est pas reçu durant le délai donné, le Bootloader vérifie si une application est déjà présente en flash (Octet de Check Appli). 
Si aucune application n’est présente, le Bootloader réémet l’octet de confirmation puis se remet en attente et ainsi de suite. Si une application est présente, Le Bootloader saute vers le point d’entrée de cette application puis l’applications’exécute.

Le Logiciel BootPIC (côté PC):

BootPic V1.00.33 (19/06/08)

 

Fichier HEX (côté PIC):

Débit RS232
57600 - HSPLL
 
Version  
18F2320
 
18F452
 
18F458
 
18F4580
 
autres Pic demander...
 

 

 

Intégration dans un Projet

Pour pouvoir utiliser le bootloader avec son application, il faut structurer un minimum son projet comme suit: (redirection des vecteurs de boot, interruptions, etc... sinon ce sera la cata).

      Linker :
      • Ne pas intégrer de Startup File à ce niveau. (Fig1)
      • Définir une Zone Boot PROTEGEE. (Fig1)
      • Définir une Zone Vector PROTEGEE. (Fig1)
      • Définir une Zone Page. (Fig1)
      • Définir Une Zone IDSOFT « ID Applicatif). (Fig1)

      Code :
      • Réserver une Zone « ID Applicatif ». (Fig2)
      • Relocaliser les vecteurs d’interruptions. (Fig3)

      Startup File :
      • Intégrer le Fichier Startup dans le projet
      • Déclarer le point d’entrée de l’applicatif. (Fig4)


      Fig1 : Fichier Linker Projet Applicatif sur 18F458.

       

      Fig2 : Fichier Code Projet Applicatif, IDSOFT.

       

      Fig3 : Fichier Code Projet Applicatif, Interruption High.

       


      Fig4 : Startup File Projet Applicatif, Point entrée Applicatif.

       

      MAP MEMOIRE : Implantation Bootloader + Applicatif 18f458)

     

     

Utilisation

  • STEP 1 - Installer Boot Pic (Attention il sera peut-être necessaire d'exécuter Bootpic en tant qu'administrateur),
  • Programmer le PIC avec le fichier Hex,
  • Lancer BootPic,


  • Configurer le bon port COM,

 

  • Cliquer sur le bouton "Try Boot",

 

  • Connecter la maquette au PC et mettre sous tension la maquette,

 

  • Si la communication s'est bien passée, BootPic doit afficher :
    • "BootLoader accroché" dans le bandeau supérieur,
    • la version du PIC détecté (ici 18f4580),
    • la version du fichier Hex flashé (ici v0.09),
    • un commentaire d'identification du bootloader (ID Boot),
    • la présence ou non d'un applicatif et un commentaire d'identification (ID appli),

 

  • Sélectionner dans "Fichier > Ouvrir" le fichier Hex d'une appli à flasher.

 

  • Cliquer sur le bouton "Flasher" et attendre que la barre de progression arrive à la fin et que "FLASH TERMINE" soit affiché. Cela peux mettre plus ou moins de temps selon les supports, pc, etc...

 

  • Si lors de l'accrochage du Bootloader, une application est déjà présente, BootPic le signal pour prévenir tout écrasement.

 

  • L'applicatif déja présente est la version v3.4

 

-- FIN --

 

Remarques

Ce Bootloader a été écrit en VB6.
Il fonctionne correctement sous XP, Vista, Seven 32&64bits en l'exécutant en tant qu'administrateur.
Si il vous manque des DLL, OCX ou si vous avez des messages d'erreurs, c'est par ICI qu'il faut aller voir en premier sinon contactez moi.
Théoriquement tous les PIC 18F doivent être reconnus par BootPic avec un peu d'ajout de déclaration dans les fichiers de Config et peut-ête des modif dans le fichier Hex.
Si vous ajoutez des PIC n'hésitez pas à me faire suivre vos fichiers de Configuration pour effectuer les mises à jour.
Ce BootLoader n'utilise pas les interruptions, il n'intègre pas de Watchdog.

 

 

© 2010 Morbak
.