[Programmation] prog bootloader sur pic32mx795f512l
Répondre à la discussion
Page 1 sur 4 12 3 DernièreDernière
Affichage des résultats 1 à 30 sur 111

prog bootloader sur pic32mx795f512l



  1. #1
    davidif

    prog bootloader sur pic32mx795f512l


    ------

    Bonjour,

    je suis en train de programmer un bootloader pour mon programme principal.

    Tout du moins, j'ai déjà un programme bootlaoder qui marche sur d'autre soft compilé sous mplab (hors harmony).
    Quand je le charge dans mon pic32, celui-ci le prend bien en compte, je me connecte en USB puis je peux charger des fichers hex sans problème.

    Le soucie c'est que mon programme principal contenu dans le fichier hex ne démarre pas, bien évidement je peux à nouveau me reconnecter en USB pour à nouveau recharger.

    Probablement que les allocation de mémoires sont à revoir je penses, seulement, dans les termes du linker certaines notions m'échappent quelques peux et un peut d'aide ne serait pas de refus.

    Mon programme principal est fait sous harmony, ce ma pas empêché de coder moi même, même si celui-ci générait son code en fonction de choix coché.

    J'ai tenté de générer un linker sous harmony mais j'ai quand même des erreurs qui apparaissent


    Code:
     Link Warning: absolute section '_0450d96058332356' crosses the boundary of region kseg0_program_mem.
     Link Error: Could not allocate section '_0450d96058332356' at 0x9d000000
     Link Error: Could not allocate program memory
    collect2.exe: error: ld returned 255 exit status
    make[2]: *** [dist/pic32mx_eth_sk+ioexp+11n+freertos/production/pic32_eth_wifi_web_server.X.production.hex] Error 255
    make[1]: *** [.build-conf] Error 2
    make: *** [.build-impl] Error 2
    
    BUILD FAILED (exit value 2, total time: 16s)
    un moment, dans mon code,il est alloué un emplacement mémoire
    #define DRV_NVM_MEDIA_SIZE 64
    #define DRV_NVM_MEDIA_START_ADDRESS 0x9D000000

    destiné à y mettre les pages webs qui font environ 29ko

    j'ai supposé que le problème viendrait de là, j'ai donc modifié et mis
    #define DRV_NVM_MEDIA_START_ADDRESS 0x9D009000

    et là, cela ma généré énormément d'erreur

    Code:
    build/pic32mx_eth_sk+ioexp+11n+freertos/production/_ext/1360937237/custom_http_app.o: Link Error: Could not allocate section .text.TCPIP_HTTP_FileAuthenticate, size = 148 bytes, attributes = code 
    build/pic32mx_eth_sk+ioexp+11n+freertos/production/_ext/2081437825/wdrv_mrf24wn_misc.o: Link Error: Could not allocate section .text.WDRV_Assert, size = 148 bytes, attributes = code 
    build/pic32mx_eth_sk+ioexp+11n+freertos/production/_ext/308321468/osal_freertos.o: Link Error: Could not allocate section .text.OSAL_SEM_Create, size = 148 bytes, attributes = code 
    build/pic32mx_eth_sk+ioexp+11n+freertos/production/_ext/1750042194/sys_fs.o: Link Error: Could not allocate section .text.SYS_FS_FileNameGet, size = 148 bytes, attributes = code 
    build/pic32mx_eth_sk+ioexp+11n+freertos/production/_ext/1886247299/helpers.o: Link Error: Could not allocate section .text.uitoa, size = 148 bytes, attributes = code

    Mon programme prendrai : 482712 bytes / 531968
    mes datas : 72080 bytes / 131072

    comment pourrais-je organiser mon linker programme principal et bootloader



    Merci de votre disponibilité

    -----

  2. #2
    katmai

    Re : prog bootloader sur pic32mx795f512l

    Salut,

    Tu peux nous montrer ton linker script?
    Je suis pas un expert en linker script mais peut-être que tu as des zones qui se recouvrent?

    A+
    Fred

  3. #3
    davidif

    Re : prog bootloader sur pic32mx795f512l

    Citation Envoyé par katmai Voir le message
    Salut,

    Tu peux nous montrer ton linker script?
    Je suis pas un expert en linker script mais peut-être que tu as des zones qui se recouvrent?

    A+
    Fred
    Merci d'avoir répondu katmai

    Je pense certainement que ça doit ce chevaucher, seulement certaine notion de zone mémoire m'échappe un peu.

    Je mettrais bien mes linker, seulement je ne sais pas quel morceau des linkers t'éclairerai au mieux, je te met donc des liens

    mon linker bootloader : https://www.dropbox.com/sh/s15bkllbe...1hI3dQ2Wa?dl=0
    Celui-ci fonctionne avec d'autre de mes applications, je boot bien dessus et arrive à charger un fichier .hex

    Mon linker application : https://www.dropbox.com/sh/10kzi6kls...jtZoYp68a?dl=0
    Que j'ai tenté de vainement modifier sans succé


    j'ai un linker d'origine pic32f795l512 application qui passe la compilation mais qui ne démarre pas quand je le charge
    https://www.dropbox.com/sh/xzmkikp7z...oaCgw59za?dl=0

    Merci de ton aide

  4. #4
    katmai

    Re : prog bootloader sur pic32mx795f512l

    Salut,

    Ils sont horriblement complexes ces trucs là .

    Sinon je relève dans ton linker script d'application :
    kseg0_program_mem (rx) : ORIGIN = (0x9D006000 + 0x1000 + 0x970 + 0x490), LENGTH = (0x80000 - 0x6000 - 0x1000 - 0x970 - 0x490-0x10000)

    Et tu mets tes pages web en 0x9D000000 donc oui ça peut poser problème.

    D'ailleurs pourquoi es tu obligé de spécifier une adresse pour tes pages web?
    Tu ne peux pas laisser le linker faire son job?

    Fred

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

    Re : prog bootloader sur pic32mx795f512l

    Merci d'avoir pris le temps d'examiné mes fichiers,

    En fait, j'essai de pas trop toucher à ce que je maîtrise le moins, notamment ce qui touche à l'espace mémoire et l'emplacement des pages web était fixé comme tel dans l'exemple de programme dont je me suis servit pour faire mon soft.

    J'ai quand même tenté de déplacer leur position, ce qui à données lieu à un paquet d'autres erreur par la suite comme décrit en poste 1

    d'autres instructions doivent certainement être également ailleurs mais je ne sais pas comment localiser leur emplacement

  7. #6
    katmai

    Re : prog bootloader sur pic32mx795f512l

    Ce qui est possible c'est que les pages web forment un gros packet de données et du coup tu ne peux pas les mettres sans entrer en conflit avec le linker script.

    Fred

  8. #7
    invite830075ec

    Re : prog bootloader sur pic32mx795f512l

    Salut,
    Je suppose que Harmony place toute sa cargaison à partir du début de la flash, donc ce sera plus facile de déplacer ton bootloader en fin de flash.
    Il faut aller vérifier que les derniers secteurs de la flash restent bien à 0xff.

  9. #8
    davidif

    Re : prog bootloader sur pic32mx795f512l

    On peut metttre le bootloader en fin de flash ? les pages web ne prennent pas beaucoup de places environ 29ko , je les ai réduites au stricte minimum.
    Normalement rien d'autres est présent dans la flash...

  10. #9
    davidif

    Re : prog bootloader sur pic32mx795f512l

    Citation Envoyé par katmai Voir le message
    Ce qui est possible c'est que les pages web forment un gros packet de données et du coup tu ne peux pas les mettres sans entrer en conflit avec le linker script.

    Fred
    Les pages prennent environ 29Ko sur une flash de 131Ko si je dis pas de bêtises, à confirmer j'ai un légé doute

  11. #10
    invite830075ec

    Re : prog bootloader sur pic32mx795f512l

    Tu fais une boucle qui lit la flash en décrémentant l'adresse à partir de 0x7FFFF et tu t'arrêtes quand c'est plus 0xFF, faut le faire parler ce processeur.

  12. #11
    davidif

    Re : prog bootloader sur pic32mx795f512l

    Citation Envoyé par satinas Voir le message
    Tu fais une boucle qui lit la flash en décrémentant l'adresse à partir de 0x7FFFF et tu t'arrêtes quand c'est plus 0xFF, faut le faire parler ce processeur.
    ok

    Dans mon prog, il y 2 critères d'emplacement :

    PROG
    DATA

    quand on prend l'espace Data, ça concerne bien la flash ? au quels cas, ça correspodrai à environ 72Ko non ?

  13. #12
    invite830075ec

    Re : prog bootloader sur pic32mx795f512l

    Je ne connais pas ton progamme. Ta flash va de 9D000000 à 9D07FFFF, il serait bon de savoir en partant de la fin, quels sont les octets inoccupés, on avait vu ensemble comment lire la flash depuis le code. On y verrait plus clair.
    En ce qui concerne le linker script, dans les essais d'Harmony que j'avais faits, certes simples, Harmony utilisait celui par défaut de xc32, qui stocke en début de flash.
    Si tu n'as qu'un seul fichier hex en sortie de compilation, le bootloader situé en fin de flash, pourrait lui aussi écrire cet hex en début de flash. C'est une supposition.
    En fait le bootloader, il fait ce que tu veux, il sait effacer et écrire où tu veux, faut juste que les adresses d'implantation et jump vers l'appli soit conformes à celles de compilation.

  14. #13
    davidif

    Re : prog bootloader sur pic32mx795f512l

    Oui effectivement, je vais faire comme fait dernièrement pour lire ma flash et voir l'espace libre.

    Un détail ? pourquoi ce mettre à cette emplacement de ma flash ? quand je regarde la documentation du pic32F795512L, "organisation memory" j'aurai a priori un emplacement de prévu pour un boot ...

    En : 0x9FC00000 à 0x9FC02FEF

  15. #14
    invite830075ec

    Re : prog bootloader sur pic32mx795f512l

    Ca c'est le boot MIPS dans la boot flash de 12k. On peut y ajouter son propre bootloader, mais il n'y a pas assez de place pour un bootloader usb.
    En fin de program flash il devrait y avoir de grands espaces inexplorés, faut aller voir
    uint8_t* p = (uint8_t*)0x9D07FFFF;
    while (*p == 0xFF) p--;

  16. #15
    davidif

    Re : prog bootloader sur pic32mx795f512l

    ok

    merci pour le code.
    En fait, j'ai fait un peut bestialement déroulé toute la flash sur mon port rs232 en visu, c'est un peut long mais ça me permet de mieux visualiser ce qui a dedans

  17. #16
    davidif

    Re : prog bootloader sur pic32mx795f512l

    Donc d'après mon scan de ma flash

    j'ai du FF à 0x9D075828 jusqu'à la fin donc 0x9D07FFFF ce qui me reste 42967 octets

  18. #17
    invite830075ec

    Re : prog bootloader sur pic32mx795f512l

    C'est mieux mais ça fait pas beaucoup, y a vraiment 500k de code, ou alors y a du gruyère dans l'air.
    Ton bootloader, il fait quelle taille ?

  19. #18
    davidif

    Re : prog bootloader sur pic32mx795f512l

    peut-être partir d'un linker application qui passe, pour le modifier en concéquence ?
    https://www.dropbox.com/sh/xzmkikp7z...oaCgw59za?dl=0

    Puis modifier mon linker boot également en connaissance de cause
    https://www.dropbox.com/sh/s15bkllbe...1hI3dQ2Wa?dl=0

    Pensez-vous que je doive me positionner en limite de flash ? à 0x9D075828 ou laisser de la marge

  20. #19
    davidif

    Re : prog bootloader sur pic32mx795f512l

    Citation Envoyé par satinas Voir le message
    C'est mieux mais ça fait pas beaucoup, y a vraiment 500k de code, ou alors y a du gruyère dans l'air.
    Ton bootloader, il fait quelle taille ?
    j'essai de voir la taille qu'il fait seulement je ne sais pas comment le voir, sur mon application principal mplab me donne la taille mais le bootloader non ...

  21. #20
    davidif

    Re : prog bootloader sur pic32mx795f512l

    Juste le lien du scan de ma flash, ça te parlera plus qu'à moi

    https://www.dropbox.com/s/tob90slojr...flash.rtf?dl=0

  22. #21
    invite830075ec

    Re : prog bootloader sur pic32mx795f512l

    Je t'ai posé 2 questions ...

  23. #22
    invite830075ec

    Re : prog bootloader sur pic32mx795f512l

    Ton bootloder usb, c'est une appli que tu compiles, et MpLab ou MpLabX t'affiche sa taille

  24. #23
    davidif

    Re : prog bootloader sur pic32mx795f512l

    Citation Envoyé par satinas Voir le message
    Ton bootloder usb, c'est une appli que tu compiles, et MpLab ou MpLabX t'affiche sa taille
    Oui je le compile, et je cherche ou regarder mais pour le moment je ne vois pas ça taille ...

    En ce qui concerne ma flash, je l'ai survolé rapidement car il y a du monde, il semblerai qu'il n'y a pas beaucoup de trou, pas mal de place ou j'ai du Zéro mais pas de gros trou en FF

  25. #24
    davidif

    Re : prog bootloader sur pic32mx795f512l

    ça y est, j'ai réussi à avoir les infos en termes de place, juste une option à cocher :

    Data : 3796 octets (0xed4)
    Prog : 15912 octets (0x82ff0)

    Nom : mémoire boot.jpg
