Hola planeta, pues acabo de probar lo que comentas, pero el comportamiento es el mismo, cuando leo solo leo 0, cuando deberia leer un buffer ascendente (1,2,3,4...)
tambien he probado a desbloquear la pagina:
void LeerFlash(void)
{
uint32_t page_size;
uint16_t i;
/* Init source data */
page_size = flash_get_page_size(&FLASH_0);
for (i = 0; i < page_size; i++) {
src_data[i] = i;
}
flash_unlock(&FLASH_0, 0x0047F800, page_size);
flash_erase(&FLASH_0, 0x0047F800,page_size);
/* Write data to flash */
flash_write(&FLASH_0, 0x0047F800, src_data, page_size);
/* Read data from flash */
flash_read(&FLASH_0, 0x0047F800, chk_data, page_size);
i=1;
}
el "i=1" es para parar el debug y ver los arrays src_data y chk_data, la dirección he usado esa que seria la direccion base 0x04000000 + 0x80000 (512B) -512*4
asi tendria 2048 bytes para guardar. pero nada cuando para en i=1; tengo el src_data[0]=0,src_data[1]=1, etc. pero el chk_data todo a 0.
no se que puede ser.