Comment faire le test de la mémoire sur l'Architecture Arm Matériel? (quelque chose comme Memtest86)
Est-il un moyen de faire compléter le test de la mémoire sur un appareil android RAM?
Je suis le développement d'un pilote, mais à l'aléatoire fois que je reçois certaines adresses physiques avec une valeur incorrecte provoque le chauffeur d'aller en mauvais état. Je suis en train de lire à partir de la RAM quand j'ai touché le problème. Je Pense que certaines parties de la ram sur mon appareil sont endommagés.
Vous parlez réelle de la RAM ou un mappés en mémoire de l'appareil? MMDs juste "ressembler à" la normale de RAM, mais vous êtes à accéder à certaines registre interne de l'appareil. Dans les deux cas, vous devez vérifier si vos paramètres de cache pour la mémoire de la région est correcte et si vous êtes rinçage/invalidation du cache correctement s'il est utilisé par le périphérique et le CPU.
Si vous pensez vraiment que vous avez endommagé la mémoire vous pouvez vérifier si votre bootloader est de fournir un quelconque test de mémoire.
Je vérifie pour la RAM. J'ai une mémoire tampon circulaire (circulaire linklist) dont je suis la vérification de données. Malheureusement bootloader n'est pas de fournir un quelconque test de mémoire.
Qui est le remplissage de la mémoire tampon en anneau? Si c'est un processus différent, d'un dispositif ou le noyau que vous pourriez avoir de cache-problèmes. Vous devez vérifier que les premier, ram défectueuse est très peu probable.
Le matériel remplit le tampon en anneau et génère une interruption. Le pilote que pour extraire les données. Il pourrait être que vous avez raison. Donc, je suis actuellement à la recherche d'éventuels problèmes de cache.
Si vous pensez vraiment que vous avez endommagé la mémoire vous pouvez vérifier si votre bootloader est de fournir un quelconque test de mémoire.
Je vérifie pour la RAM. J'ai une mémoire tampon circulaire (circulaire linklist) dont je suis la vérification de données. Malheureusement bootloader n'est pas de fournir un quelconque test de mémoire.
Qui est le remplissage de la mémoire tampon en anneau? Si c'est un processus différent, d'un dispositif ou le noyau que vous pourriez avoir de cache-problèmes. Vous devez vérifier que les premier, ram défectueuse est très peu probable.
Le matériel remplit le tampon en anneau et génère une interruption. Le pilote que pour extraire les données. Il pourrait être que vous avez raison. Donc, je suis actuellement à la recherche d'éventuels problèmes de cache.
OriginalL'auteur Vector | 2012-07-24
Vous devez vous connecter pour publier un commentaire.
Complète est un mot ambigu. Il peut signifier différentes températures, les tensions et à travers une gamme d'appareils avec des composants de tolérance. Comme vous le site MemTest86, je crois que je comprends. La plupart des projets que j'ai vu sont C base et ne peut pas tout tester.
Ici est celui qui exécute, en vertu de Linux - http://www.madsgroup.org/~quintela/memtest/
Il y a des algorithmes documenté comme marche bits, etc. Beaucoup dépend de votre type de RAM. Je suppose que vous avez un certain type de SDRAM. Il ya beaucoup de différents cycles avec SDRAM. Il y a un seul détail de lire/écrire, de banque à banque de transfert, résilié rafales, etc.
Personnellement, nous avions un système de 5% des conseils d'administration ne montrent des problèmes lorsque vous effectuez un SSH transfert over Ethernet (DMA). Le SSH implique de chiffrement qui est CPU/mémoire intensive et le moteur DMA souvent différentes de SDRAM cycles de la CPU (avec cache).
Voici quelques exigences,
Une autre limitation est l'exigence temps à exécuter. Un complète SDRAM test pourrait prendre des années pour s'exécuter sur un seul conseil d'administration. J'ai trouvé que un pseudo-aléatoire d'adresses/données de test fonctionne bien. Il suffit de prendre les chiffres qui sont par rapport premier à la taille de la SDRAM et de l'utiliser comme un incrément. Le cas le plus simple est
1
. Vous souhaitez trouver les autres à changer constamment derows
,banks
et la taille de l'instrument;bank size-1
par exemple; cependant nombres premiers fonctionnera mieux que vous avez des quantités différentes de bits de changer tout le temps. Avec le cache désactivé, vous pouvez utiliserchar
,short
,int
, etlong long
pointeurs de tester différentes longueurs de rafale. Ces tests sera lente. Vous aurez besoin d'utiliserldm/stm
paires de simuler un plein SDRAM rafale, ce sont plus fréquents avec la cache sur de sorte que vous devrait simuler avecldm/stm
. C'est aussi l'un des plus rapides des essais.incr
les données d'incrémentation et dewrap
est l'adresse de l'incrément. L'algorithme pour la rafale sera le même. Voici quelques inline gcc assembleur,Ces tests sont simples et doivent rentrer dans le cache de code qui permettra de maximiser le stress sur la mémoire vive. Notre principal problème était le DQS du retard, ce qui est essentiel pour la DDR-SDRAM et de la température et de la tension dépend et varie avec les PCB et les matériaux.
Cachbench peut être utilisé si vous êtes l'optimisation du contrôleur de mémoire des registres de la SDRAM jetons. Il peut également être utile pour les tests.
Voir aussi: Unix Stack Exchange (même question). J'ai utilisé ces C en fonction des suites de test sous Linux, mais ils n'ont pas d'exposer le plus de problèmes dans notre cas. Le memtest86 algorithmes peut ne pas être aussi stressant (pour les PCB problèmes) que ce que je décris ci-dessus; bien que le test 7 ou la burnBX test est proche. Je pense que memtest86 approvisionne à trouver DRAM puce problèmes plutôt qu'à la conception de la carte des enjeux.
Edit: un Autre problème est transitoires/croix parler avec la SDRAM jetons. Si votre pilote de périphérique est un courant haute fréquence élevée de l'appareil, la SDRAM interface possible de ramasser de la croix de parler, ou d'obtenir une horloge double due à l'offre de variations. Ainsi, un RAM test peuvent ne pas présenter les enjeux et la SDRAM erreur se produit uniquement lorsqu'une portion particulière de matériel est utilisé. Également veiller à ce que l'appareil Android n'utilise pas de dynamique d'horloge et de changer la SDRAM fréquence. Les signaux peuvent traverser la résonance que les modifications de l'horloge.
Ou vous pouvez, vous le savez, remplacer la RAM et voir si le problème disparaît. Puis le mettre en arrière et voir si elle revient. Alors vous savez que votre RAM est défectueuse, et ne pas prendre des années, voire quelques heures.
La plupart incorporé les plates-formes ARM n'ont pas amovible RAM Dimm (ou autre) car il augmente le coût et la taille du conseil. Ils sont dur soudé uBGA frites qui sont difficiles à enlever. Aussi, le problème ne peut pas se produire à toutes les plages de fonctionnement. C'est à dire, de la chaleur, de mur de la puissance, et le logiciel en cours d'exécution peut tout exposer le problème (même si c'était sertie). Certaines personnes de l'écriture intégré à BRAS le logiciel peut avoir 1k-1M+ périphériques et il n'est pas toujours de leur échec. Un bon test peut vous aider à trouver les instruments problématiques pour une inspection plus poussée.
Cette information est très agréable, mais existe-t-il aucun mémoire accessible suite de test qui n'a pas besoin d'un système d'exploitation hôte exécutant le travail? Je suis très habitué à l'exécution des batteries de memtest86 tests afin d'améliorer ma confiance en les barrettes que j'utilise dans mes postes de travail et serveurs, mais il semble y avoir aucun outil correspondant pour l'architecture ARM?
OriginalL'auteur artless noise