¿Cómo se ve un mapa de memoria de una EEPROM 1K? [cerrado]

1

Estoy usando un 1Kbit: el dispositivo está organizado como un bloque de memoria de 128 x 8 bits. ¿Quiero entender cómo está organizado y cómo están estructuradas las direcciones?

Ejemplo: quiero almacenar el mundo "Hola" en la EEPROM. Cada personaje está codificado en 1 byte; Así que aquí tenemos 5 bytes en total, ya que la memoria es de 128 x 8 bits. Cada personaje va a ser almacenado en una dirección. Mi pregunta es ¿cómo se organizan estas direcciones? Es algo como esto:

  

0x00: H
  0x01: E
  0x02: L
  0x03: L
  0x04: O
  ..
  ..

     

0x7F

Lo que estoy tratando de hacer es almacenar los datos en EEPROM en un orden específico. Así que tengo que saber cómo se ve el mapa de memoria para saber la dirección de inicio y final de cada campo.
Ejemplo:
Quiero almacenar: nombre edad, fecha de nacimiento y país en una EEPROM. Definamos 2 funciones escribir (dirección) y leer (dirección). Mi problema ¿cómo determinar 'dirección'?

    
pregunta Pryda

1 respuesta

2

Las EEPROM suelen ser direccionables por bytes, es decir. simplemente tienes una matriz de bytes. Puede configurar cualquiera de ellos individualmente (a diferencia de flash, donde puede configurarlos bit a bit, pero borrarlos en bloques más grandes).

Mi enfoque habitual al tratar con EEPROM es definir una estructura en el código como:

typedef struct {
    uint32_t magic;
    uint32_t version;
    uint32_t parameter1;
    bool use_something;
    uint8_t parameter2;
    uint32_t checksum;
} settings_t;

Lo declaro en un solo lugar (en RAM): settings_t my_global_settings; , luego, cuando quiero guardarlo, hago el puntero de uint8_t que apunta a la estructura en la RAM y luego escribo byte por byte en un bucle (hasta sizeof(settings_t) ). La lectura se realiza de manera similar.

Es bueno tener un archivo con un mapa de memoria de EEPROM (si tiene más de una estructura) con definiciones / constantes como EEPROM_CALIBRATION_BASE_ADDR, EEPROM_SETTINGS1_BASE_ADDR, etc. Debe calcular las direcciones usted mismo y / o confiar en sizeof .

Recuerde utilizar una suma de comprobación, CRC o LRC al final de sus datos para verificar que realmente tiene sentido.

    
respondido por el filo

Lea otras preguntas en las etiquetas