▪Le Bootloader
-Le Bootloader est un programme court utilise pour graver le firmware sans utiliser un programmateur comme
FLASH ou la RAM et saute sur le programme desire, a partir de la il s'occupe de l'execution.
-Le processus de gravage de donnee fournie au Memoire Programme est controllee par le Bootloader
-Il s'agit aussi de la 1ere programme qui sera executee et peut charger d'autres applications vers des places
specifiques en memoire et est fournie vers l'interface en serie.
-L'objectif de Bootloader: Bootloader est une application autorisant au logiciel systeme qui doit etre mis a jour
sans utiliser n'importe quel materiel special comme le programmateur JTAG.
-Les differentes roles d'un Bootloader:
+Un bootloader gere les images systeme.
+Il recoit une information de nouveau programme externe via quelques moyens de communication(ex:UART)
et ecrit cette information dans la Memoire Programme du processeur .
Rq: -L'information externe peut etre communique avec le processeur a travers quelques varietes de protocole
comme USART, CAN, I2C Ethernet, USB
-Ils existent plusieurs differentes tailles et varietes du boot-loader integree
-Systems avec bootloaders a au moins 2 images de programme coexistant sur le meme microcontroleur qui
doit inclure une branche de code qui effectue une verification si une tentative de mise-a-jour est en cours ou
non. Ceci est en contraste avec la facon normale d'obtention de programme dans le microcontroleur, qui
passe par un hardware special construit dans le microprocesseur a cet effet. ex: Sur les PICs, cela est comme une
interface SPI.
-Rq: Le point important de programmation externe a travers un hardware specifique est, qu'il travaille quelque
soit les contenus existants de memoire programme .
-Microcontroleurs commence par la memoire programe effacee, ie que la programmation externe est le seul
moyen d'obtenir la 1ere programme dans le microcontroleur (raison pour laquelle, on utilise une
programmation externe pour un bootloader)
-Rq: Il existe une variete de logiciel de bootloader pour toutes types de microcontroleur, sur Internet
Voici une illustration "Comprendre le systeme de demarrage integre":
▪Le systeme de demarrage:
-est une multi-etapes de sequence impliquant des nombreux sous-etapes pour resoudre ce probleme.
-N'importe quel systeme de demarrage incluant le demarrage Windows, Linux, RTOS integree commence par une
application de POWER vers le systeme et tout de suite apres la meme application qui effectue une
suppression de programme de reinitialisation de systeme.
NB: Notons bien que durant la reinitialisation ou remise par defaut , on devra reconfigurer les peripheriques
hardware si les valeurs operationnels differe de valeurs par defaut.
-Pour activer un systeme de demarragae flexible a l'aide de USB, PCIe(Peripheral Component Interconnect
Express) et SDHC(Secure-Digital-High-Capacity) interfaces et d'autres appareils de memoire convetionnel,
on requiert des capacites profondes de Hardware et Software.
Commentaire: Il s'agit d'une facon optionnel pour programmer une application de firmware sur un appareil
utilisant un bootloader.
L'utilitaire UBoot(Universal Boot Loader) largement utilisee dans les plates-formes de systemes
embarques, a beaucoup de valeur .
Le linux basee sur un bootloader peut automatiquement demarrer le Systeme d'exploitation
alternativement et cela permet d'executer manuellement les commandes explicites de demarrer le Systeme
d'exploitation et cela supporte le demarrage a l'aide de variete d'interfaces.
-Durant le processus de programmation de bootloader de microcontroleur , l'application firmware devra etre
transferer vers la memoire de la carte. Cela est normalement fait avec un programmateur qui grave le code
machine dans la memoire du programme.
▪Ouu se place le bootloader dans l'espace memoire?
-Le bootloader est placee au debut ou a la fin de l'espace memoire programme et il sera le 1er programme
qui sera executee apres la mise sous-tension de l'appareil.
▪Cas ou le bootloader se trouve au debut de memoire programme:
-L'adresse de la routine d'interruption devra etre passee de la meme facon apres celle de bootloader.
▪NB: Le firmware de bootloader devra etre transferee a la memoire programme de la carte avant qu'il pourra
etre utilise pour programmer le firmware de l'application sur l'appareil. Cela devra etre fait avec un
programmateur conventionnel comme mentionne ci-dessus.
-Le firmware de bootloader et le firmware d'application partagent la meme espace memoire sur la carte,
et par consequent on doit s'assurer de ne pas ecrire sur le bootloader au cours de transfert de code
d'application vers la memoire programme
▪Cas de detection d'intention de programmer, par le Bootloader :
-si le bootloader detecte l'intention de programmer , il prendra tout le controle et transfere le code de
programme vers l'appareil, ou il donnera au firmware de l'application en sautant a l'adresse et marque le
point d'entree du firmware.
-Ce point d'entree devra etre defini dans le code de bootloader.
▪Quel est le Bootloader dans un Microcontroleur et Comment fonctionne-t-il?
-Le bootloader devra etre programmer dans la memoire programme de uC en utilisant un programmateur
conventionnel, et plus tard le uC sera programmee sans utiliser un programmateur une fois que le bootloader
est mis en place.
-Sachez aussi, qu'une fois que le bootloader est installe , chaque fois qu'on fait reset, il commence a tourner,ou
a executer comme un programme conventionnel dans uC bootloading.
-Par exemple: Programmer PIC18 avec bootloader AN310 et HI-TECH C Compiler (bootloader AN310 fournit
une option de demarrage incrementiel qui nous fournit a changer seulement le bloc memoire qui a ete modifiee
avec la programmation de uC. et HI-TECH C Compiler, c'est pour compiler le programme de firmware de
bootloader.
-Lorsque le bootloader est installee , il se trouve au debut de l'espace de memoire programme, l'adresse de
debut de firmware application devra etre deplacee vers une adresse en dehors de region memoire ouu se
trouve le bootloader.
-Lors de demarrage de uC, l'adresse cible de la routine d'interruption sera deplacee en consequence comme le
firmware de bootloader qui occupe l'adresse de l'interruption bien. Lorsque nous attendons normalement
l'adresse de la routine d'interruption, on trouvera un pointeur qui deplace l'adresse de l'interruption.
▪Lors de la transmission de bit par UART:
-controlee par l'UART bootloader .
-le protocole de communication utilisee entre le PC et le uC est l'UART : et sachez que c'est tout le bootloader
qui est chargee de saisie et l'ecriture des bytes transmis entre eux, vers la memoire programme de uC et recu
dans une place predefinie dans l'espace memoire programme.
-Une fois que touts les bits sont recu, le bootloader de uC execute un saut sur le debut de la zone memoire et
l'execution de programme normal commence.
ANNEXE: Pour graver le bootloader dans le microcontroleur: on a: AVR-ISP (in-system programmateur)
Difference entre logiciel et application:
-logiciel: c'est un ensemble de programme fournissant des instructions pour l'ordinateur . Il est
fondamentalement le systeme d'exploitation et tous ses programmes associees.
-application: ou logiciel d'application qui est aussi un ensemble de programme concu pour aider l'utilisateur a
effectuer diverses taches sur l'ordinateur .
NB: application est un type de logiciel , mais les logiciel ne sont pas des applications.