多年前在黄鱼处买了几个机顶盒给看TV用.
由于是运营商的,需要和谐才能用,于是自己从emmc 读出重新打包了固件.
才用一段时间就发现有莫名其妙的故障. 像黑屏,播放卡顿,重启之类.
起始怀疑是固件里有桩,不想折腾想想就凑和用吧.
后来换了一台发现却不会.
前几天想到有个开源工具 memtester , 于是下载了 安卓ndk 编译了下.
源码文件不多,用windows + msys 试了下,折腾几小时竟然成功了.
上传到 机顶盒,跑了下, 果然提示内存有问题.
那么问题来了,如何根据 memtester 出错信息判断是哪片 DRAM 问题.
刚好 uboot 也可以把这个工具编译进去. 跑起来同样报错.
```
> memtester 0x7c500000 0x4000000
...
Random Value : FAILURE: 0x67d13d67 != 0x67d03d67 at offset 0x01b00918.
FAILURE: 0xdffd5b64 != 0xdffc5b64 at offset 0x01b10918.
FAILURE: 0xeaffb3b3 != 0xeafeb3b3 at offset 0x01b20918.
FAILURE: 0xffebb329 != 0xffeab329 at offset 0x01b28918.
FAILURE: 0xafff8ce6 != 0xaffe8ce6 at offset 0x01b30918.
FAILURE: 0x7c37e409 != 0x7c36e409 at offset 0x01b38918.
FAILURE: 0x2cddc50a != 0x2cdcc50a at offset 0x01b40918.
FAILURE: 0xfb6f5a14 != 0xfb6e5a14 at offset 0x01b48918.
...
```
出错的是 BIT__16, 且地址都是 0918/8918.
离线
不稳定十有八九是DRAM损坏,楼主你真有精力去测试,直接更换颗粒即可,这颗粒容易更换
是的.
根据测试的报错信息,大概有64MB不到的连续地址会出现数据错误.
有理由相信这是某片芯片的一个 bank 部分坏导致的.
由于手上有好几台有此问题的机器,不想每一台地更换所有颗粒啊.
离线