Hi,各位工程师们,大家好!
我们在一个项目中用了AM3354的芯片,并且用官方的sdk移植后,一直可以正常运行,但最近我们新投了一批板子,出现在SPL -> gpmc_init -> writel(0x00000008,&gpmc_cfg->sysconfig)处,cpu宕机,但该语句仅仅只是初始化GPMC,不知道怎么会死机,花了很长时间,都无法找到原因。
希望能得到一些建议,谢谢!
Shine:
请问如果不初始化gpmc会死机吗?新的板子和旧版有区别吗?
allan huang:
回复 Shine:
就是因为新版和旧版没有任何区别,如将writel(0x00000008, &gpmc_cfg->sysconfig) 改为 writel(0x00000008, 0x50000010),就可以执行,但我将&gpmc_cfg->sysconfig的值打印出来就是 0x50000010,SPL工作内部RAM,而且这个是GPMC控制器的地址,因此一直无法判断问题出在什么地方,比如是DDR还是其它什么原因导致宕机,
希望能够得到帮助,谢谢
Denny%20Yang99373:
回复 allan huang:
汇编代码一行一行追看一下
可能还是代码写的有点问题。
allan huang:
回复 Denny%20Yang99373:
SPL基于官方的代码,没有做大的修改,而且在以前的同样的板子上可以正常运行,一直很稳定。
目前只有先从DDR等硬件入手,查找一下硬件因素,主要有一点没有想明白,在TI E2E上看到有DDR原因导致这个问题,但初始化GPMC只是一个寄存器读写而已,在原理上讲不通啊,希望各位可以分析一下,
谢谢!
Jian Zhou:
回复 allan huang:
GPMC上有连接什么外设么?
allan huang:
回复 Jian Zhou:
GPMC上连接了NANDFLASH,但这还是GPMC初始化阶段,这样应该不会导致宕机吧?