El controlador de emulación EEPROM no funciona cuando los tamaños de página son 2KB

2

Estoy tratando de implementar la Emulación EEPROM en un STM32F07x usando el controlador suministrado por ST. El problema está en intentar inicializar el flash emulado, el controlador falla y siempre devuelve NO_VALID_PAGE. He cambiado las definiciones para el Tamaño de página y la dirección de inicio de EEPROM para que coincida con el Manual de referencia, pero no funciona.

    
pregunta Galaxy

1 respuesta

4

Hay un error sutil en el archivo eeprom.h. El cálculo de la PAGE1_BASE_ADDRESS se basa en la página de valor de 1 KB en lugar de usar la definición que se supone que se adapta a diferentes tamaños de página en las MCU.

Cambiar la definición

#define PAGE1_BASE_ADDRESS    ((uint32_t)(EEPROM_START_ADDRESS + 0x0400))

a:

#define PAGE1_BASE_ADDRESS    ((uint32_t)(EEPROM_START_ADDRESS + PAGE_SIZE))
    
respondido por el Galaxy

Lea otras preguntas en las etiquetas