我们之前参照 TI C6748的核心板做了一套板子,nand flash、DDR和 TI 核心板上的是一样的,nand flash 是16位的,在 TI 官网上下载了
OMAP-L138_FlashAndBootUtils_2_36 ,把其中 nandwriter.c 中的 nandwidth 改成了16位的,也编译通过了,生成了 nandwriter.out 文件,可以通过它把 LED 程序烧写到 nand flash 里了,显示的是 nand boot prepration successful ! 但是去掉仿真器,把拨码开关拨到 nand flash 的启动开关01110,重新上电后LED灯没有闪烁,说明程序没有运行起来,这是什么原因造成的呢?是GEL文件和AISGEN配置的不一致吗,我把两个配置的相同了,初始化的时钟都一致了,烧写进去也是启动不起来,或者可能是cmd文件的问题吗,您能够给出解决方法吗 十分感谢!!
Nancy Wang:
bootcfg读出来的值是多少?
user6345424:
回复 Nancy Wang:
bootCFG 中的 BOOTMODE 为 10000 如下图所示:
Nancy Wang:
回复 user6345424:
程序是烧写至block1的吗?
DDR的配置部分有没有确认过?cmd文件中地址是分配在DDR中的吗?如果是,可否修改指片上内存看看有没有问题?
看一下Question: Why does my program work in CCS but does not boot from flash?
www.ti.com/…/spracm8.pdf
另外也可以用仿真器跟一下,看看PC指针指向哪里?有没有进入用户代码。
processors.wiki.ti.com/…/Debugging_Boot_Issues
user6345424:
回复 Nancy Wang:
您好,
十分感谢您细致的回复!
我们之前程序是烧写到 block 0 中了,把 nandwriter工程中的 nandwriter.c 文件 line 279 的 block 0 改为 block 1 后,重新编译生成新的 nandwriter.out 后,烧写程序到nand flash后就可以启动了,我想问一下,为什么要把程序烧写到 block 1中,而烧写到 block 0 就无法启动呢?
现在我遇到了新的问题,我们参照 TI C6748核心板做了十几套板子,其他板子都可以正常烧写并启动,有一块板子连debug都报错,错误如下:
这有可能是nand flash烧掉了吗?cmd文件中的地址分配在 DDR 中也报错,分配在 SHRAM 中也报错,这是什么原因呢?
Nancy Wang:
回复 user6345424:
请看截图,你的BOOT[6:5]为00
如果有新的问题,建议另起新帖。