Le Bootloader USB Diolan

Créé le :
dimanche 3 juillet 2011
Révisé le :
dimanche 18 décembre 2016

 

Diolan™ propose un joli bootloader USB pour PIC de la série des 18F4550 et compagnie.
Celui-ci permet la mise à jour de vos firmwares 'application' via le port USB (périphérique HID Standard), il comprend un cryptage XTEA de ces fichiers, il est disponible pour Linux et pour Windows™ et pour parfaire le tout il est distribué gratuitement sous licence GNU-GPL !

Pendant longtemps il est resté peu documenté, je vous propose ici mon tuto pour réussir sa mise en œuvre : du téléchargement jusqu'au fonctionnement optimal, en passant par une belle correction de bug : c'est ici et en Français.

 

1- Introduction :

Voici comment Diolan™ décrit son logiciel (traduction libre, arrangée et partielle de cette page) :

Ce bootloader vous permet de programmer une nouvelle image du firmware-application dans la puce en utilisant le port USB de votre périphérique.
- Le Bootloader est pleinement conforme à la spécification USB pour périphériques d'interface utilisateur (HID) sans installation de drivers spécifiques.
- Un algorithme de chiffrement XTEA est utilisé pour protéger (crypter) les fichiers firmware mis à jour.
- Le code du Bootloader est protégé en écriture et ne peut pas être écrasé par le firmware.
- Le mode de Mise à jour est sélectionné par action sur le hard (ex: un poussoir) et/ou par soft.
Le bootloader est petit et reste dans les 2.048 premiers octets de la mémoire programme du micro-contrôleur. Il entre en fonction au démarrage du PIC (ou sur RESET) et est capable de charger entièrement un programme d'application dans la mémoire d'un processeur. Quand le Bootloader est 'installé', il ya deux modes distincts de fonctionnement : le mode mise à jour et le mode 'utilisation'. Il utilise une marque en EEPROM et/ou un commutateur matériel pour déterminer le mode de fonctionnement.
En mode de mise à jour, le Bootloader utilise le port USB du PIC pour communiquer avec le PC et charger le nouveau firmware. Une fois la programmation faite, le Bootloader passe en mode utilisateur : le processeur est réinitialisé et l'exécution du nouveau code commence.
En mode utilisation, le Bootloader redirige simplement les vecteurs (reset et interruptions) vers ceux de l'application utilisateur.

Le bootloader de Diolan est vraiment une très bonne solution. Il permet de distribuer simplement des mises à jours aux utilisateurs finaux, et ceci sans compromettre la protection de notre firmware (l'application). Le firmware est crypté par un code que seul le PIC et le développeur connaissent.

"Sur le papier" tout semble parfait, mais en fait il y'a quelques coquilles a corriger dans le code, il y'a que très peu de temps que Diolan a publié une notice, en tout cas assez difficile d'accès, et pour couronner le tout il n'y a pas de support de leur part.

A l'affût sur ce bootloader depuis pas mal de temps, j'ai réussi a glaner suffisamment d'informations pour maintenant retranscrire une synthèse de mon expérience, qui vous servira je l'espère. C'est ma façon de contribuer au libre.

 

2- Récuppérer les fichiers :

Rendez vous sur le site Diolan, et plus particulièrement sur la page de téléchargement du bootloader et récupérez le 'zip' de votre choix (à l'heure ou j'écris cet article c'est la version 0.2.2 qui est disponible) et décompressez-le où bon vous semble.

Ce que contient ce package (les versions Zip et Tar ont le même contenu) :

  • Le répertoire 'bin' : contient les programmes pour PC. Je détaillerais dans cet article leurs utilisations.
    L'exécutable permettant d'encoder ("encoder.exe") vos firmwares-application, et l'exécutable ("fw_update.exe") pour effectuer la mise à jour de vos firmwares-application.
  • Le répertoire 'encoder' : contient le code source du programme PC d'encodage de firmwares-application.
    Je ne décrirais pas son fonctionnement dans cet article (cela fera peut-être l'objet d'un autre article, un jour...).
  • Le répertoire 'fw' : contient le code source (en Assembleur) du firmware-bootloader à griller dans le PIC.
    C'est principalement ici que nous aurons a œuvrer (corriger un bug, personnaliser le code de cryptage,...).
  • Le répertoire 'fw_update : contient le code source du programme PC permettant de communiquer avec le firmware-bootloader.
    Je ne décrirais pas son fonctionnement dans cet article (cela fera peut-être l'objet d'un autre article, un jour...).
  • Le répertoire 'interface' : contient un fichier .h que je n'ai pas encore démystifié...

 

Connexion :

Mon flux Mastodon :

  • Hello les #bidouilleurs×eusesEst-ce qu'une tête thermostatique de radiateur fonctionne uniquement en ouvert/fermé ou y en a t-il des proportionnelles ?Je cherche à faire le bon choix d'achat pour ma future #domotique pilotée par #homeassistant de mes #radiateurs #zigbee et #matter.

  • salut les mordus de #domotique,Comment ça marche le #zigbee ?Est-ce qu'un appareil peut communiquer en dehors du réseau local ? Genre : peut-il transmettre à l'extérieur des infos concernant son utilisation ?Je me demande ça car les appareils wifi eux se connectent souvent à leurs fabricants pour pouvoir être pilotés avec l'app que tu installes sur ton phone.Et j'aime pas[…]

  • Je viens de découvrir un site EXTRA pour non seulement avoir les paroles mais aussi les explications de textes. Époustouflant !Voilà de quoi il s'agit :https://genius.com/8527263

  • Passer de #cyanogem à #LineageOs : done! Grâce à :https://tuxicoman.jesuislibre.net/2017/02/passage-de-cyanogen-a-lineageos.htmlMerci ! 👍

logo-mail2voice-248x77 ecf67

Mail2Voice est un logiciel libre (et gratuit) pour envoyer et recevoir des mails sans savoir ni lire ni écrire.
Il s'agit d'un client de mail dédié principalement à des personnes en situation de handicap cognitif et/ou d'illettrisme.

Les messages sortants sont traités par enregistrement audio (pièce jointe mp3), et messages entrants sont lus par une synthèse vocale. Les contacts du carnet d'adresses sont accessible par photo.

Lire la suite...

Je soutiens la neutralité du Net !

logo la quadrature du net

À propos de moi :

En savoir plus sur ma pomme...

Je signe et chiffre mes emails : PGP: 9613 7EB1

Suivez-moi :

logo RSS  logo Mastodon