PIC32 bootloader et effacer reset vector address
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

PIC32 bootloader et effacer reset vector address



  1. #1
    amoniaque

    PIC32 bootloader et effacer reset vector address


    ------

    Bonjour,

    Je cherche à utiliser du bootloader sur du PIC32MX795F512L.
    J'utilise les exemples fournis pour Microchip et le tout fonctionne bien.
    J'aimerais faire évoluer mon application et passer directement dans le bootloader suite à une commande.

    Dans le firmware du bootloader, la fonction permettant de vérifier s'il y a déjà un application présente est :
     Cliquez pour afficher


    Donc en gros s'il y a 0xFFFFFFFF dans le vecteur de reset (dans mon cas 0x9D007000) alors c'est qu'il n'y a pas d'application valide sur le µC.

    Ce que j'aimerai donc faire, c'est lorsque je demande un accès au bootloader (via mon application), j'efface ce vecteur de reset.
    Chose que je n'arrive pas à effectuer...

    J'utilise la fonction :
    Code:
    void* ProgAddress = (void *) (USER_APP_RESET_ADDRESS);
    UINT8 i = 0x55;
    
    i = NVMemWriteWord(ProgAddress, 0xFFFFFFFF);
    Qui me renvoie 0, donc que l'opération s'est correctement déroulée. Sauf que quand je vérifie l'adresse 0x9D007000 alors il n'y a pas 0xFFFFFFFF.

    J'utilise le compilateur C32.

    Est ce que quelqu'un aurait une idée ?

    Merci par avance.

    -----

  2. #2
    luc_1049

    Re : PIC32 bootloader et effacer reset vector address

    Bonjour

    Je lis 2 cast différents void * et uint32 * sont ils bien compatibles ?

    Pour écrire dans cette zone de vecteur reset il s'agit d'une mémoire style eeprom ou flash je suppose, la fonction NVMemWrite doit -elle être précédée par une fonction qui efface ?

    Faites un essai d'écriture ailleurs est ce que cela fonctionne ?

    Y-a-t-il un mot de configuration qui empêcherait l'accès en écriture ?

    cdlt

  3. #3
    amoniaque

    Re : PIC32 bootloader et effacer reset vector address

    Bonjour,

    Je lis 2 cast différents void * et uint32 * sont ils bien compatibles ?
    Oui, l'adressage sur PIC32 est de 32bits mais la fonction NVMemWriteWord() demande un void* en paramètre.

    Pour écrire dans cette zone de vecteur reset il s'agit d'une mémoire style eeprom ou flash je suppose, la fonction NVMemWrite doit -elle être précédée par une fonction qui efface ?
    En effet c'est de la flash, mais il n'y a pas besoin d'effacement préalable.

    Faites un essai d'écriture ailleurs est ce que cela fonctionne ?
    J'ai tenté sur une autre plage mémoire, une non utilisée et ça ne donne rien. J'ai aussi essayé sur un mot déjà à 0xFFFFFFFF et pareil.

    Y-a-t-il un mot de configuration qui empêcherait l'accès en écriture ?
    Les protections ne sont pas validées :
    Code:
    #pragma config CP       = OFF           // Code Protect
    #pragma config BWP      = OFF           // Boot Flash Write Protect
    #pragma config PWP      = OFF           // Program Flash Write Protect
    Merci.

  4. #4
    luc_1049

    Re : PIC32 bootloader et effacer reset vector address

    Bonjour

    Si c'est de la flash et non de l'eeprom on écrit que sur un secteur effacé au préalable, essayer de lire le secteur de l'adresse du vecteur reset et vérifiez que tout est vierge cad à 0xFF.
    Inspirez vous notamment du lien suivant comme piste.
    http://www.microchip.com/forums/m662408-print.aspx

    cdlt

  5. A voir en vidéo sur Futura
  6. #5
    RISC

    Re : PIC32 bootloader et effacer reset vector address

    Salut,

    Il y a eu pas mal de changement dans les fichiers linkers des compilateurs pour les PIC32 depuis 2 ans...
    Le compilateur a utiliser maintenant est le XC32.
    Utilises-tu le bootloader de la note d'application AN1388 ?

    a+

  7. #6
    amoniaque

    Re : PIC32 bootloader et effacer reset vector address

    Bonjour,

    Citation Envoyé par luc_1049 Voir le message
    Si c'est de la flash et non de l'eeprom on écrit que sur un secteur effacé au préalable, essayer de lire le secteur de l'adresse du vecteur reset et vérifiez que tout est vierge cad à 0xFF.
    Inspirez vous notamment du lien suivant comme piste.
    En effet, j'ai eu la réponse sur le forum Microchip, il faut effacer un secteur complet ce qui n'est pas du tout optimisé pour ce que je veux faire ...
    Je vais me débrouiller comme je peux et merci encore .

    Utilises-tu le bootloader de la note d'application AN1388 ?
    Yes, qui fonctionne très bien d'ailleurs. Ça gène que je continue à utiliser le C32 plutôt que le XC ?

    Merci de tes conseils.

  8. #7
    RISC

    Re : PIC32 bootloader et effacer reset vector address

    Salut,

    Tu peux continuer avec le C32 mais il n'évoluera plus car il a été remplacé par le XC32...

    a+

Discussions similaires

  1. bootloader - pic32
    Par invite38e9ccd7 dans le forum Électronique
    Réponses: 0
    Dernier message: 20/07/2012, 13h34
  2. bootloader pic32
    Par invite365ecf67 dans le forum Électronique
    Réponses: 0
    Dernier message: 10/05/2011, 10h24
  3. Bootloader en C sur pic32
    Par invite23ada26d dans le forum Électronique
    Réponses: 17
    Dernier message: 15/03/2009, 16h12
  4. [WIFI] Renewing address ip.
    Par invite82c35932 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 2
    Dernier message: 09/11/2008, 23h12
  5. Usb Address Register
    Par invitec1317d72 dans le forum Électronique
    Réponses: 0
    Dernier message: 21/04/2008, 14h43
Découvrez nos comparatifs produits sur l'informatique et les technologies.