У моего роутера проблемы с чтением данных из памяти. Подозреваю что глючит RAM, но исходя из результатов тестов есть сомнения.
Смущает что данные считываются не правильно не только из RAM, но и из флеш-памяти. Вот пример подсчета CRC блока данных флеш-памяти:
Код
ar7240> crc 9f020000 10000
CRC32 for 9f020000 ... 9f02ffff ==> 3c2a3c7e
ar7240> crc 9f020000 10000
CRC32 for 9f020000 ... 9f02ffff ==> 1ecb034b
ar7240> crc 9f020000 10000
CRC32 for 9f020000 ... 9f02ffff ==> 66933fb2
ar7240> crc 9f020000 10000
CRC32 for 9f020000 ... 9f02ffff ==> 3c2a3c7e
Как видно, при каждом подсчете CRC меняется с определенной цикличностью.
Я определил адреса проблемных ячеек памяти, здесь наблюдается определенная закономерность:
Всегда неправильно считывается только 5-й бит:
Код
должно быть 91 10010001
считывается 81 10000001
должно быть 5f 01011111
считывается 4f 01001111
Адреса проблемных ячеек RAM:
Код
0x800036a4
0x800036e4
0x800056a4
0x800056e4
0x800076a4
0x800076e4
0x800096a4
0x800096e4
0x8000b6a4
0x8000b6e4
0x8000d6a4
0x8000d6e4
0x8000f6a4
0x8000f6e4
Но есть один нюанс, проблемные ячейки RAM всегда считываются не правильно, в то время как при чтении из флеш-памяти ошибки возникают только при чтении больших блоков данных.
В чем может быть проблема, в глючной RAM, или в чем-то другом?