Tenemos una placa personalizada basada en negro beaglebone con 256MB de memoria RAM DDR3 y eMMC de 4GB. Tenemos dos tipos diferentes de DDR3 para nuestros tableros.
- MT41K128M16JT - Bancos de 16 Meg x 16 x 8: Tamaño 256MB
- MT41K256M16 - 32 Meg x 16 x 8 bancos: tamaño 512MB
Estamos escribiendo una base de datos de memoria y una prueba de bus de dirección que se realizará en la línea de fabricación / ensamblaje para detectar si hay algún problema con la dirección o la línea de datos. Lo que queremos lograr es
- Si hay un problema en la base de datos, qué línea de datos tiene un problema (abierto o corto)
- SI hay un problema en la línea de dirección, qué línea de dirección tiene un problema (abierto o corto)
Estamos haciendo referencia a la prueba de walking 1 de enlace
Ahora mi duda es que esta prueba de Walking 1 está bien con memoria direccionable directa, pero con DDR3 ¿sigue siendo aplicable?
Tome un ejemplo de prueba de bus de dirección, y la ubicación bajo prueba es 0x00010000 y tiene un problema, es decir, los datos escritos y leídos no coinciden.
En este caso, la línea de dirección corresponde a 16, sin embargo, el total de líneas en el chip de memoria ddr es 15 (A0-A14), por lo que no podemos saber qué línea tiene un problema, ¿no?
En este caso, ¿cómo puedo encontrar qué línea de dirección tiene un problema y cómo puedo capturarlo en mi código de prueba?