1.仿真时读取BOOTCFG寄存器,值为0000 01110b,选择是nand8启动方式;
2.nand芯片型号为s34ml01g,ID为1F,结构为1024*64*(2048+64),查过 bootloader手册,在支持范围内;
3.编写了一个LED闪烁的程序,没有使用DDR,在cmd文件中将所有段分配到了L2;
4.将程序用AISgen_d800k008.exe转换成了ais文件,烧写到了nand的block1,并将数据读回来对比,没有问题;
5.脱机启动失败后,在LED闪烁工程中只load symbol,发现程序的停留在0x00712148;
6.读取了0x11f00700地址处的启动错误代码,错误码为5,Peripheral Open Failed,同样配置成nor flash启动时,将程序擦除,错误码为9,Invalid AIS keyword,所以应该是nand芯片没有识别出来;
电路如下
user4256844:
还有,用自己的代码解析AIS,并跳转执行,是可以成功执行的。
Shine:
回复 user4256844:
c6748 RBL不支持ID为1F的nand flash
user4256844:
回复 Shine:
打错了是0xF1,发送NAND读取ID命令,读回来的4字节依次是 01 F1 80 1D
Tony Tang:
xiaolin chen1将程序用AISgen_d800k008.exe转换成了ais文件,烧写到了nand的block1,并将数据读回来对比,没有问题
请问烧写工具用的是哪个?
user4256844:
回复 Tony Tang:
用starterware里的nand驱动,转换时将ais转换成.h格式的,仿真时将ais.h写入block1
请问第6点所述的报错信息是否理解正确,我现在想知道是不是nand芯片没识别到,还是生成ais文件时的配置有问题
Tony Tang:
回复 user4256844:
你用这个工具烧写.ais binary文件试试,我不知道你前面的出错信息判读依据是出处是哪里的。
user4256844:
回复 Tony Tang:
使用 sfh_OMAP-L138.exe -flash_noubl -targetType C6748 NAND -v -p COM1 gpio.ais
之后板子选择UART1启动,生启,可以走完Boot completed successfully
之后卡在Waiting for SFT on the OMAP-L138…
这是板子上的烧写程序没有跑起来么?6748使用哪个UART连接是否有关系?
Tony Tang:
回复 user4256844:
这通常是因为DDR配置不对,如果是你自己的板子,要根据板子的DDR重新配置时序参数再编译一下这个工具。