J'ai un code pour communiquer avec ma mémoire SST26VF064B, j'arrive correctement à lire et écrire sans problème.
https://ww1.microchip.com/downloads/.../20005119G.pdf
Mon code ne pend pas en compte l'adresse de départ donc destination et afin de dissocier la sauvegarde de mes données, je modifie donc mon code pour ce faire.
Mon code d'origine et fonctionnel est :
lequel est utilisé en chargeant les données de ma structureCode:void nvm_read_data_spi (char *buf, int size) { unsigned long i,j,k; //int status; check1a=0; check2a=0; check3a=0; page_bad=0; page_good=0; j=0; break_l=0; status=1; //1 means memory/code works and 0 means fault has occured. check=0; //keeps track of code progress. tempcheck=1; SPI_WREN(); j=0; i=0; // while (j<(4096)) while (j<size) { // SPI_WREN(); // SPI_Set_Burst(0x03); SPI_HighSpeed_Read_Cont(j,256); for (k=0;k<=255;k++) { buf[i]=data_256[k]; i++; } j=j+256; break_l=2; } }
nvm_read_data_spi ((char *)&appDataTCPIP_WIFI, sizeof(appDataTCPIP_WIFI));
Afin de bouger mon adresse de départ de sauvegarde pour placer d'autres données ailleurs, je modifier légèrement ma fonction comme tel :
Je fait donc çaCode:void nvm_read_etat_spi (char *buf, int size, unsigned long dst ) { unsigned long i,j,k,l; check1a=0; check2a=0; check3a=0; page_bad=0; page_good=0; j=0; l=0; break_l=0; status=1; //1 means memory/code works and 0 means fault has occured. check=0; //keeps track of code progress. tempcheck=1; SPI_WREN(); j=0; i=0; while (j<size) { l=dst+j; SPI_HighSpeed_Read_Cont(l,256); for (k=0;k<=255;k++) { buf[i]=data_256[k]; i++; } j=j+256; break_l=2; } }
nvm_read_etat_spi ((char *)&appDataEtat, sizeof(appDataEtat),5000);
Pour me placer à l'adresse 5000 (là j'ai un doute sur la forme)
Le problème mon programme ce bloque ... je sais pas trop pourquoi, pourtant je bouge pas grand choses
Pourriez vous m'aider s'il vous plait
merci
-----