/********************************************************************/
/*********** Inicializa producto con Nº Serie y Codigo producto ****/
/********************************************************************/
unsigned int Inicializa_producto()
{
// Cargo nuevos valores para Nº serie y Codigo producto.
unsigned int Num_dispositivo;
unsigned int Codigo_producto;
Num_dispositivo = (hexRec[20]*0x1000000) + (hexRec[21]*0x10000) + (hexRec[22]*0x100) + hexRec[23];
Codigo_producto = (hexRec[24]*0x1000000) + (hexRec[25]*0x10000) + (hexRec[26]*0x100) + hexRec[27];
// cargo página desde 0x09D0xxxx, FFF bytes en matriz
unsigned int pageBuff[1024]; // matriz 1024 elementos para guardar pagina (1024*4=4096 bytes)
unsigned int *userFlashPage;
userFlashPage = PAGINA_FLASH_VARIABLES; // Inicio pagina a copiar
memcpy((void *)pageBuff
, (void *)userFlashPage
, 4096);
// Reemplazo Numero serie de producto y Codigo producto
// Device=ID es el elemento 000 = 0, y Vers_firmware es 004 = 1 en matriz
pageBuff[0] = Num_dispositivo;
pageBuff[1] = Codigo_producto;
// Borro pagina 0x9D00xxxx, total 4096 bytes
NVMemErasePage((void *)PAGINA_FLASH_VARIABLES);
// Recargo matriz temporal modificada en pagina 0x9D0xxxx, total 4096 bytes
unsigned int ix;
for(ix = 0; ix < 1024; ix++)
{
NVMWriteWord((void *)(userFlashPage + ix), pageBuff[ix]);
}
}