Problema con IAP

0

Estoy usando LPC1788 IAP para escribir en Flash y estoy un poco confundido sobre lo que está pasando. Estoy tratando de escribir 8 bytes de datos en la memoria Flash con 2 técnicas:

1) Con uno que es lógico para mí y no funciona

for(i=0; i<8; i++) {
    iap_copy_to_flash(&serial_no[i], OFFSET_SERIAL+i, 1);
    }

2) Con uno que no es lógico para mí y funciona

 iap_copy_to_flash((BYTE*)serial_no, OFFSET_SERIAL, 8);
  

OFFSET SERIAL es 0x00040000 y serial_no [8] es una matriz de BYTES

¿Por qué primero no funciona y segundo funciona?

Solo estoy teniendo problemas al escribir la matriz en el sector de Flash, al escribir las variables BYTE, WORD, DWORD, todo está bien.

Aquí está la función iap_copy_to_flash enlace y copy_ram_to_flash function enlace . Estaré muy agradecido si alguien me explica lo que está mal con mi pensamiento. Gracias.

    
pregunta

1 respuesta

0

Busque en la documentación las funciones de IAP. LPC17xx no permite que las escrituras de bytes se activen, y tampoco estoy seguro de si las escrituras DWORD están permitidas.

La memoria flash en sí es más ancha que un byte (en realidad, 64 bits IIRC), por lo que no puede escribir un solo byte sin tocar otros.

    
respondido por el Turbo J

Lea otras preguntas en las etiquetas