硬件:C6678,自己做的板子,nand flash型号与开发板一致(nand512)
仿真器:seed-560
编译环境:cc5.4.0,只连接core0
测试例程:在论坛下的UART例程。在no boot模式下测试过,运行后会向上位机发送一串字符
主要步骤参考mcsdk下的nand write工具的txt说明
1、将out文件直接改后缀名,得到bin文件。大小与out文件一样,约450KB
2、将板卡设置为no boot模式,打开ccs,将mcsdk下的nand write_6678l.out下载进去
3、打开view memory,在地址0x0c000000,load memory,将bin文件load进去(32bit格式,不勾选swap)
4、按F8运行,开始时会陷入死循环。后来发现是nandwrite.c中对sgmii进行了初始化,并会等待底层phy的建立。自己板子上没有以太网,所以将p_device->phy置0,。修改后,按txt文档说明,重新生成nand write_6678l.out文件,下载运行,提示烧写成功。
5、将子boot模式设置为EMIF模式,断开仿真器,重新上电。此时串口没有打印。
6、将仿真器连上后,无法单步汇编运行,提示0x20b……没有源文件,具体地址晚上补充。我看了一下,这是boot rom的地址。提示地址对应的汇编指令是idle
我看论坛上好多网友提到用idl,以二次加载用。直接加载是不是也可以?板子上也没有做eeprom。不知道哪里出错了,晚上会进一步完善帖子
我看boot rom的大小是128KB,如果bin文件太大,比如我这次就是450KB,这样会不会有问题?
也不太理解txt文档里的srart_addr,我改了一下,没什么变化