2017-04-04 4 views
0

En-tête semble un peu étrange, je ne comprends pas ce que je devrais écrire là-bas, mais j'espère que je suis en mesure de vous faire comprendre ce que je veux faire exactement! - Le chargeur de démarrage principal et le chargeur de démarrage secondaire résident tous les deux dans différentes zones de la mémoire (peuvent être flash de démarrage ou programme flash). - Un bootloader sera actif à la fois et l'autre sera inactif. - Soit considéré, le bootloader primaire est actif, et maintenant je vais télécharger le firmware de mon application. Je lis aussi la version active du bootloader à partir du firmware de l'application afin que je puisse vérifier si j'ai besoin de mettre à jour le bootloader. - Et si j'ai besoin de mettre à jour le bootloader, alors le bootloader inactif sera activé et il remplacera le bootloader précédemment actif par un bootloader mis à jour. Et bootloader secondaire va revenir en mode inactif. Ainsi, le bootloader secondaire ne devient actif que lorsqu'il doit mettre à jour le bootloader primaire. - Dans l'ensemble de ce processus, je souhaite réserver une zone de mémoire pour la version de bootloader primaire, la version de bootloader secondaire et certaines données de configuration personnalisées avec emplacement de mémoire fixe et accessible depuis le microprogramme principal, secondaire et d'application.Plusieurs chargeurs d'amorçage dans le même PIC32MZ?

Répondre

0

Vous devez comprendre les fichiers de liaison. Je n'ai pas encore fait cela pour la ligne MX/MZ mais j'ai fait ce genre de chose sur BEAUCOUP de dsPIC33. À peu près de la façon suivante: Bootloader obtient une quantité de flash dédiée dans le .gld généralement une seule page afin qu'il soit plus facile à effacer (0x400) puis le chargeur Superboot (le bootloader secondaire) est chargé seulement dans le PIC lorsque vous chargez un nouveau chargeur de démarrage. Donc, ce qu'est le chargeur de superboot est vraiment une petite application conçue pour simplement mettre à jour le bootloader et ensuite passer à l'adresse de réinitialisation du bootloader. Personnellement, je ne garderais pas le code de chargement secondaire/super tout le temps tout simplement pour éviter toute confusion plus tard. Vous pouvez vraiment le faire en utilisant des techniques de mise à jour de l'extérieur du PIC. Encore une fois, je ne peux pas offrir d'aide directe avec la ligne PIC32 mais si vous souhaitez voir des exemples de fichiers de liens pour les lignes dsPIC33, je peux les fournir.

+0

Il y a de la mémoire flash de démarrage disponible dans PIC32MZ et si j'utilise le chargeur de démarrage de mise à jour en direct alors comment cela fonctionnera-t-il? –