Como posso testar a RAM quanto à corrupção de dados em um sistema baseado em ARM?


20

Eu tenho um dispositivo incorporado. É baseado em ARM, com Linux 2.6.31 e tem 256 MB de RAM.

Eu queria ter algumas idéias / dicas sobre qual é a maneira mais eficaz de testar a RAM do dispositivo quanto a corrupção de dados. Existe um teste / software que alguém possa sugerir?

Nota:

Eu tenho memtester agora. Eu o recebi após sugestão de Ulrich Dangel (abaixo).

Eu também mtestconfigurei a partir do uboot agora.

Quaisquer outros testes / abordagens que eu possa usar?


2
Observe que esta é uma CPU ARM, não uma x86; infelizmente, o Memtest86 + não funcionará neste caso.
— Renan

Eu tenho memtester. Quaisquer outros testes / abordagens que eu possa usar?
— Ankur Agarwal

11
@abc o que mais você quer? Eu acho que você tem outros problemas se esse método não produzir o resultado desejado. mtestbasicamente faz o mesmo que o memtest86 +. Você basicamente tem opções diferentes, execute o teste de memória do seu sistema operacional como linux (isso seria, memtestermas você pode ter problemas para testar toda a região física). Você também pode usar alguns mini system (uboot) para testar sua memória ( mtest)
— Ulrich Dangel

O processador da Marvell? Eu tenho a mesma pergunta em um processador de rede maravilhoso, que é exatamente a mesma configuração (ARM / 256MB RAM / Linux 2.6.31) que a sua.
— Tim Wu

Aqui está uma pergunta semelhante ao estouro de pilha . Todos os testes aqui podem encontrar alguns problemas. Eles não encontrarão todos os problemas e, de fato, isso é muito difícil de fazer. Somente ferramentas e modelagem de simulação de placa muito boas podem verificar isso; não software. Se isso for feito, o único problema será um chip DDR (ou possivelmente um controlador host) e o memtester e o mtest poderão encontrá-los. No entanto, se eles dizem que está tudo bem; 100% não descartam um problema de DDR.
— ruído artless

Respostas:


21

A solução geral para testar a memória é escrever um padrão específico como 0xFFFFFFFFa sua memória, ler depois e comparar o resultado. Você pode e deve, é claro, alterar o padrão para descobrir problemas. Algumas soluções, como memtest86+também geram padrões aleatórios e alteram a direção que eles usam para gravar na memória. Para informações mais detalhadas sobre os algoritmos usados ​​no memtest86, consulte a página técnica . Todas as soluções fornecidas neste post estão usando basicamente a mesma ideia subjacente.

Se você deseja executar seu teste no Linux (você mencionou o Linux em seu post), dê uma olhada no memtester e no pacote memtest, que ambos devem funcionar com arm. Para começar, você deve usar o memtester , pois basicamente faz exatamente o que deseja.

Testar sua memória no Linux tem algumas desvantagens, como você realmente não pode testar toda a sua memória física, pois o kernel também precisa de memória. Para testar a memória com o uboot (é muito menor que o kernel do linux), dê uma olhada no comando mtest integrado . Permite especificar o intervalo de endereços, padrão e iteração. Com o mtest, você poderá realizar testes bastante extensos sem depender de um sistema operacional. Você só precisa verificar se está usando intervalos de memória válidos, caso contrário, pode ser que você substitua a ubootregião da memória.

Se o teste fornecido pelo mtest não for suficiente, é claro que você pode apenas estender o uboot e integrar recursos adicionais de teste de memória no uboot.


OK, eu tenho memtester. Algum outro teste que eu posso fazer?
— Ankur Agarwal

11
Alguma outra abordagem de teste que eu poderia tentar? Estou pensando em testar a RAM do uboot.
— Ankur Agarwal

@abc ok i acrescentou uma nota sobre uboots Mtest comando
— Ulrich Dangel

11
Comecei a usar comandos Uboot e agora estou vendo que comando display memória uboot fica preso no meiobist > md.w 0x00000023 10 00000023:
— Ankur Agarwal

O u-boot tem suporte para dois mtest diferentes. Compile com CONFIG_SYS_ALT_MEMTEST para um teste de memória mais extenso que o padrão.
— m__
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.