El proceso de verificar si una pieza de Flash es buena o mala

El proceso general de verificar si una pieza de Flash es buena o mala


inserte la descripción de la imagen aquí

La función del módulo Homs es generar números aleatorios;

La función del módulo NFC es realizar una serie de operaciones en una pieza de Flash, como reiniciar, leer y escribir;

La función del módulo RCMP es XOR comparar el número aleatorio generado por Homs con los datos de números aleatorios leídos de Flash, y luego obtener el número de bit incorrecto y la dirección de bit incorrecta de acuerdo con las necesidades reales;

El proceso de inspección general es así.

Homs genera un número aleatorio, luego escribe los datos de números aleatorios en Flash a través de NFC, y luego lee los datos de números aleatorios y los compara con el número aleatorio original generado por Homs;

El módulo utilizado para la comparación es RCMP, para ver si los dos datos son consistentes, si la calidad de Flash está intacta, entonces el resultado de la comparación de datos entre los dos es exactamente el mismo;

Pero en circunstancias normales, la calidad de Flash es desigual y las direcciones incorrectas causarán inconsistencias en los números aleatorios comparados. Es probable que este bit inconsistente se deba a que la dirección del bit está rota. Flash está más o menos dañado, siempre que el daño no es demasiado grande, todavía se puede utilizar.

En este momento, el módulo RCMP debe seleccionar la dirección rota después de la comparación y luego, a través de la programación del software, la dirección incorrecta se omitirá al leer y escribir la próxima vez.

El principio de Homs generando números aleatorios

Al escribir la capa de aplicación, incluso si no conoce el principio del módulo, no afectará su desarrollo, pero tenía curiosidad y pregunté a los colegas de IC sobre el principio de funcionamiento del módulo en detalle.

Hay un marco llamado LSFR en Homs, que es el número aleatorio que genera;

Hay un total de 8 polinomios en LSFR, LSFR0~LSFR7, cada polinomio se usa para generar un número aleatorio de 4 bits, luego todo el LSFR genera un número aleatorio con un ancho de datos de 32 bits una vez.

Para evitar valores fijos y generar números aleatorios sin problemas, es necesario tener una semilla. Se usa una semilla para inicializar el primer número aleatorio de 32 bits, y luego el primer número aleatorio se usará como la semilla del segundo aleatorio. El segundo número aleatorio se utiliza como semilla para el tercer número aleatorio, y así sucesivamente, para generar una serie de números aleatorios.

Entonces, ¿de dónde viene la primera semilla? La tabla de semillas debe configurarse. Para decirlo sin rodeos, la tabla de semillas es una dirección SRAM para almacenar datos de semillas. Solo necesitamos configurar la primera semilla nosotros mismos.

Lo que también se puede optimizar es que las semillas utilizadas de la tabla de semillas también pueden someterse a una operación XOR, y una semilla y un valor se pueden XOR antes de que puedan usarse realmente.

Supongo que te gusta

Origin blog.csdn.net/weixin_41904238/article/details/120052754
Recomendado
Clasificación