he estado trabajando mucho con las memorias flash, pero me he encontrado con que aveces se me borra y no se por que, por eso quisiera saber en cuanto a programación que cuidado debemos tener al momento de escribir y leer de una memoria flash, para tratar de minimizar los problemas.
Antes de grabar, debes de borrar, pero debes de borrar una página completa, que en el caso de los PIC32 es de 4096 bytes, supongo que será de 2048 bytes para los pic de 16 bit y de 1024 (o menos) para los pic de 8 bit.
Si parte de lo que está almacenado en esa página, te vale, antes de borrarla tendrás que guardar su contenido, por ejemplo en un array, actualizar el array y volver a cargar la página completa. Si no lo haces así, perderás todo el contenido de la página. Si tratas de grabar, sin borrar previamente, los resultados pueden ser imprevisibles, yo hace tiempo cuando andaba desarrollando mi bootloader, antes de conocer la existencia de NVMem, intenté grabar directamente sin borrado previo, y me salieron cosas muy raras al hacer debug.