This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好,
最近调试C6678 的EMIF NAND BOOT、NOR BOOT时遇到了一些问题,用的是自己开发的板子,芯片C6678是PG2.0的,
1. EEPROM引导的emif nand flash:
使用c6678 PG1.0 做I2C EEPROM引导的emif nand flash 做boot可以成功启动板卡,而同样情况用我的板卡6678的2.0芯片不能boot成功,是否可以说明2.0是不能支持EEPROM引导启动,errate上说明2.0 BOOT 不需要PLL fix,完全是按照手册做的,请问具体问题在哪里?
2. EMIF NOR FLASH方式:
编写待烧写程序,程序中专门写了一段.bootload段,分配在L2的起始地址0x1080 0000,此段代码的作用就是将Nor Flash(N25Q128A11)中烧写的应用代码按段读到L2中,最后再跳转到入口地址处.
将程序烧写到Nor Flash中后,BOOTMODE[12:0]=0b 00 0000 0100 000.
用emif nor flash 做直接启动,烧写程序到nor flash,程序0x0开始1k boot.asm引导程序,程序已经在6678 1.0上boot成功,但是在我的板卡上仍不能boot,上电后,查看PC指针,程序始终停留在BOOT ROM 里0x20B0 1146位置,并没有实现引导程序到L2的搬移,说明bootrom没有正常运行,为什么boot rom的运行会停止?是需要配置参数吗?
3. 我看到有的说boot需要对bootrom配置boot parameter table,在程序起始处,如果需要boot parameter table ,那我的参数表的格式是什么样的呢?能不能给我发一份?
请问c6678 2.0的emif nand\nor boot具体怎么配置?是否需要配置parameter table?
6678 2.0的boot rom 和1.0的bootrom有什么区别?怎么boot设置如此不同?
您好:
我的板子上也是emif接nor flash加载,BOOTMODE[12:0]=0b 010 0100 000 000,上电后,程序始终停留在BOOT ROM 里0x20B0 1154位置,不知和boot parameter table的设置有无关系,手册里emif boot 没有boot parameter table的详细资料,另外.out转成.dat的打包工具与spi的有什么不同,还望专家指教。
谢谢
2013版的datasheet中有emif boot 的boot parameter table,可是还是boot不起来,怀疑是.out转成.dat的打包问题,请问专家有没有EMIFBootutility的工具。
3 Reserved
5-4 Sub-mode [01]代表EMIF16 Boot
6 Reserved
7 Wait Enabled
9-8 Reserved
请按照以上方式设置硬件配置字,另外,在上电启动完之后,请连接仿真器,查看BOOT COMPLETE寄存器的值是否为1,如果为1的话,代表RBL已经执行完成了,或者直接查看SYSCLKOUT的频率是否为核时钟的6分频。
非常感谢xiao peng ma,我们的板子已经实现emif单核boot,只是程序代码量较小,不知程序代码量较大时有什么方法,试了spibootutility工具,没有成功,还望大神指导。
你好,我就是用的TI的官方文件烧写的。
rmd文件内容如下:
DSP6678_demo.out
-a -boot
-e _c_int00
-order L -map
core10.map
ROMS
{
ROM1: org = 0x70000000, length = 0x100000, memwidth = 16, romwidth = 16 files = { DSP6678_demo.btbl }
}
emifboot_multicore.dat文件如下:
hex6x DSP6678_demo.rmd pause
b2ccs DSP6678_demo.btbl DSP6678_demo.dat pause
ccs2bin DSP6678_demo.dat DSP6678_demo.bin pause
生成的.mp文件如下:
******************************************************************************** TMS320C6x Hex Converter v7.4.2 ********************************************************************************
INPUT FILE NAME: <DSP6678_demo.out>
OUTPUT FORMAT: ASCII-Hex
PHYSICAL MEMORY PARAMETERS
Default data width : 8
Default memory width : 32
Default output width : 8
BOOT LOADER PARAMETERS
Table Address: 0x70000000, PAGE 0 Entry Point : 0x700144a0 (_c_int00)
OUTPUT TRANSLATION MAP --------------------------------------------------------------------------------
70000000..700fffff Page=0 Memory Width=16 ROM Width=16 "ROM1"
-------------------------------------------------------------------------------- OUTPUT FILES: DSP6678_demo.btbl [b0..b15]
CONTENTS: 70000000..70016287 BOOT TABLE
.text : btad=70000000 dest=70000000 size=00014ec0
.const : btad=70014ecc dest=70018230 size=00000ee2
.switch : btad=70015db8 dest=7001a05c size=00000144
.cinit : btad=70015f04 dest=7001a600 size=00000170
.csl_vect : btad=7001607c dest=7001a400 size=00000200
请帮忙看看是什么问题?另外我编译的时候使用了一个cmd文件。文件有.out转换成.tbtl时候又使用了一个rmd文件。这两个文件要使用同一个吗?
请问 keke colin ,能否将你编写的.bootload段代码发我参考下。我是初学者,对这个理解还不是很深,然后现在有需要实现将NANDFLASH中的应用代码搬移到DDR 中以实现快速读取,有点无从下手~
请问您EMIF nand flash boot是成功了么?可以麻烦您告知.bootload段代码么?
我刚学习6678,有许多都不了解,又需要实现将nandflash中的代码搬移到DDR RAM中,所以想参考下您的代码?
谢谢~