调试核心板时,碰到了点问题,DDR3内存始终不稳定,经过仔细调试,发现只要打开LCD显示,DDR3的数据就不定期的会有错误。为此单独在boot下做过内存测试,
就是每个地址都往里写0,0xffffffff,再写0x55555555 0xaaaaaaaa,然后写一个顺序号,然后下一个地址,直到内存写完,最后判断整个内存里存的数据是否是顺序号(0,1,2,3,4,5……),通过则数据全部清零,从头开始再来一次。
整个测试也发现,打开LCD后,就会不定期不定位置出现内存读写错误,导致内核在运行程序时无规律的死机或者崩溃,找到一篇TI的FAE的文档,大致也是说DDR3有一片KEEPOUT区不能有视频线穿过。
接着做测试,在内核里把LCD还是打开,但是关掉几根离DDR3很近的线,只开几根,虽然现实变花颜色也不对,但是能看到程序一直没有死,可以稳定运行,没这样处理前,多台机器一起开机,总有1-2台在2天左右会死机,关掉部分LCD信号线后,可以运行7天也不死,而且是所有几台测试机都不会死机。
得出的结论是LCD线对DDR3的运行有影响。
解决办法,核心板再增加一层信号层,把穿过DDR3区域的线,比如LCD信号线,SD卡的信号线都和DDR3的线分层走,彻底解决这个问题。