Estoy trabajando en un proyecto que lee y escribe de forma aleatoria grandes bloques de datos desde la EEPROM, en base a las aportaciones de los usuarios. He usado la EEPROM antes, pero realmente nunca pensé en esto. En las operaciones descritas en el archivo eeprom.h estándar ( documentación ), siempre tiene para agregar un encasillado a una ubicación de dirección conocida. Por ejemplo:
DATA_BYTE = eeprom_read_byte((uint8_t*)LOCATION);
Esto tiene sentido, pero lo que no entiendo es su uso para datos más grandes, como los siguientes:
DATA_DWORD = eeprom_read_dword((uint32_t*)LOCATION);
¿El typecast (unit32_t) describe el tamaño del puntero o el tamaño de los datos a los que se apunta? Sé que el ATmega328p tiene 1kBytes de EEPROM, lo que significa que se necesitaría un puntero de 16 bits para mantener la dirección en un solo byte de datos. Así que supongo que esto significa que la transmisión de tipo no tiene nada que ver con el tamaño del puntero, pero el tamaño de los datos que se escriben / leen ... Sé que funciona, me gustaría entenderlo mejor.
Espero que tenga sentido. Gracias de antemano!