芯片:AM3354ZCZD72
硬件环境:
硬件是自己设计的,最小系统部分地参考了评估板的原理图。内存用的DDR2。
由于不需要使用RTC和电源管理功能,所以电源部分设计的比较简单,使用一个TPS650250产生1.8V、1.1V、1.26V电压,又用一个DCDC产生3.3V电压。
经过测量,上电时序满足要求(参照文档sprs717e,Figure4-5)。
经过测量,24M晶振已经起振。32.768K晶振未起振(我们不需要RTC,但不确定32K晶振是否还有其它用途,所以就先焊上了)。
软件环境:
编译器:ti-sdk-am335x-evm-05.05.00.00
源代码:LINUXEZSDK-AM335X
没有使用CCS,板上也没有留JTAG接口
目前尝试过以下两个U-BOOT版本:
u-boot-2011.09-psp04.06.00.08
u-boot-2012.10-psp05.06.00.00
问题现象:
SYSBOOT[4:0] 设置为00001(00010、00011也试过,效果相同),整个SYSBOOT的值为:0x4041
上电后,串口一直打印CCCCCC,用超级终端通过XMODEM协议下载u-boot-spl.bin文件,可以下载,但是下载完成后就没有任何动静了,串口不再打印CCC,也没有打印其它任何信息。一开始担心超级终端有问题,于是又试了Tera Term、串口调试助手等工具,结果都一样。
仔细查看过SPL的代码,因为我们没有使用PMIC,所以把代码中I2C相关的部分都去掉了,但还是没有效果。
在s_init()函数中初始化PLL的后面加了一些代码,操作GPIO点灯,但是灯并没有点亮。
现在不知道CPU到底执行到哪里了,有没有跳转到SPL。
是由于什么原因导致ROM Code认为加载SPL没有成功么?但是不太像,因为加载后不再打印CCC了,貌似是跳转了。但如果跳转到SPL了,为什么没反应呢?至少串口要打印个标题,或者能点灯吧。是在初始化串口之前就跑飞了?但是那之前都是在初始化CPU的内部状态,跟外围电路没什么关系,而且那些代码也没修改过。
现在这种情况下,接下来该怎么调呢?