大家好,
我们参照了APPro DM8127的开发板设计,软件版本为DM8127_IPNC_3.80.00。我们使用S25FL256S的spi flash,通过串口启动后把u-boot的第一阶段和第二阶段下载到spi flash中,数据读写正常。验证方法为:
1,从串口把下载第一阶段到DDR中的0x81000000的位置,使用命令把第一阶段下载到spi flash中,
sf probe 0:0
sf erase 0x0 0x20000
sf write 0x81000000 0x0 0x20000
2,从串口把下载第二阶段到DDR中的0x81000000的位置,使用命令把第二阶段下载到spi flash中,
sf probe 0:0
sf erase 0x20000 0x60000
sf write 0x81000000 0x20000 0x40000
3,清除DDR,mw.b 0x81000000 0xFF 0x40000,然后读取spi flash中的数据到ddr中,
sf probe 0:0
sf read 0x81000000 0x20000 0x40000
然后通过md查看ddr中的数据,与原始数据相同,在运行go 0x81000000,这样u-boot能在ddr中运行,证明了数据写到spi falsh中的准确性。
我的问题是:
但是设置为spi boot后,不能从spi启动。使用示波器测量到,上电时在cs上有一段被拉低,CLK上有一段时钟,MOSI上有一段数据。
我们的spi boot设置为:BTMODE[4:0]= 10110,这个模式第一启动为spi,第二为MMC(我们没有使用),第三为uart。但我断开spi时,上电进到uart模式,有“cccccccc”打印。接上spi时,串口什么都没有打印,说明已经进到了spi模式,但是为什么不能启动呢?是什么原因导致?