예제 #1
0
			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);
			}
예제 #2
0
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;  
	}
}