hi ti,
在调试自己制作的Am3359的板子中遇到这样的问题,请帮忙看一下。
BOOT选项 1100 0000 0001 0111;MMC0-SPI0-UART0-USB0,26MHz 晶振。
系统上电之后,UART0 一直打“C",间隔1S; MMC0 CLK/CMD/D0,有波形输出,也是周期性一小段波形。
MMC0和UART0 都不能启动。我们尝试用在beaglebone 上可以启动的程序,也不能启动X-loader。
用Jtag 看trace data :0x4030CE40 000D07F 000010000 00011002. 从trace data 看,是CPU检查完了所有启动设备,都启动失败。
但是,按照TRM 26.1.5,CPU会进入 dead loop,等待看门狗复位。
我通过串口Xmodem 加载SPL,可以看到进度条和加载完成。 完成后,UART0 还是一直打”C"。通过Jtag 去读,应该下载到memory 的SPL 却没有保存在里面。
我们尝试用Jtag 读写 memory,发现Jtag 启动,此时CPU处于pause 状态,可以读memory。如果此时开始全速执行(CCS 运行),再次停止。memory 变得不可读写。
所以,有几个地方不清楚:
1 目前不清楚ROM程序执行在哪一部分,CPU处于什么状态
2 如果因为外部原因,导致启动设备 检查均出错,CPU为什么不会进入预设的 dead loop。
3 SPL 不能保存和 memory 不能读是否相关,是什么原因引起的。
CPU ROM程序执行的问题,请帮忙分析一下。谢谢!
看门狗寄存器数据:
CortxA8: GEL Output: WDT_WIDR value is : @0x502A0501
CortxA8: GEL Output: WDT_WDSC value is : @0x00000010
CortxA8: GEL Output: WDT_WDST value is : @0x00000001
CortxA8: GEL Output: WDT_WISR value is : @0x00000000
CortxA8: GEL Output: WDT_WIER value is : @0x00000000
CortxA8: GEL Output: WDT_WCLR value is : @0x00000020
CortxA8: GEL Output: WDT_WCRR value is : @0xFF6A1085
CortxA8: GEL Output: WDT_WLDR value is : @0xFF6A0001
CortxA8: GEL Output: WDT_WTGR value is : @0xFF6A0001
CortxA8: GEL Output: WDT_WWPS value is : @0x00000000
CortxA8: GEL Output: WDT_WDLY value is : @0x00000000
CortxA8: GEL Output: WDT_WSPR value is : @0x00005555
CortxA8: GEL Output: WDT_WIRQSTATRAW value is : @0x00000000
CortxA8: GEL Output: WDT_WIRQSTAT value is : @0x00000000
CortxA8: GEL Output: WDT_WIRQENSET value is : @0x00000000
CortxA8: GEL Output: WDT_WIRQENCLR value is : @0x00000000
Yaoming Qin:
检查下你的sysboot,会不会是设反了?另外,检查了SPL,关于ddr的设置是不是对的,如果你用的ddr和开发板上的不一样,需要修改spl