[Numérique] pic32mx795f512l mémoriser en flash - Page 3
Répondre à la discussion
Page 3 sur 6 PremièrePremière 3 DernièreDernière
Affichage des résultats 61 à 90 sur 156

pic32mx795f512l mémoriser en flash



  1. #61
    davidif

    Re : pic32mx795f512l mémoriser en flash


    ------

    uint8_t* pb = (uint8_t*)DRV_NVM_MEDIA_START_ ADDRESS; // la valeur d'un octet, mais pourquoi un pointeur ?
    uint32_t* pi = (uint32_t*)DRV_NVM_MEDIA_START _ADDRESS; // tu met bien l'adresse de départ sur le pointeur pi

    pour avoir la valeur à une adresse, il suffit pas de faire quelque chose comme ça ?

    &pi

    -----

  2. #62
    invite830075ec

    Re : pic32mx795f512l mémoriser en flash

    uint8_t* pb
    uint8_t *pb;
    C'est 2 écritures pour la même chose, pb est un pointeur sur des données de type uint8_t, unsigned int 8 bits, unsigned char. Chaque fois que tu l'incrémentera, il se déplacera de 1 octet.
    pi lui est un pointeur sur des uint32_t, unsigned int 32 bit. *pi est un entier non signé de taille 4 octets, et chaque fois que tu incrémentera pi, il se déplacera de 4 octets, mais attention à aligner pi sur 4 octets, sinon le processeur MIPS n'aimera pas du tout, je pense.
    En utilisant ces pointeurs, on ne peut que lire la flash bien sur, pour écrire il faut passer par la fonction nvm.

    pour le compilateur, DRV_NVM_MEDIA_START_ ADDRESS c'est au départ un entier, pas une adresse, il faut lui dire que tu le veux le considérer comme l'adresse d'une donnée.

  3. #63
    davidif

    Re : pic32mx795f512l mémoriser en flash

    d'accord je comprend, mais quand on fait ça

    sprintf(s, "0x%02X 0x%08X", *pb, *pi);

    excuse moi, donc

    pb représente la donnée d' 1 octet et
    pi son adresse de 4 octect si j'ai bien compris, donc ce que je ne comprend pas pourquoi a t-on besoin de déclaré pb?

    On ne pourrait pas faire

    sprintf(s, "0x%02X 0x%08X", &pi, *pi); et incrémenter pi++ bon effectivement j'ai essayé mais comme tu peux t'en douté ça ne fonctionne pas , j'ai

    un doute sur le
    0x%02X

  4. #64
    invite830075ec

    Re : pic32mx795f512l mémoriser en flash

    pb est l'adresse d'un octet de la flash
    pi est l'adresse d'un entier 32 bits de la flash
    On aborde la flash de 2 manières differentes, soit on lit des octets, soit on lit des entiers 32 bits.
    On pourrait faire pareil avec des uint16_t*, uint64_t*, ...

    0x%02X affiche un entier hexa sur 2 caractères sous le format 0x00, 0x01, ..., 0xFF
    au dessus de 0xFF le PC explose

  5. #65
    invite830075ec

    Re : pic32mx795f512l mémoriser en flash

    sprintf(s1, "0x%08p: 0x%02X 0x%02X", pb, *pb, *(pb+1));
    sprintf(s2, "0x%08p: 0x%08X 0x%08X", pi, *pi, *(pi+1));

  6. #66
    davidif

    Re : pic32mx795f512l mémoriser en flash

    Citation Envoyé par satinas Voir le message
    sprintf(s1, "0x%08p: 0x%02X 0x%02X", pb, *pb, *(pb+1));
    sprintf(s2, "0x%08p: 0x%08X 0x%08X", pi, *pi, *(pi+1));
    En faisant

    sprintf(s1, "0x%08p: 0x%02X 0x%02X", pb, *pb, *(pb+1));

    j'ai cette erreur, concernant 0x%08p:

    Code:
    make  -f nbproject/Makefile-pic32mx_eth_sk+ioexp+11n+freertos.mk dist/pic32mx_eth_sk+ioexp+11n+freertos/production/pic32_eth_wifi_web_server.X.production.hex
    make[2]: Entering 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'
    ../src/app2.c: In function 'APP2_Tasks':
    ../src/app2.c:270:13: error: '0' flag used with '%p' gnu_printf format [-Werror=format=]
                 sprintf(s1, "0x%08p: 0x%02X 0x%02X", pb, *pb, *(pb+1));
                 ^
    cc1.exe: all warnings being treated as errors
    "C:\Program Files (x86)\Microchip\xc32\v1.40\bin\xc32-gcc.exe" -g -x c -c -mprocessor=32MX795F512L -ffunction-sections -O1 "-DPLIB_INLINE=static inline" "-DPLIB_INLINE_API=static inline" -D__XC -I../src -I../src/system_config/pic32mx_eth_sk+ioexp+11n+freertos/framework -I../../../../../framework -I../../../../../framework/crypto -I../src/pic32mx_eth_sk+ioexp+11n+freertos -I../src/system_config/pic32mx_eth_sk+ioexp+11n+freertos -I../../../../../framework/driver/wifi/mrf24wn/include -I../../../../../framework/driver/wifi/mrf24wn/wireless_driver/include -I../../../../../framework/driver/wifi/mrf24wn/wireless_driver_extension -I../../../../../bsp/pic32mx_eth_sk -I../../../../../third_party/rtos/FreeRTOS/Source/portable/MPLAB/PIC32MX -I../../../../../third_party/rtos/FreeRTOS/Source/include -Werror -Wall -MMD -MF build/pic32mx_eth_sk+ioexp+11n+freertos/production/_ext/1360937237/app2.o.d -o build/pic32mx_eth_sk+ioexp+11n+freertos/production/_ext/1360937237/app2.o ../src/app2.c 
    make[2]: *** [build/pic32mx_eth_sk+ioexp+11n+freertos/production/_ext/1360937237/app2.o] Error 1
    nbproject/Makefile-pic32mx_eth_sk+ioexp+11n+freertos.mk:851: recipe for target 'build/pic32mx_eth_sk+ioexp+11n+freertos/production/_ext/1360937237/app2.o' failed
    make[1]: *** [.build-conf] Error 2
    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'
    make: *** [.build-impl] Error 2
    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
    
    BUILD FAILED (exit value 2, total time: 1s)

  7. #67
    invite830075ec

    Re : pic32mx795f512l mémoriser en flash

    Il aime pas le 0 dans le %p, de toute façon les adresses occupent forcément 8 caractères, alors "0x%p" ou "0x%X"

    Tu peux faire uartSendString((char*)DRV_NVM_ MEDIA_START_ADDRESS);
    mais si y a pas de fin de chaîne, ça va pas être beau

  8. #68
    davidif

    Re : pic32mx795f512l mémoriser en flash

    Bon a priori je fait défiler les octet de ma flash

    Code:
    0x9D000000:0x4D 0x50 0x46 0x53
    0x9D000004:0x02 0x01 0x29 0x00
    0x9D000008:0x4A 0xCE 0x06 0xF1
    0x9D00000C:0xEA 0x81 0x66 0x9B
    0x9D000010:0xF0 0x94 0x2A 0xBA
    0x9D000014:0xF0 0xD6 0x26 0x4F
    0x9D000018:0x6A 0xA6 0xC6 0x59
    0x9D00001C:0xA8 0x7F 0x26 0x2D
    0x9D000020:0x0A 0xA3 0x46 0xCE
    0x9D000024:0xA6 0x19 0x2A 0xCF
    0x9D000028:0x08 0xCF 0x3E 0x67
    0x9D00002C:0xC6 0x6B 0x46 0xD5
    0x9D000030:0x98 0xDB 0xCC 0x83
    0x9D000034:0x44 0xD8 0xC6 0xB5
    0x9D000038:0x0A 0x85 0x6A 0x3D
    0x9D00003C:0xF0 0xA4 0xCA 0xEB
    0x9D000040:0xF0 0xF6 0x26 0xD7
    0x9D000044:0x26 0xB5 0x2A 0x71
    0x9D000048:0x3E 0xB8 0x8A 0x50
    0x9D00004C:0xEA 0x8A 0xEA 0x92
    0x9D000050:0x0A 0x4F 0x26 0xB6
    0x9D000054:0x8A 0xB6 0x0A 0x2F
    0x9D000058:0x0A 0x57 0xE0 0x03
    0x9D00005C:0x00 0x00 0x06 0x06
    0x9D000060:0x00 0x00 0x5E 0x05
    0x9D000064:0x00 0x00 0x6E 0x0C
    0x9D000068:0xB7 0x55 0x00 0x00
    0x9D00006C:0x00 0x00 0x02 0x00
    en faisant comme ça , si je fait pas trop de bétise



    Code:
              sprintf(s1, "0x%8p:0x%02X 0x%02X 0x%02X 0x%02X", pb, *pb,*(pb+1),*(pb+2),*(pb+3));
                //sprintf(s2, "0x%08p: 0x%08X 0x%08X", pi, *pi, *(pi+1));
                 
                
    
                
                for (i=0;i<30;i++)
                {
                 s_s[i]=s1[i];
    
                 
                    while(PLIB_USART_TransmitterBufferIsFull(USART_ID_1))
                    {
                    }
                    PLIB_USART_TransmitterByteSend(USART_ID_1,s_s[i]);
                    
                }
                
                pb=pb+4;
    Dernière modification par davidif ; 25/08/2016 à 19h38.

  9. #69
    davidif

    Re : pic32mx795f512l mémoriser en flash

    Malgrés que je peux a priori scanner la flash, je ne parviens pas à sauvegarder une donnée,

    après avoir scanné une grande partie de ma flash, j'ai vu évidemment une partie était occupé et une autre présentait que des 0, je me suis donc mis sur cette partie là

    celle-ci commence à 0x9d00F200, j'ai donc placé une data en 0x9d00F250 , tout au moins c'est ce que je croyais faire

    voyant que le programme ce basait à
    #define DRV_NVM_MEDIA_START_ADDRESS 0x9D000000

    pour commencer à écrire certaines données du programme, j'ai donc laissé cette indication et changer celle-ci dans la fonction d'écriture, afin de lui dire de commencer à écrire à cette adresse

    #define WDRV_NVM_SPACE_ADDR 0x9D00F250

    à un endroit du prog ou je récupère ma donnée, je fais donc

    data_puissances[0]=Gdome_val;
    WDRV_NVM_write(data_puissances ,2);

    et en redémarrant mon soft, je scanne donc ma flash, mais tout reste à 0 tout de même

    Code:
    0x9D00F224:0x00 0x00 0x00 0x00
    0x9D00F228:0x00 0x00 0x00 0x00
    0x9D00F22C:0x00 0x00 0x00 0x00
    0x9D00F230:0x00 0x00 0x00 0x00
    0x9D00F234:0x00 0x00 0x00 0x00
    0x9D00F238:0x00 0x00 0x00 0x00
    0x9D00F23C:0x00 0x00 0x00 0x00
    0x9D00F240:0x00 0x00 0x00 0x00
    0x9D00F244:0x00 0x00 0x00 0x00
    0x9D00F248:0x00 0x00 0x00 0x00
    0x9D00F24C:0x00 0x00 0x00 0x00
    0x9D00F250:0x00 0x00 0x00 0x00
    0x9D00F254:0x00 0x00 0x00 0x00
    0x9D00F258:0x00 0x00 0x00 0x00
    0x9D00F25C:0x00 0x00 0x00 0x00
    0x9D00F260:0x00 0x00 0x00 0x00
    0x9D00F264:0x00 0x00 0x00 0x00
    0x9D00F268:0x00 0x00 0x00 0x00
    0x9D00F26C:0x00 0x00 0x00 0x00
    0x9D00F270:0x00 0x00 0x00 0x00
    0x9D00F274:0x00 0x00 0x00 0x00
    0x9D00F278:0x00 0x00 0x00 0x00
    0x9D00F27C:0x00 0x00 0x00 0x00
    0x9D00F280:0x00 0x00 0x00 0x00
    ais-je loupé quelque chose (:

  10. #70
    invite830075ec

    Re : pic32mx795f512l mémoriser en flash

    L'écriture avec la fonction nvm, se fait à l'adresse DRV_NVM_MEDIA_START_ADDRESS+WD RV_NVM_SPACE_ADDR
    DRV_NVM_MEDIA_START_ADDRESS est l'adresse de début de la zone média, WDRV_NVM_SPACE_ADDR l'index où on écrit.

    #define DRV_NVM_MEDIA_START_ADDRESS 0x9D000000
    #define WDRV_NVM_SPACE_ADDR 0x9D00F250
    Tu écris donc à l'adresse 0x9D000000+0x9D00F250, ça fait un peu beaucoup comme adresse

    Je comprends rien à ce que tu fais, et je sais pas de quelle application Harmony tu es parti(e), cette appli devait peut être déjà stocker des pages web dans la zone média, il faudrait composer avec ça, tu ne donnes pas les infos les plus importantes, qui aideraient beaucoup pour comprendre la situation.

  11. #71
    davidif

    Re : pic32mx795f512l mémoriser en flash

    Désolé si je manque de clarté , mais pour moi tout n'ai justement pas claire, pour le moment et c'est justement pour ça que j'en met beaucoup mais peut-être pas ce qu'il faut alors.

    Je suis partie de ce soft là : pic32_eth_wifi_web_server.X

    pic32mx_eth_sk+ioexp+11n+freer tos

    J'ai donc pu implémenter toutes les fonctions souhaitez (I/O, pwm, timer, uart, spi...) je coince sur la dernière fonction qu'est l'écriture et la lecture en flash afin de sauvegarder mes paramètres réseaux et wifi.

    J'ai déjà fait des prog sur ce micro, seulement c'était sous un ancien mplab avec lequel j'avais justement réussi à utiliser des fonctions de lecture, écriture mémoire flash, fonction que j'ai tenté d'utiliser sous harmony mais sans succés.

    A l'époque je n'utilisais pas harmony qui génère son code par des choix de fonction que l'on coche, ce qui peut-être très bien dans le fond mais est plus de bug.

    Oui tu as raison, il y à effectivement des pages web qui son hébergé dans une partie de la flash, mais pas toute la flash.

    Si certain espace sont à zéro, c'est par ce qu'ils sont certainement initialisé au démarrage, car quand une zone mémoire n'est pas utilisé elle reste à 0xFF et non 0x00

  12. #72
    invite830075ec

    Re : pic32mx795f512l mémoriser en flash

    Bonjour,
    J'ai chargé l'appli Harmony web server wifi, et l'ai compilée en affichant le listing désassemblé de 11 Mo (1/2 heure pour le produire).
    Le code démarre en 0x9D043D34.

    Dans la config de l'appli, visible dans MHC et system_config.h :
    #define DRV_NVM_MEDIA_START_ADDRESS 0x9D000000
    #define DRV_NVM_MEDIA_SIZE 64
    #define WDRV_NVM_SPACE_ADDR (48 * 1024)

    Donc il réserve une zone média de 64k en début de flash.
    Le système de fichier MPFS avec les pages web (si j'ai bien compris) est en début de zone média, index ou offset 0x0000
    Il écrit la config wifi (taille 10 octets) à l'offset 48*1024, c'est à dire 0xc000

    Essaye d'écrire ta config à l'offset 0xd000, de la même façon que la config wifi.
    #define WDRV_NVM_MY_CONFIG_ADDR 0xd000
    Pour cela tu utilises la fonction WDRV_NVM_write() que tu as copiée, tu ne modifies pas l'original.
    Dedans tu remplaces WDRV_NVM_SPACE_ADDR par WDRV_NVM_MY_CONFIG_ADDR
    la lecture est plus simple en utilisant un pointeur sur le contenu de la flash, en 0x9d00d000 (DRV_NVM_MEDIA_START_ADDRESS + WDRV_NVM_MY_CONFIG_ADDR)

    Pour le bootloader, il y a dans MHC possibilité de le cocher, dans "Harmony Framework Configuration/Blootloader Library", à voir mais plus tard ...
    Il me semble avoir vu aussi dans la config RTOS, une option bootloader, mais je l'ai pas retrouvée dans le dédale MHC.

  13. #73
    davidif

    Re : pic32mx795f512l mémoriser en flash

    Merci pour ton investissement satinas, ça a été pour installer harmony ? Cest pas très instinctif tout du moins pour moi au départ.
    J'ai fais quelques testes hiers soir tard et pu constater quelque truc que je decrirais dès que je rentre au bureau, étant actuellement à l'extérieur, et vérifierai tes récentes observations.

    Merci

  14. #74
    davidif

    Re : pic32mx795f512l mémoriser en flash

    Bon ça évolue dans le bon sens , enfin, je m'explique :

    Après avoir réfléchie un peu plus sur l'espace mémoire utilisé à l'aide de tes explications, j'en est donc déduit que

    entre : 0x9d000000 et 0x9d008000 64kb nous avons les pages web
    et en 0x9d00C000 nous avons le début des paramètres wifi

    donc comme tu me l'a suggérer je me suis mis en 0x9d00d000

    Code:
    #define DRV_NVM_MEDIA_SIZE              64
    #define DRV_NVM_MEDIA_START_ADDRESS     0x9D000000
    #define WDRV_NVM_MY_CONFIG_ADDR       0xd000
    puis #define WDRV_NVM_SPACE_ADDR WDRV_NVM_MY_CONFIG_ADDR

    je scanne donc ma flash de 0x9d00CF00 à 0x9D00D100 histoire de voir avant et après, voila ce que je vois sans faire d'écriture sur la flash

    Code:
    0x9D00CF00:0x2E 0x20 0x49 0x66
    0x9D00CF04:0x20 0x6C 0x65 0x73
    0x9D00CF08:0x73 0x20 0x74 0x68
    0x9D00CF0C:0x61 0x6E 0x20 0x74
    0x9D00CF10:0x68 0x72 0x65 0x65
    0x9D00CF14:0x20 0x63 0x6F 0x6D
    0x9D00CF18:0x6D 0x75 0x6E 0x69
    0x9D00CF1C:0x74 0x69 0x65 0x73
    0x9D00CF20:0x20 0x61 0x72 0x65
    0x9D00CF24:0x20 0x6E 0x65 0x65
    0x9D00CF28:0x64 0x65 0x64 0x2C
    0x9D00CF2C:0x20 0x6C 0x65 0x61
    0x9D00CF30:0x76 0x65 0x20 0x0D
    0x9D00CF34:0x0A 0x65 0x78 0x74
    0x9D00CF38:0x72 0x61 0x20 0x66
    0x9D00CF3C:0x69 0x65 0x6C 0x64
    0x9D00CF40:0x73 0x20 0x62 0x6C
    0x9D00CF44:0x61 0x6E 0x6B 0x20
    0x9D00CF48:0x74 0x6F 0x20 0x64
    0x9D00CF4C:0x69 0x73 0x61 0x62
    0x9D00CF50:0x6C 0x65 0x20 0x74
    0x9D00CF54:0x68 0x65 0x6D 0x2E
    0x9D00CF58:0x3C 0x2F 0x70 0x3E
    0x9D00CF5C:0x0D 0x0A 0x0D 0x0A
    0x9D00CF60:0x0D 0x0A 0x3C 0x66
    0x9D00CF64:0x6F 0x72 0x6D 0x20
    0x9D00CF68:0x6D 0x65 0x74 0x68
    0x9D00CF6C:0x6F 0x64 0x3D 0x22
    0x9D00CF70:0x70 0x6F 0x73 0x74
    0x9D00CF74:0x22 0x20 0x61 0x63
    0x9D00CF78:0x74 0x69 0x6F 0x6E
    0x9D00CF7C:0x3D 0x22 0x2F 0x73
    0x9D00CF80:0x6E 0x6D 0x70 0x2F
    0x9D00CF84:0x73 0x6E 0x6D 0x70
    0x9D00CF88:0x63 0x6F 0x6E 0x66
    0x9D00CF8C:0x69 0x67 0x2E 0x68
    0x9D00CF90:0x74 0x6D 0x22 0x20
    0x9D00CF94:0x6E 0x61 0x6D 0x65
    0x9D00CF98:0x3D 0x22 0x63 0x6F
    0x9D00CF9C:0x6E 0x66 0x69 0x67
    0x9D00CFA0:0x22 0x3E 0x0D 0x0A
    0x9D00CFA4:0x3C 0x66 0x69 0x65
    0x9D00CFA8:0x6C 0x64 0x73 0x65
    0x9D00CFAC:0x74 0x3E 0x0D 0x0A
    0x9D00CFB0:0x0D 0x0A 0x3C 0x64
    0x9D00CFB4:0x69 0x76 0x3E 0x3C
    0x9D00CFB8:0x6C 0x61 0x62 0x65
    0x9D00CFBC:0x6C 0x3E 0x52 0x65
    0x9D00CFC0:0x61 0x64 0x20 0x43
    0x9D00CFC4:0x6F 0x6D 0x6D 0x31
    0x9D00CFC8:0x20 0x3A 0x3C 0x2F
    0x9D00CFCC:0x6C 0x61 0x62 0x65
    0x9D00CFD0:0x6C 0x3E 0x0D 0x0A
    0x9D00CFD4:0x3C 0x69 0x6E 0x70
    0x9D00CFD8:0x75 0x74 0x20 0x74
    0x9D00CFDC:0x79 0x70 0x65 0x3D
    0x9D00CFE0:0x22 0x74 0x65 0x78
    0x9D00CFE4:0x74 0x22 0x20 0x6E
    0x9D00CFE8:0x61 0x6D 0x65 0x3D
    0x9D00CFEC:0x22 0x72 0x63 0x6D
    0x9D00CFF0:0x30 0x22 0x20 0x76
    0x9D00CFF4:0x61 0x6C 0x75 0x65
    0x9D00CFF8:0x3D 0x22 0x7E 0x72
    0x9D00CFFC:0x65 0x61 0x64 0x5F
    0x9D00D000:0x63 0x6F 0x6D 0x6D
    0x9D00D004:0x28 0x30 0x29 0x7E
    0x9D00D008:0x22 0x20 0x2F 0x3E
    0x9D00D00C:0x3C 0x2F 0x64 0x69
    0x9D00D010:0x76 0x3E 0x0D 0x0A
    0x9D00D014:0x3C 0x64 0x69 0x76
    0x9D00D018:0x3E 0x3C 0x6C 0x61
    0x9D00D01C:0x62 0x65 0x6C 0x3E
    0x9D00D020:0x52 0x65 0x61 0x64
    0x9D00D024:0x20 0x43 0x6F 0x6D
    0x9D00D028:0x6D 0x32 0x20 0x3A
    0x9D00D02C:0x3C 0x2F 0x6C 0x61
    0x9D00D030:0x62 0x65 0x6C 0x3E
    0x9D00D034:0x0D 0x0A 0x3C 0x69
    0x9D00D038:0x6E 0x70 0x75 0x74
    0x9D00D03C:0x20 0x74 0x79 0x70
    0x9D00D040:0x65 0x3D 0x22 0x74
    0x9D00D044:0x65 0x78 0x74 0x22
    0x9D00D048:0x20 0x6E 0x61 0x6D
    0x9D00D04C:0x65 0x3D 0x22 0x72
    0x9D00D050:0x63 0x6D 0x31 0x22
    0x9D00D054:0x20 0x76 0x61 0x6C
    0x9D00D058:0x75 0x65 0x3D 0x22
    0x9D00D05C:0x7E 0x72 0x65 0x61
    0x9D00D060:0x64 0x5F 0x63 0x6F
    0x9D00D064:0x6D 0x6D 0x28 0x31
    0x9D00D068:0x29 0x7E 0x22 0x20
    0x9D00D06C:0x2F 0x3E 0x3C 0x2F
    0x9D00D070:0x64 0x69 0x76 0x3E
    0x9D00D074:0x0D 0x0A 0x3C 0x64
    0x9D00D078:0x69 0x76 0x3E 0x3C
    0x9D00D07C:0x6C 0x61 0x62 0x65
    0x9D00D080:0x6C 0x3E 0x52 0x65
    0x9D00D084:0x61 0x64 0x20 0x43
    0x9D00D088:0x6F 0x6D 0x6D 0x33
    0x9D00D08C:0x20 0x3A 0x3C 0x2F
    0x9D00D090:0x6C 0x61 0x62 0x65
    0x9D00D094:0x6C 0x3E 0x0D 0x0A
    0x9D00D098:0x3C 0x69 0x6E 0x70
    0x9D00D09C:0x75 0x74 0x20 0x74
    0x9D00D0A0:0x79 0x70 0x65 0x3D
    0x9D00D0A4:0x22 0x74 0x65 0x78
    0x9D00D0A8:0x74 0x22 0x20 0x6E
    0x9D00D0AC:0x61 0x6D 0x65 0x3D
    0x9D00D0B0:0x22 0x72 0x63 0x6D
    0x9D00D0B4:0x32 0x22 0x20 0x76
    0x9D00D0B8:0x61 0x6C 0x75 0x65
    0x9D00D0BC:0x3D 0x22 0x7E 0x72
    0x9D00D0C0:0x65 0x61 0x64 0x5F
    0x9D00D0C4:0x63 0x6F 0x6D 0x6D
    0x9D00D0C8:0x28 0x32 0x29 0x7E
    0x9D00D0CC:0x22 0x20 0x2F 0x3E
    0x9D00D0D0:0x3C 0x2F 0x64 0x69
    0x9D00D0D4:0x76 0x3E 0x0D 0x0A
    0x9D00D0D8:0x0D 0x0A 0x0D 0x0A
    0x9D00D0DC:0x3C 0x64 0x69 0x76
    0x9D00D0E0:0x3E 0x3C 0x6C 0x61
    0x9D00D0E4:0x62 0x65 0x6C 0x3E
    0x9D00D0E8:0x57 0x72 0x69 0x74
    0x9D00D0EC:0x65 0x20 0x43 0x6F
    0x9D00D0F0:0x6D 0x6D 0x31 0x3A
    0x9D00D0F4:0x3C 0x2F 0x6C 0x61
    0x9D00D0F8:0x62 0x65 0x6C 0x3E
    0x9D00D0FC:0x0D 0x0A 0x3C 0x69
    0x9D00D100:0x6E 0x70 0x75 0x74
    Puis en écrivant dans la flash, ont s’aperçoit que j'écrit bien la valeur que j'envoi pour essai 55dec (37hex) en 0x9D00D000

    Code:
    0x9D00CF94:0x6E 0x61 0x6D 0x65
    0x9D00CF98:0x3D 0x22 0x63 0x6F
    0x9D00CF9C:0x6E 0x66 0x69 0x67
    0x9D00CFA0:0x22 0x3E 0x0D 0x0A
    0x9D00CFA4:0x3C 0x66 0x69 0x65
    0x9D00CFA8:0x6C 0x64 0x73 0x65
    0x9D00CFAC:0x74 0x3E 0x0D 0x0A
    0x9D00CFB0:0x0D 0x0A 0x3C 0x64
    0x9D00CFB4:0x69 0x76 0x3E 0x3C
    0x9D00CFB8:0x6C 0x61 0x62 0x65
    0x9D00CFBC:0x6C 0x3E 0x52 0x65
    0x9D00CFC0:0x61 0x64 0x20 0x43
    0x9D00CFC4:0x6F 0x6D 0x6D 0x31
    0x9D00CFC8:0x20 0x3A 0x3C 0x2F
    0x9D00CFCC:0x6C 0x61 0x62 0x65
    0x9D00CFD0:0x6C 0x3E 0x0D 0x0A
    0x9D00CFD4:0x3C 0x69 0x6E 0x70
    0x9D00CFD8:0x75 0x74 0x20 0x74
    0x9D00CFDC:0x79 0x70 0x65 0x3D
    0x9D00CFE0:0x22 0x74 0x65 0x78
    0x9D00CFE4:0x74 0x22 0x20 0x6E
    0x9D00CFE8:0x61 0x6D 0x65 0x3D
    0x9D00CFEC:0x22 0x72 0x63 0x6D
    0x9D00CFF0:0x30 0x22 0x20 0x76
    0x9D00CFF4:0x61 0x6C 0x75 0x65
    0x9D00CFF8:0x3D 0x22 0x7E 0x72
    0x9D00CFFC:0x65 0x61 0x64 0x5F
    0x9D00D000:0x37 0x00 0x00 0x00
    0x9D00D004:0x00 0x00 0x00 0x00
    0x9D00D008:0x00 0x00 0x00 0x00
    0x9D00D00C:0x00 0x00 0x00 0x00
    0x9D00D010:0x00 0x00 0x00 0x00
    0x9D00D014:0x00 0x00 0x00 0x00
    0x9D00D018:0x00 0x00 0x00 0x00
    0x9D00D01C:0x00 0x00 0x00 0x00
    0x9D00D020:0x00 0x00 0x00 0x00
    0x9D00D024:0x00 0x00 0x00 0x00
    0x9D00D028:0x00 0x00 0x00 0x00
    0x9D00D02C:0x00 0x00 0x00 0x00
    0x9D00D030:0x00 0x00 0x00 0x00
    0x9D00D034:0x00 0x00 0x00 0x00
    0x9D00D038:0x00 0x00 0x00 0x00
    0x9D00D03C:0x00 0x00 0x00 0x00
    0x9D00D040:0x00 0x00 0x00 0x00
    0x9D00D044:0x00 0x00 0x00 0x00
    0x9D00D048:0x00 0x00 0x00 0x00
    0x9D00D04C:0x00 0x00 0x00 0x00
    0x9D00D050:0x00 0x00 0x00 0x00
    0x9D00D054:0x00 0x00 0x00 0x00
    Donc ça fonctionne bien, seulement je pense éffacer d'autres données en même temps, notamment concernant le wifi car par moment j'ai du mal à me reconnecté, mais j'y arrive quand même en rebranchant le système.

    Je refais des essais

    en ce qui concerne le bootloader, j'ai vu comme toi , qu'il suffisait de cocher les bonnes case, seulement derrière il génère un linker, et bizzarement les emplacements ne correspondent plus et trouve pas mal d'erreur, donc je verrai ça à la fin je pense.

  15. #75
    invite830075ec

    Re : pic32mx795f512l mémoriser en flash

    Relis ce que j'ai écrit. Il ne faut pas modifier WDRV_NVM_SPACE_ADDR, on ne touche jamais à un truc qui marche.

  16. #76
    davidif

    Re : pic32mx795f512l mémoriser en flash

    Citation Envoyé par satinas Voir le message
    Relis ce que j'ai écrit. Il ne faut pas modifier WDRV_NVM_SPACE_ADDR, on ne touche jamais à un truc qui marche.
    Désolé, j'ai dû louper quelque chose, mais tu me dis :

    Essaye d'écrire ta config à l'offset 0xd000, de la même façon que la config wifi.
    #define WDRV_NVM_MY_CONFIG_ADDR 0xd000
    Pour cela tu utilises la fonction WDRV_NVM_write() que tu as copiée, tu ne modifies pas l'original.
    Dedans tu remplaces WDRV_NVM_SPACE_ADDR par WDRV_NVM_MY_CONFIG_ADDR

    Je ne touche pas à la fonction, seulement dans mon fichier nvmen.c je fais ça

    #define WDRV_NVM_SPACE_ADDR WDRV_NVM_MY_CONFIG_ADDR // faire démarrer l'écriture à cette offset 0xd000

    Quand tu dis
    Dedans tu remplaces WDRV_NVM_SPACE_ADDR par WDRV_NVM_MY_CONFIG_ADDR
    Dedans Quoi ? (:

  17. #77
    invite830075ec

    Re : pic32mx795f512l mémoriser en flash

    Quand on dit pas dedans quoi, c'est que le dedans se rapporte à quelque chose qui a été cité juste avant. Cherche ...
    A quoi sert de copier (et renommer) une fonction si c'est pas pour la modifier. Si on la modifies pas, autant utiliser la fonction originale.
    Tu coinces surtout sur la compréhension globale, la fonction write écrit a un offset défini en dur par un #define. On va juste créer une seconde fonction write, qui elle écrit à un autre offset défini en dur dans un autre define. t'as compris là ?

    D'ailleurs dans Harmony 8 ils ont changé ça, et on peut spécifier l'offset en argument, t'est arrivé trop tôt sur Harmony
    Mon problème venait de Mplabx qui plantait avec ma 2ème carte graphique HD5450, bien que c'est pas elle qui affichait la fenêtre Mplabx. Pour que ça plante pas, je suis obligé de la désactiver. Et quand je dit plantage, c'est plutôt que la fenêtre Mplabx disparaissait au bout d'un temps aléatoire, sans aucun message, c'est la nouvelle mode des développeurs, comme ça personne se fait engueuler.

  18. #78
    davidif

    Re : pic32mx795f512l mémoriser en flash

    Autant pour moi, je vois ça

    et fait l'essai

  19. #79
    davidif

    Re : pic32mx795f512l mémoriser en flash

    J'ai crée ma nouvelle fonction et remplacer

    WDRV_NVM_SPACE_ADDR par WDRV_NVM_MY_CONFIG_ADDR

    j'ai refais les test à nouveau et me plaçant en 0xF200 ayant remarquer qu'a partir de 0x9d00F1D4 tout était à zéro, donc pour les essais et prendre de la marge je me suis mis à cette offset .

    Ce qui est bizzard, tout du moins pour moi (: c'est que avant écriture flash, j'ai des données avant 0x9d00F1D4 puis après écriture flash , je sauvegarde bien ma données écrite mais tout ce qui à avant (0x9d00f200) ce modifie en 0xFF ainsi que les données présentes à l'origine avant 0x9d00F1D4 également, je perd donc des données.

    ne serai ce pas lié au bloc définit dans la fonction "DRV_NVM_MEDIA_SIZE * 1024"

  20. #80
    invite830075ec

    Re : pic32mx795f512l mémoriser en flash

    Une flash est une flash, pas une auberge espagnole.
    La fonction d'écriture, très mal nommée car elle lit/efface/écrit, efface le bloc de 4k dans lequel se situe l'offset, donc de 0xF000 à 0xFFFF. Mais elle lit aussi avant d'effacer, alors peut être qu'elle conserve les données pré-existantes, en les ré-écrivant après effacement. J'ai la flemme d'aller voir la fonction pour la nième fois, parce que tu n'as pas fait ce que je t'ai dit.

  21. #81
    davidif

    Re : pic32mx795f512l mémoriser en flash

    ok , donc en fait les 0xFF après écriture remonte jusqu'a 0x9d00f000 d'ou

    0xf200 à 0xf000 fais 512 ce qui correspond à la taile de la rom

    #define DRV_NVM_ROW_SIZE 512

    Mais pourquoi pas 512 de l'autre côté ? mais plutôt en amont

  22. #82
    davidif

    Re : pic32mx795f512l mémoriser en flash

    Citation Envoyé par satinas Voir le message
    Une flash est une flash, pas une auberge espagnole.
    La fonction d'écriture, très mal nommée car elle lit/efface/écrit, efface le bloc de 4k dans lequel se situe l'offset, donc de 0xF000 à 0xFFFF. Mais elle lit aussi avant d'effacer, alors peut être qu'elle conserve les données pré-existantes, en les ré-écrivant après effacement. J'ai la flemme d'aller voir la fonction pour la nième fois, parce que tu n'as pas fait ce que je t'ai dit.
    Qu'est ce que je n'ai pas fais ?

    je reviens en arrière et j'ai bien recopier la fonction d'écriture, changé l'offset partout à l'interrieur, qu'aurais-je omis ? bon j'ai juste pris l'offset 0f200 au lieu 0d000 c'est ça ?
    Désolé, seulement entre temps je cherche beaucoup et fais pas mal d'essai (:

  23. #83
    invite830075ec

    Re : pic32mx795f512l mémoriser en flash

    Je t'ai dit de mettre ton adresse ip dans un buffer de 16 octets et d'écrire ta config dans la flash en 0xd000 (sachant que c'est tout le secteur de 0xd000 à 0xdfff qui est réservé car il sera effacé à chaque écriture). Si ça marche, tu passes à autre chose, plutôt que de tourner en rond. Je me suis inspiré de la config wifi de façon pragmatique pour aller vite, toi tu vagabondes.

  24. #84
    davidif

    Re : pic32mx795f512l mémoriser en flash

    Citation Envoyé par satinas Voir le message
    Je t'ai dit de mettre ton adresse ip dans un buffer de 16 octets et d'écrire ta config dans la flash en 0xd000 (sachant que c'est tout le secteur de 0xd000 à 0xdfff qui est réservé car il sera effacé à chaque écriture). Si ça marche, tu passes à autre chose, plutôt que de tourner en rond. Je me suis inspiré de la config wifi de façon pragmatique pour aller vite, toi tu vagabondes.
    ok , c'est simplement que j'essai de comprendre, c'est la raison que j'ai l'aire de vagabonder;

  25. #85
    invite830075ec

    Re : pic32mx795f512l mémoriser en flash

    http://forums.futura-sciences.com/el...ml#post5659992

    elle s'efface par secteur de 4096 octets alignés, elle s'écrit par row de 512 octets alignés, déjà écrit moultes fois.

  26. #86
    davidif

    Re : pic32mx795f512l mémoriser en flash

    ok j'enregistre bien mon ip 192.168.1.133

    0x9D00D000:0x31 0x39 0x32 0x2E
    0x9D00D004:0x31 0x36 0x38 0x2E
    0x9D00D008:0x31 0x2E 0x31 0x33
    0x9D00D00C:0x33 0x00 0x00 0x00

    Le seul problème est que ma page web d’accès au configure réseau est déformé et ça bug au moment au je clic sur une autre page web ou là ma pile s'arret;

    Par contre , celle-ci redémarre correctement une fois rebranché, mais recommence à buguer quand je ré-accède à la fameuse page web

  27. #87
    davidif

    Re : pic32mx795f512l mémoriser en flash

    Nickel !!

    J'ai réussi à changer mon IP

    Seule problème, comme dis précédemment, ma page de changement de paramètre IP est abimé me me donne plus accès

    là ou j'avais ça
    param0.png

    Après sauvegarge, j'ai ça

    param.png

  28. #88
    invite830075ec

    Re : pic32mx795f512l mémoriser en flash

    Cherche un secteur de 4096 octets non utilisé, en faisant une fonction qui ajoute tous les octets du secteur dans un uint32_t, et l'affiche périodiquement.
    J'ai pas l'intention de m'investir plus que ça, je fais moi-même toutes mes librairies, alors harmony ....

  29. #89
    davidif

    Re : pic32mx795f512l mémoriser en flash

    Citation Envoyé par satinas Voir le message
    Cherche un secteur de 4096 octets non utilisé, en faisant une fonction qui ajoute tous les octets du secteur dans un uint32_t, et l'affiche périodiquement.
    J'ai pas l'intention de m'investir plus que ça, je fais moi-même toutes mes librairies, alors harmony ....
    Compris et merci pour ton investissement et ta patience, tu m'a déjà grandement avancé sur une fonction dont je me désespérais , maintenant que j'arrive à écrire et lire mon ip je vais pouvoir finaliser.

  30. #90
    davidif

    Re : pic32mx795f512l mémoriser en flash

    Juste une question (:

    en ce qui concerne ma flash, d'après la doc, elle serait situé entre

    0x9d000000 et 0x9d00FFFF et également

    0xbd000000 et 0xbd00FFFF

    selon toi, je peux également me mettre en 0xbd aussi ou c'est réservé pour autre chose ?

    Merci

Page 3 sur 6 PremièrePremière 3 DernièreDernière

Discussions similaires

  1. programmation d'un pic32mx795f512l
    Par davidif dans le forum Électronique
    Réponses: 0
    Dernier message: 24/03/2015, 18h39
  2. programmation d'un pic32mx795f512l
    Par davidif dans le forum Électronique
    Réponses: 22
    Dernier message: 02/03/2015, 15h17
  3. bootloader pic32MX795F512L
    Par davidif dans le forum Électronique
    Réponses: 37
    Dernier message: 06/12/2013, 11h21
  4. 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...