|
cursada_mc2
Base de control de temperatura para EDU-CIAA-NXP
|
Driver de acceso a la EEPROM interna del LPC4337. More...
Include dependency graph for eeprom_driver.c:Go to the source code of this file.
Macros | |
| #define | EEPROM_DRIVER_PAGE_WORDS (EEPROM_PAGE_SIZE / sizeof(uint32_t)) |
Functions | |
| static void | driver_eeprom_programar_pagina (uint32_t pagina, const uint8_t *datos_pagina) |
| Programa una pagina completa de EEPROM a partir de un buffer RAM. | |
| 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. | |
Variables | |
| static bool | eeprom_driver_inicializado_ = false |
| #define EEPROM_DRIVER_PAGE_WORDS (EEPROM_PAGE_SIZE / sizeof(uint32_t)) |
Definition at line 12 of file eeprom_driver.c.
| bool driver_eeprom_init | ( | void | ) |
| true | Si la EEPROM quedo lista para usarse. |
| false | Si no pudo inicializarse. |
Definition at line 39 of file eeprom_driver.c.
References eeprom_driver_inicializado_.
Referenced by app_init().
|
static |
La EEPROM interna del LPC43xx se programa por palabras dentro de una pagina. El driver arma previamente la pagina completa en RAM para poder soportar escrituras parciales sin corromper los bytes vecinos.
Definition at line 23 of file eeprom_driver.c.
References EEPROM_DRIVER_PAGE_WORDS.
Referenced by driver_eeprom_write().
| bool driver_eeprom_read | ( | void * | destino, |
| uint32_t | cantidad | ||
| ) |
| destino | Buffer de destino. |
| cantidad | Cantidad de bytes a leer. |
| true | Si la lectura fue valida. |
| false | Si 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().
| bool driver_eeprom_write | ( | const void * | origen, |
| uint32_t | cantidad | ||
| ) |
| origen | Buffer de origen. |
| cantidad | Cantidad de bytes a escribir. |
| true | Si la escritura fue valida. |
| false | Si 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().
|
static |
Definition at line 14 of file eeprom_driver.c.
Referenced by driver_eeprom_init(), driver_eeprom_read(), and driver_eeprom_write().