cursada_mc2
Base de control de temperatura para EDU-CIAA-NXP
Loading...
Searching...
No Matches
eeprom_driver.h File Reference

Driver de acceso a la EEPROM interna del LPC4337. More...

#include <stdbool.h>
#include <stdint.h>
+ Include dependency graph for eeprom_driver.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define DRIVER_EEPROM_REGION_SIZE   256U
 Tamano reservado para datos persistentes de la aplicacion.
 

Functions

bool driver_eeprom_init (void)
 Inicializa el periferico EEPROM.
 
bool driver_eeprom_read (void *destino, uint32_t cantidad)
 Lee un bloque desde la region reservada de EEPROM.
 
bool driver_eeprom_write (const void *origen, uint32_t cantidad)
 Escribe un bloque dentro de la region reservada de EEPROM.
 

Macro Definition Documentation

◆ DRIVER_EEPROM_REGION_SIZE

#define DRIVER_EEPROM_REGION_SIZE   256U

Definition at line 13 of file eeprom_driver.h.

Function Documentation

◆ driver_eeprom_init()

bool driver_eeprom_init ( void  )
Return values
trueSi la EEPROM quedo lista para usarse.
falseSi no pudo inicializarse.

Definition at line 39 of file eeprom_driver.c.

References eeprom_driver_inicializado_.

Referenced by app_init().

◆ driver_eeprom_read()

bool driver_eeprom_read ( void *  destino,
uint32_t  cantidad 
)
Parameters
destinoBuffer de destino.
cantidadCantidad de bytes a leer.
Return values
trueSi la lectura fue valida.
falseSi el rango o los punteros son invalidos.

Definition at line 47 of file eeprom_driver.c.

References DRIVER_EEPROM_REGION_SIZE, and eeprom_driver_inicializado_.

Referenced by parametros_init().

◆ driver_eeprom_write()

bool driver_eeprom_write ( const void *  origen,
uint32_t  cantidad 
)
Parameters
origenBuffer de origen.
cantidadCantidad de bytes a escribir.
Return values
trueSi la escritura fue valida.
falseSi el rango o los punteros son invalidos.

Cada pagina se trata con una estrategia read-modify-write.

Primero se copia la pagina actual desde EEPROM, luego se parchea en RAM solo el rango solicitado y finalmente se reprograma la pagina completa solo si hubo cambios reales. Esto evita escrituras innecesarias aunque la API publica siempre escriba el bloque completo reservado para la app.

Definition at line 65 of file eeprom_driver.c.

References driver_eeprom_programar_pagina(), DRIVER_EEPROM_REGION_SIZE, and eeprom_driver_inicializado_.

Referenced by parametros_guardar().