Affichages : 73
Taille : 77,1 Ko
    Dernière modification par davidif ; 01/12/2016 à 12h52.

  26. #25
    invite830075ec

    Re : prog bootloader sur pic32mx795f512l

    Code:
    00000 -> 06cab  27820 plein
    06cac -> 0ffff  37716 que des 0x00
    10000 -> 7582b 415788 plein
    7582c -> 7ffff  42964 que des 0xff
    Est-ce que tu as spécifié un linker script perso pour l'appli Harmony ?

    Tu compiles le bootloader sous MpLab ou MpLabX ?
    Donne moi le linker script et l'hex du bootloader

  27. #26
    invite830075ec

    Re : prog bootloader sur pic32mx795f512l

    l'hex n'est plus nécessaire

  28. #27
    davidif

    Re : prog bootloader sur pic32mx795f512l

    Citation Envoyé par satinas Voir le message
    Est-ce que tu as spécifié un linker script perso pour l'appli Harmony ?

    Tu compiles le bootloader sous MpLab ou MpLabX ?
    Donne moi le linker script et l'hex du bootloader
    j'ai essayé de générer un boot spécifique avec harmony pour voir comment organisait-il ça mémoire, mais je n'ai pas pu l'utiliser car il fallait que je le remanie pour faire ce que j'ai mis du temps non sans mal à l'époque pour avoir les mêmes options de boot (appui sur un bouton au démarrage pour activer le boot) puis chargement via USB;
    ce que j'arrive à faire actuellement avec mon prog boot compilé sous MPLABX non harmony.

    "un linker script perso pour l'appli Harmony ?"
    Tu veux dire pour le prog boot ou appli ?
    J'ai mon linker bootloader : https://www.dropbox.com/sh/s15bkllbe...1hI3dQ2Wa?dl=0
    puis linker appli qui passe dans la compile mais ne demarre pas : https://www.dropbox.com/sh/xzmkikp7z...oaCgw59za?dl=0

    celui-ci : est mon ancien linker appli fonctionnelle sur d'ancien prog mais ne ce compile pas avec mon appli actuelle
    https://www.dropbox.com/sh/10kzi6kls...jtZoYp68a?dl=0

    ça c'est .hex du bootloader
    https://www.dropbox.com/s/r5s1knro4q...ction.hex?dl=0

    tout est fait sous mplabx, juste que mon application est généré en partie avec harmony

  29. #28
    invite830075ec

    Re : prog bootloader sur pic32mx795f512l

    L'appli Harmony (pas le bootloader), tu dois la compiler SANS linker script, j'ai toujours pas la réponse à cette question.
    Le principe de la manip, c'est de ne pas avoir de linker script spécifique pour l'appli, histoire de bosser un minimum.
    C'est toi qui a spécifié l'adresse 10000 quelque part ?

  30. #29
    davidif

    Re : prog bootloader sur pic32mx795f512l

    Citation Envoyé par satinas Voir le message
    L'appli Harmony (pas le bootloader), tu dois la compiler SANS linker script, j'ai toujours pas la réponse à cette question
    ha autant pour moi, à l'origine l'appli harmony ce compile et fonctionne sans linker effectivement.

    Citation Envoyé par satinas Voir le message
    C'est toi qui a spécifié l'adresse 10000 quelque part ?
    Non, ou ça ? a quel niveau

  31. #30
    davidif

    Re : prog bootloader sur pic32mx795f512l

    C'est pas gênant que l'appli harmony n'est pas de linker pour fonctionner avec le boot ? l'espace mémoire ne peut pas bouger en fonction de l'utilisation ou une fois programmé celle-ci est fixé un bonne fois pour toute ?

Page 1 sur 4 12 3 DernièreDernière

Discussions similaires

  1. [Programmation] prog bootloader sur pic32mx795f512l
    Par davidif dans le forum Électronique
    Réponses: 53
    Dernier message: 27/09/2016, 21h11
  2. programmation d'un pic32mx795f512l
    Par davidif dans le forum Électronique
    Réponses: 0
    Dernier message: 24/03/2015, 18h39
  3. programmation d'un pic32mx795f512l
    Par davidif dans le forum Électronique
    Réponses: 22
    Dernier message: 02/03/2015, 15h17
  4. bootloader pic32MX795F512L
    Par davidif dans le forum Électronique
    Réponses: 37
    Dernier message: 06/12/2013, 11h21
  5. TCP/IP sur PIC32MX795F512L
    Par invite3bb6cfa9 dans le forum Électronique
    Réponses: 2
    Dernier message: 13/02/2012, 23h58
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...