Quería verificar la redundancia en eeprom y verificar los datos para detectar cualquier error ocurrido o no y terminé leyendo el código CRC. Lo encontré útil pero tengo algunas dudas que necesitan claridad.
Mi objetivo es verificar las ubicaciones de direcciones de memoria 0-15k de eeprom y almacenar la suma de comprobación en la memoria y hacer lo mismo para las siguientes ubicaciones de direcciones 15k-30k. Las dos ubicaciones de direcciones almacenan los mismos datos y se hacen para que se utilice la memoria eeprom.
Bueno, cuando comencé a leer los documentos. Terminé con un código útil:
unsigned int crc32(unsigned char *message) {
int i, j;
unsigned int byte, crc;
i = 0;
crc = 0xFFFFFFFF;
while (message[i] != 0) {
byte = message[i]; // Get next byte.
byte = reverse(byte); // 32-bit reversal.
for (j = 0; j <= 7; j++) { // Do eight times.
if ((int)(crc ^ byte) < 0)
crc = (crc << 1) ^ 0x04C11DB7;
else crc = crc << 1;
byte = byte << 1; // Ready next msg bit.
}
i = i + 1;
}
return reverse(~crc);
}
Aquí, según entiendo, el ' mensaje ' espera bytes y continúa el cálculo de CRC hasta que no se recibe el carácter. Si quisiera comprobar los dos bloques de memoria de eeprom como dije antes. ¿Cómo puedo agregar la memoria de eeprom a la variable de mensaje?
bien mi otra * duda es si la lectura de eeprom tiene algún límite con respecto a la lectura de la dirección de lectura de 0 a 15k de manera similar a como escribe eeprom * Necesito tus aportaciones para hacer este intento útil y gratificante. Saludos