把调试串口修改为STUART能够输出打印信息,但是不能接受输入,屏蔽掉 xlli_mem_Tmax这个函数就可以接收输入了,但是没有搞懂有什么关系?
刚以为解决问题后第二天又出现新情况了,BOOT有时候可以下载系统正常启动,但有时候又不行,BOOT和内核都是同一个,没有进行任何修改,一点重复性都没有,根本不知道为什么,导致无法正常进行驱动的调试。不知道到底是硬件问题还是软件问题了。
两个方面都分析过了,都没有任何结论:怀疑硬件吧,我用ADS写的程序能够正常运行,标准串口也没有任何问题(把程序拷入SDRAM运行,防止SDRAM有问题),重复很多次,从来没有出问题。
怀疑软件吧,那为什么同样的BOOTLOADER和内核,有时候可以启动,有时候又不能启动呢,按理说代码应该是完全一样的,又只有怀疑硬件问题。
分析了一下两版硬件的区别如下:第一次用的是工业级416MHzCPU,这一次用的是520MHz商业级CPU;第一次nCS1挂的以太网,其他为空,这次nCS1挂了CPLD,nCS2挂了以太网;上一次是10层板,这一次是8层板。两次板子的NOR FLASH和SDRAM接法和容量完全一致,实在是找不到任何相关的区别了。
现在怀疑问题有两个:1.CPU不同,稳定性不一致。2.SDRAM的信号不稳定,两次的PCB连线和层数有一定区别。(但是从新装一个工业级CPU比较麻烦,不到万不得已还不想尝试)
不知道有哪位高手或者大侠遇到过类似的问题,还请赐教!不胜感激
联系方式:jiangbin@guotengdz.com