[Programmation] prog bootloader sur pic32mx795f512l - Page 4
Répondre à la discussion
Page 4 sur 4 PremièrePremière 4
Affichage des résultats 91 à 111 sur 111

prog bootloader sur pic32mx795f512l



  1. #91
    satinas

    Re : prog bootloader sur pic32mx795f512l


    ------

    salut, oui j'ai oublié un 0

    pour la 3ème fois, est-ce que les bits de config hardware du bootloader et de l'appli, sont les mêmes ou pas ?

    -----

  2. #92
    davidif

    Re : prog bootloader sur pic32mx795f512l

    Citation Envoyé par satinas Voir le message
    salut, oui j'ai oublié un 0
    justement, bizarement et je ne sais pas pourquoi je compile bien avec le 0 en moins, bizzarement en rajoutant le 0 je ne compile pas ...

    Citation Envoyé par satinas Voir le message
    pour la 3ème fois, est-ce que les bits de config hardware du bootloader et de l'appli, sont les mêmes ou pas ?
    Non je n'ai pas répété la même configue hardware car quand mon bootloader fonctionnait avec mon autre programme principal je n'ai pas eu besoin de configurer les mêmes configues hardware et ça fonctionnait très bien, j'essai surtout de comprendre pourquoi je ne compile plus avec ce 0 en plus.

  3. #93
    davidif

    Re : prog bootloader sur pic32mx795f512l

    Donc en fait, j'ai rechargé les emplacements linkers application tel que tu m'avais indiqué avec le 0 en plus .

    J'ai donc repris les mêmes que mon ancien linker appli fonctionnel, en compilant j'ai eu cette erreur

    Code:
     Link Warning: absolute section '_0463296058753825' crosses the boundary of region kseg0_program_mem.
     Link Error: Could not allocate section '_0463296058753825' at 0x9d006000
     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
    J'ai donc déplacé mon

    #define DRV_NVM_MEDIA_START_ADDRESS 0x9D006000

    en

    #define DRV_NVM_MEDIA_START_ADDRESS 0x9D078000

    et je compile correctement, seulement quand je charge mon hex, rien ne ce passe, car quand je programme sans le bootloader (directement ) ça ne démarre pas non plus en 78000

    J'ai l'impression que mon #define DRV_NVM_MEDIA_START_ADRESS n'est peut-être pas bien placé pour que mon soft démarre.
    Dernière modification par davidif ; 10/01/2017 à 19h50.

  4. #94
    davidif

    Re : prog bootloader sur pic32mx795f512l

    car quand je programme mon appli sans bootloader (donc directement) je ne demarre pas non plus en 78000

  5. #95
    satinas

    Re : prog bootloader sur pic32mx795f512l

    Pour la quatrième fois, donne moi les 4 mots 32 bits de configuration hardware :
    - de l'appli bootloader
    - de l'appli à bootloader
    - contenus dans le pic juste après que tu ait bootloadé l'appli
    Ca fait 12 en tout

  6. #96
    davidif

    Re : prog bootloader sur pic32mx795f512l

    re-boujour (:

    je te donne ma config hardware de l'appli à bootloader

    Code:
    /*** Ports System Service Configuration ***/
    #define SYS_PORT_AD1PCFG        0xffff
    #define SYS_PORT_CNPUE          0x0
    #define SYS_PORT_CNEN           0x0
    
    #define SYS_PORT_D_TRIS         0xfff9
    #define SYS_PORT_D_LAT          0x0
    #define SYS_PORT_D_ODC          0x0
    
    #define SYS_PORT_C_TRIS         0xfff1
    #define SYS_PORT_C_LAT          0x0
    #define SYS_PORT_C_ODC          0x0
    
    #define SYS_PORT_A_TRIS         0x003E
    //#define SYS_PORT_A_TRIS_IN     0x001C
    #define SYS_PORT_A_LAT          0x0
    #define SYS_PORT_A_ODC          0x0
    
    #define SYS_PORT_B_TRIS         0xffff
    #define SYS_PORT_B_LAT          0x0
    #define SYS_PORT_B_ODC          0x0
    
    //#define SYS_PORT_E_TRIS_OUT     0x001f
    //#define SYS_PORT_E_TRIS_IN      0x03E0
    #define SYS_PORT_E_TRIS         0x0000
    #define SYS_PORT_E_LAT          0x0
    #define SYS_PORT_E_ODC          0x0
    
    #define SYS_PORT_G_TRIS         0x0000
    #define SYS_PORT_G_LAT          0x0
    #define SYS_PORT_G_ODC          0x0
    pour le bootloader "HardwareProfile_PIC32MX_USB_S tarterKit.h":
    j'aurai qq choses comme ça ...

    Code:
        //  this revision of the MCHPFSUSB framework.  Please review each
        //  option carefully and determine which options are desired/required
        //  for your application.
    
        //#define USE_SELF_POWER_SENSE_IO
        #define tris_self_power     TRISAbits.TRISA2    // Input
        #define self_power          1
    
        //#define USE_USB_BUS_SENSE_IO
        #define tris_usb_bus_sense  TRISBbits.TRISB5    // Input
        #define USB_BUS_SENSE       1 
    
        /*******************************************************************/
        /*******************************************************************/
        /*******************************************************************/
        /******** Application specific definitions *************************/
        /*******************************************************************/
        /*******************************************************************/
        /*******************************************************************/
    
        /** Board definition ***********************************************/
        //These defintions will tell the main() function which board is
        //  currently selected.  This will allow the application to add
        //  the correct configuration bits as well use the correct
        //  initialization functions for the board.  These defitions are only
        //  required for this demo.  They are not required in
        //  final application design.
    
    
    	
    	#define mLED              LATDbits.LATD2
    	// Blinks LED 1 on USB Starter kit
    	#define BlinkLED() (mLED = ((ReadCoreTimer() & 0x0800000) != 0))
    	#define InitLED() do{	\
    							AD1PCFG = 0; \
    							TRISDbits.TRISD2 = 0;  \
    							TRISDbits.TRISD1 = 0;  \
    							TRISDbits.TRISD0 = 0;  \
    							LATDbits.LATD0 = 0; LATDbits.LATD1 = 0; LATDbits.LATD2 = 0;\
    						}while(0)					
    	
    	// Switch S3 on USB Starter Kit.
    	//#define ReadSwitchStatus() (PORTReadBits(IOPORT_D, BIT_13) & BIT_13)
        #define bp_poussoir        PORTDbits.RD13
    
       // Error indication.	
    	#define Error()   do{LATDbits.LATD0 = 1; LATDbits.LATD1 = 1; LATDbits.LATD2 = 1;} while(0);

  7. #97
    satinas

    Re : prog bootloader sur pic32mx795f512l

    Les bits de configuration hardware , c'est pas ça.
    D'abord tu compiles ton appli, ensuite tu vas dans le menu Window/PIC Memory View/Configuration bits
    et tu notes la valeur des 4 mots de 32bits DEVCFG0 à DEVCFG3, par exemple 0x7FFFFFFF
    Ceux de l'appli bootloadeur et de l'appli bootloadée doivent être exactement les mêmes.
    Dernière modification par satinas ; 24/01/2017 à 16h18.

  8. #98
    davidif

    Re : prog bootloader sur pic32mx795f512l

    je vais regarder ce que tu m'à dit, seulement en reprenant nos échanges , je m’arrêterai au poste 71, ou tu m'a fais reprendre les emplacements comme mon ancien linker appli pour dire que ma compile ne passe pas en définitif.

    au départ je ne distinguai pas les fichiers à leur emplacement d'origine et ceux placé dans mon projet, et les modifs ce prenaient en compte une fois mplabx fermé puis d'ré-ouvert, comme tu m'a conseiller j'ai donc renommé mon fichier .ld(en linkerapp.ld) et modifier son nom en include du fichier .x , j'ai donc ces erreur là : évidement tout passe correctement avec le fichier .ld d'origine renommé en linkerapp.ld

    Code:
    nbproject/Makefile-pic32mx_eth_sk+ioexp+11n+freertos.mk:1527: recipe for target 'dist/pic32mx_eth_sk+ioexp+11n+freertos/production/pic32_eth_wifi_web_server.X.production.hex' failed
    make[2]: Leaving directory 'C:/Users/Tecwave/disque 1t/etude/hardware/Programme PIC32/WIFI/N V1.2/apps/tcpip/web_server_nvm_mpfs/firmware/pic32_eth_wifi_web_server.X'
    nbproject/Makefile-pic32mx_eth_sk+ioexp+11n+freertos.mk:78: recipe for target '.build-conf' failed
    make[1]: Leaving directory 'C:/Users/Tecwave/disque 1t/etude/hardware/Programme PIC32/WIFI/N V1.2/apps/tcpip/web_server_nvm_mpfs/firmware/pic32_eth_wifi_web_server.X'
    nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
    c:\program files (x86)\microchip\xc32\v1.40\bin\bin\gcc\pic32mx\4.8.3\..\..\..\..\bin/xc32-ld.exe:linkerapp.ld:16: syntax error
    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
    J'ai bien repris les fichiers linker (le .ld et .x )

  9. #99
    davidif

    Re : prog bootloader sur pic32mx795f512l

    ha ok ,

    pour l'application :

    DEVCFG0 :7FFFFFFF
    DEVCFG1 :FFFFFFFF
    DEVCFG2 :FFFFFFFF
    DEVCFG3 :FFFFFFFF

    Pour le prog bootloader :

    DEVCFG0 :7FFFFFFF
    DEVCFG1 :FF7FCEFB
    DEVCFG2 :FFF879D9
    DEVCFG3 :FFFFFFFF

    VOILA

  10. #100
    davidif

    Re : prog bootloader sur pic32mx795f512l

    ha ok ,

    pour l'application :

    Désolé, j'ai fais une fausse manip, ceux là sont les bon

    DEVCFG0 :7FFFFFFF
    DEVCFG1 :FF740DFB
    DEVCFG2 :FFF879D9
    DEVCFG3 :38FFFFFF

    Pour le prog bootloader :

    DEVCFG0 :7FFFFFFF
    DEVCFG1 :FF7FCEFB
    DEVCFG2 :FFF879D9
    DEVCFG3 :FFFFFFFF

    VOILA
    Dernière modification par davidif ; 24/01/2017 à 17h02.

  11. #101
    satinas

    Re : prog bootloader sur pic32mx795f512l

    Tu es sur pour ceux de l'application ?
    Compile l'application avec le linker script par défaut, et après compilation tu regardes les mots.
    Les bits de configuration de l'horloge sont différents du bootloader, ça ne peut pas marcher.

    Donne aussi la config de l'ancienne appli qui marchait avec le bootloader. Il ne suffit pas de charger l'appli, il faut aussi la compiler.

  12. #102
    davidif

    Re : prog bootloader sur pic32mx795f512l

    Citation Envoyé par satinas Voir le message
    Tu es sur pour ceux de l'application ?
    Compile l'application avec le linker script par défaut, et après compilation tu regardes les mots.
    oui, je l'ai compilé avec le linker par défaut justement, l'autre modifier ne ce compile pas, tout du moins j'ai des erreurs en définitif

    Citation Envoyé par satinas Voir le message
    Les bits de configuration de l'horloge sont différents du bootloader, ça ne peut pas marcher.
    ok, mais je suppose qu'avant tout c'est de faire fonctionner le linker modifier avec l'appli

    Citation Envoyé par satinas Voir le message
    Donne aussi la config de l'ancienne appli qui marchait avec le bootloader. Il ne suffit pas de charger l'appli, il faut aussi la compiler.
    je te fais ça

  13. #103
    satinas

    Re : prog bootloader sur pic32mx795f512l

    Dans un premier temps, ce qu'il faut faire c'est fonctionner ton appli sans login script (celui par défaut donc), en la programmant avec le programmateur hardware, et avec les mêmes mots de configuration que l'appli bootloader. Et si ça marche, tu pourras envisager de la bootloader.

    J'en suis pas encore absolument sur, mais je pense que le bootloader ne modifie pas la configuration hardware, donc l'appli après avoit été bootloadée, démarre avec la config hardware du bootloader.

  14. #104
    davidif

    Re : prog bootloader sur pic32mx795f512l

    donc les mots de l'application qui fonctionne avec mon bootloader sont

    DEVCFG0 :7FFFFFFF
    DEVCFG1 :FFE0FE59
    DEVCFG2 :FFF879D9
    DEVCFG3 :FFFFFFFF

  15. #105
    davidif

    Re : prog bootloader sur pic32mx795f512l

    OK mais comment changer directement ces mots ? pas dans la fenêtre directement je suppose , car ça correspond à la configue

    sachant que la configu de l'appli est plutôt délicat à modifier pour son fonctionnement, il serai pas mieux de la changer sur le bootloader ?

    après je n'ai pas forcement la main sur le DEVCFG3 en userid et le DEVCFG1, faut que je vois à quel config ça correspond , c'est ça ?

  16. #106
    satinas

    Re : prog bootloader sur pic32mx795f512l

    Tu dupliques les directives #pragma config du fichier main, dans un sens ou dans l'autre.
    Certains bits sont sans doute peu importants, d'autres beaucoup plus.
    Le bootloader a besoin de la PLL USB.

  17. #107
    davidif

    Re : prog bootloader sur pic32mx795f512l

    Bonjour satinas,

    J'ai bien pris note des derniers observation, mais j'ai voulu revenir en arrière et testé de nouveau pour que qu'harmony me génère le linker application via la sélection des choix de configure et là à ma grande surprise, là ou avant je compilais pas , je ne sais pas pourquoi mais là ça veut bien compiler et ma donc générer un fichier linker "btl_mx.ld".

    Evidemment, j'ai temporairement retiré ceux par défaut.

    voici ce que m'a généré harmony

    Code:
     *************************************************************************/
    PROVIDE(_vector_spacing = 0x00000001);
    _ebase_address =  0x9D00E000;
    
    /*************************************************************************
     * Memory Address Equates
     * _RESET_ADDR      -- Reset Vector
     * _BEV_EXCPT_ADDR  -- Boot exception Vector
     * _DBG_EXCPT_ADDR  -- In-circuit Debugging Exception Vector
     * _DBG_CODE_ADDR   -- In-circuit Debug Executive address
     * _DBG_CODE_SIZE   -- In-circuit Debug Executive size
     * _GEN_EXCPT_ADDR  -- General Exception Vector
     *************************************************************************/
    _RESET_ADDR              = (0x9D00E000 + 0x1000);  
    _BEV_EXCPT_ADDR          = ((0x9D00E000 + 0x1000) + 0x380);
    _DBG_EXCPT_ADDR          = ((0x9D00E000 + 0x1000) + 0x480);
    _DBG_CODE_ADDR          = 0xBFC02000;
    _DBG_CODE_SIZE           = 0xFF0     ;
    _GEN_EXCPT_ADDR          = _ebase_address + 0x180;
    
    /*************************************************************************
     * Memory Regions
     *
     * Memory regions without attributes cannot be used for orphaned sections.
     * Only sections specifically assigned to these regions can be allocated
     * into these regions.
     *************************************************************************/
    MEMORY
    {
      kseg0_program_mem    (rx)  : ORIGIN = (0x9D001000 + 0xE000 + 0x490), LENGTH = 0x80000 - (0xE000 + 0x490) /* All C Files will be located here */
      kseg0_boot_mem             : ORIGIN = 0x9D00E000, LENGTH = 0x0 /* This memory region is dummy */
      exception_mem              : ORIGIN = 0x9D00E000, LENGTH = 0x200 /* Interrupt vector table */
      config3                    : ORIGIN = 0xBFC02FF0, LENGTH = 0x4
      config2                    : ORIGIN = 0xBFC02FF4, LENGTH = 0x4
      config1                    : ORIGIN = 0xBFC02FF8, LENGTH = 0x4
      config0                    : ORIGIN = 0xBFC02FFC, LENGTH = 0x4
      kseg1_boot_mem             : ORIGIN = (0x9D00E000 + 0x1000), LENGTH = 0x490 /* C Startup code */
      kseg1_data_mem       (w!x) : ORIGIN = 0xA0000000, LENGTH = 0x20000
      sfrs                       : ORIGIN = 0xBF800000, LENGTH = 0x100000
      debug_exec_mem             : ORIGIN = 0xBFC02000, LENGTH = 0xFF0
      configsfrs                 : ORIGIN = 0xBFC02FF0, LENGTH = 0x10
    ça c'est mon linker du bootloader :

    Code:
    PROVIDE(_vector_spacing = 0x00000001);
    _ebase_address =  0x9FC01000;
    
    /*************************************************************************
     * Memory Address Equates
     * _RESET_ADDR      -- Reset Vector
     * _BEV_EXCPT_ADDR  -- Boot exception Vector
     * _DBG_EXCPT_ADDR  -- In-circuit Debugging Exception Vector
     * _DBG_CODE_ADDR   -- In-circuit Debug Executive address
     * _DBG_CODE_SIZE   -- In-circuit Debug Executive size
     * _GEN_EXCPT_ADDR  -- General Exception Vector
     *************************************************************************/
    _RESET_ADDR              = 0xBFC00000;
    _BEV_EXCPT_ADDR          = (0xBFC00000 + 0x380);
    _DBG_EXCPT_ADDR          = (0xBFC00000 + 0x480);
    _DBG_CODE_ADDR          = 0xBFC02000;
    _DBG_CODE_SIZE           = 0xFF0     ;
    _GEN_EXCPT_ADDR          = _ebase_address + 0x180;
    
    /*************************************************************************
     * Memory Regions
     *
     * Memory regions without attributes cannot be used for orphaned sections.
     * Only sections specifically assigned to these regions can be allocated
     * into these regions.
     *************************************************************************/
    MEMORY
    {
      kseg0_program_mem    (rx)  : ORIGIN = 0x9D000000, LENGTH = 0x6000 /* All C Files will be located here */
      kseg0_boot_mem             : ORIGIN = 0x9FC00490, LENGTH = 0x0 /* This memory region is dummy */
      exception_mem              : ORIGIN = 0x9FC01000, LENGTH = 0x1000 /* Interrupt vector table */
      kseg1_boot_mem             : ORIGIN = 0xBFC00000, LENGTH = 0x490 /* C Startup code */
      debug_exec_mem             : ORIGIN = 0xBFC02000, LENGTH = 0xFF0
      config3                    : ORIGIN = 0xBFC02FF0, LENGTH = 0x4
      config2                    : ORIGIN = 0xBFC02FF4, LENGTH = 0x4
      config1                    : ORIGIN = 0xBFC02FF8, LENGTH = 0x4
      config0                    : ORIGIN = 0xBFC02FFC, LENGTH = 0x4
      kseg1_data_mem       (w!x) : ORIGIN = 0xA0000000, LENGTH = 0x20000
      sfrs                       : ORIGIN = 0xBF800000, LENGTH = 0x100000
      configsfrs                 : ORIGIN = 0xBFC02FF0, LENGTH = 0x10

    j'ai donc été voir dans le fichier Bootloader.h du programme du bootloader, pour voir si quelque choses devrait être adapter, comme

    #define PROGRAM_FLASH_END_ADRESS (0x9D000000+BMXPFMSZ-1)
    #define APP_FLASH_BASE_ADDRESS 0x9D000000
    #define USER_APP_RESET_ADDRESS (0x9D006000 + 0x1000 + 0x970)

    sachant que le programme si je dis pas de bêtise serait placé en 0x9D00E000 D'après ce qu'a généré harmony j'ai pensé faire

    #define APP_FLASH_BASE_ADDRESS 0x9D00E000

    MERCI

  18. #108
    satinas

    Re : prog bootloader sur pic32mx795f512l

    Salut,
    ça devrait passer car le bootloader va de 0 à 0x6000 et l'appli est en 0xe000

    Code:
    #define APP_FLASH_BASE_ADDRESS    0x9D00E000
    #define USER_APP_RESET_ADDRESS    0x9D00F000
    #define PROGRAM_FLASH_END_ADRESS (0x9D000000+BMXPFMSZ-1)
    Dernière modification par satinas ; 28/01/2017 à 13h29.

  19. #109
    davidif

    Re : prog bootloader sur pic32mx795f512l

    Citation Envoyé par satinas Voir le message
    Salut,
    ça devrait passer car le bootloader va de 0 à 0x6000 et l'appli est en 0xe000

    Code:
    #define APP_FLASH_BASE_ADDRESS    0x9D00E000
    #define USER_APP_RESET_ADDRESS    0x9D00F000
    #define PROGRAM_FLASH_END_ADRESS (0x9D000000+BMXPFMSZ-1)
    Bah oui , mais apparemment non

    j'ai modifier le Bootloader.h du programme du bootloader, pour voir

    #define PROGRAM_FLASH_END_ADRESS (0x9D000000+BMXPFMSZ-1)

    #define APP_FLASH_BASE_ADDRESS 0x9D00E000
    #define USER_APP_RESET_ADDRESS (0x9D00E000 + 0x1000 + 0x970)

    Mais ça ne fonctionne toujours pas

  20. #110
    satinas

    Re : prog bootloader sur pic32mx795f512l

    Tu me dis qu'avec tes valeurs ça fonctionne pas, ok, et avec les miennes ?

    parce que ...
    Bah oui , mais apparemment non
    pour moi ça veut pas dire grand chose
    Dernière modification par satinas ; 28/01/2017 à 14h04.

  21. #111
    satinas

    Re : prog bootloader sur pic32mx795f512l

    Fais une lecture du contenu du pic après que l'appli ait été bootloadée.
    Vérifie que le pic a conservé la config hardware du bootloader.
    Compile ton appli sans linker script, et AVEC la config hardware du bootloader, elle doit fonctionner.
    Ensuite tu pourras passer au bootloader.

Page 4 sur 4 PremièrePremière 4

Discussions similaires

  1. [Programmation] prog bootloader sur pic32mx795f512l
    Par davidif dans le forum Électronique
    Réponses: 53
    Dernier message: 27/09/2016, 20h11
  2. programmation d'un pic32mx795f512l
    Par davidif dans le forum Électronique
    Réponses: 0
    Dernier message: 24/03/2015, 17h39
  3. programmation d'un pic32mx795f512l
    Par davidif dans le forum Électronique
    Réponses: 22
    Dernier message: 02/03/2015, 14h17
  4. bootloader pic32MX795F512L
    Par davidif dans le forum Électronique
    Réponses: 37
    Dernier message: 06/12/2013, 10h21
  5. TCP/IP sur PIC32MX795F512L
    Par invite3bb6cfa9 dans le forum Électronique
    Réponses: 2
    Dernier message: 13/02/2012, 22h58
Découvrez nos comparatifs produits sur l'informatique et les technologies.