C'est parti, ouvrons le firmware de ce bootloader dans MPLAB.
La version X de MPLAB est disponible mais n'intègre pas encore les instructions étendues nécessaires au bootloader Diolan. Vous devrez donc rester avec un MPLAB v8.xx
La première chose a faire est de lancer une compilation pour vérifier que tout ce passe bien. Si ce n'est pas le cas il vous faudra probablement indiquer quelques options de compilation. Ça se passe dans "Project / Build options / Project", notament dans l'onglet "MPASM / C17 / C18 Suite" il faudra cocher l'option "Extended Mode", vous aurez peut-être aussi à gerer les répertoires de travail. Si vous rencontrez d'autres erreurs, demandez a Google !
Une fois que l'étape de compilation est validée, vous devrez passer à la personnalisation des options pour qu'elles collent à votre projet.
Le fichier Makefile est une belle source de confusion, alors si vous n'êtes pas à l'aise avec son utilisation (c'est mon cas aussi !) je vous conseille de le supprimer, tout simplement.
Le firmware est configuré pour tourner sur un PIC18F4455, si vous souhaitez utiliser un autre µcontrôleur dans le menu "Configure" vous devrez modifier le "Device", fournir le bon fichier header, et ajuster les includes du code. Bref c'est du classique, si vous êtes en difficulté à cette étape vous trouverez de l'aide sur le web, n'en doutez pas !
Nous sommes dans le cadre d'un bootloader, donc comprenez bien que la configuration que vous définissez ici sera la seule utilisée par votre PIC, même votre firmware-application en héritera.
Réalisez donc les réglages, dans le fichier boot.asm, qui conviennent pour votre application, mais en faisant attention a laisser l'utilisation des Instruction étendues à ON (XINST = ON), et veillez à la protection du code (CPx, WRTx, EBTRx).
Dans le fichier usb_desc.inc, lignes 22 et 25, vous devrez renseigner vos propres identifiants.
Si vous n'en avez pas vous pouvez réutiliser - a titre expérimental - ceux de Microchip™, mais attention si vous souhaitez diffuser votre produit il vous faudra des Vid et Pid officiels.
Dans le fichier usb_desc.asm, lignes 138 et suivantes, vous pouvez personnaliser le nom du fabricant et du produit. Notez le caractère ";" en ligne 142, il est là pour écourter la chaîne de caractères.
Je vous avoue ne plus trop avoir en tête la raison précise de sa présence, mais il me semble que si la chaîne est plus grande on observait au moins un bug, si ce n'est un plantage. A vérifier !
Dans le fichier xtea.asm, ligne 50, se trouve le code qui protège vos transferts. Il est important de le personnaliser, vous devrez renseigner une suite de 16 octets. Notez bien votre code, il vous sera nécessaire lorsque vous crypterez vos firmware-application. J'ai lu a certains endroits sur la toile des difficultés avec les caractères minuscules, donc si vous rencontrez des problèmes : passez vos lettres en majuscules.
Dans le fichier io_cfg.inc dé-commentez ou commentez la ligne 23 pour l'utilisation ou non de l'allumage d'une LED pour indiquer le fonctionnement du bootloader. Lignes 26 et 27 renseignez le port et la ligne sur laquelle votre LED est connectée.
Veillez aussi a configurer le niveau logique a envoyer sur le port de la LED, par défaut il est envoyé un 0 pour l'allumage.
Si vous souhaitez l'inverse, il s'agit de modifier le fichier boot.asm en ligne 191, et de remplacer le "bcf" par un "bsf" :
bsf LED, LED_PIN
A chaque démarrage du PIC (reset ou autre), le bootloader vérifie s'il doit lancer le mode bootloader ou lancer votre firmware-application. Vous disposez de deux possibilités pour démarrer en mode bootloader.
Dans le fichier boot.asm s'est glissé une coquille qui empêche le bon démarrage du bootloader. Il suffit juste d'intervertir les lignes 146 et 147, voici le code corrigé :
131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 |
; Decide what to run bootloader or application #if USE_EEPROM_MARK ; Check EEPROM mark movlw EEPROM_MARK_ADDR movwf EEADR movlw 0x01 movwf EECON1 movlw EEPROM_MARK subwf EEDATA, W bz bootloader #endif ; Check bootloader enable jumper #ifdef USE_JP_BOOTLOADER_EN setf JP_BOOTLOADER_TRIS btfsc JP_BOOTLOADER_PORT, JP_BOOTLOADER_PIN #endif goto APP_RESET_VECTOR ; Run Application FW ; Run bootloader bra bootloader reset |
Nous en avons fini avec le bootloader, vous pouvez compiler et griller votre PIC, et passer a l'adaptation de votre firmware-application...
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 ! 👍
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.
En savoir plus sur ma pomme...
Je signe et chiffre mes emails : PGP: 9613 7EB1