void WiFi_WriteConfigToMemory(void) { if(sizeof(DRV_WIFI_CONFIG_DATA) > 512) SYS_ASSERT(true, "p_wifi_ConfigData > 512"); NVMErasePage((void*)NVM_PROGRAM_PAGE); NVMWriteRow((void*)NVM_PROGRAM_PAGE, (void*)p_wifi_ConfigData); }
void APP_NVM_Write2(void) { int i; uint8_t buf_t[10]; char c_tmp = 0; for(i = 0;i<DRV_NVM_PAGE_SIZE;i++) { NVM_DATA_TEST_BUFF[i] = 0x55; } SYS_CONSOLE_MESSAGE("2. erase\r\n"); NVMErasePage((void*)NVM_WF_CONFIG__ADDRESS); SYS_CONSOLE_MESSAGE("3. Write\r\n"); NVMWriteRow((void*)NVM_WF_CONFIG__ADDRESS, (void*)NVM_DATA_TEST_BUFF); SYS_CONSOLE_MESSAGE("4. Done\r\n"); }
//-------------------------------------------------------------------------------------------- // Fonction : config_ReadIsr // Utilité : écrire dans la zonne de configuration appartire du main //-------------------------------------------------------------------------------------------- void config_Write(char *pBuffer, long Base, int Nbr, long IdConfig) { unsigned int pageStartAddr; unsigned int offset, numLeftInPage; unsigned int index; Base += IdConfig;//SECTEUR_CONFIG; // 2. Calculate Page Start address pageStartAddr = (unsigned int)Base & (~(BYTE_PAGE_SIZE - 1)); offset = (unsigned int)Base & (BYTE_PAGE_SIZE - 1); while(Nbr) { memcpy((unsigned int *)(config_Mem), (void *)(pageStartAddr), BYTE_PAGE_SIZE); NVMErasePage((void *)pageStartAddr); numLeftInPage = BYTE_PAGE_SIZE - offset; if(Nbr <= numLeftInPage) { memcpy((unsigned int *)(config_Mem + offset), (void *)(pBuffer), Nbr); Nbr = 0; } else { memcpy((unsigned int *)(config_Mem + offset), (void *)(pBuffer), numLeftInPage); Nbr -= numLeftInPage; pBuffer += numLeftInPage; } // Program the Page for(index = 0; index < NUM_ROWS_PAGE; index++) { NVMWriteRow((void *)(pageStartAddr), (void *)config_Mem + (index * BYTE_ROW_SIZE)); pageStartAddr += BYTE_ROW_SIZE; } offset = 0; } }