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.

6657 NAND BOOT

我想做一个从NAND自启动,目前的BOOTMODE[12:0]是011 00000 01 011

(1)用hex6x生成.hex文件

.map文件数据为:

********************************************************************************
TMS320C6x Hex Converter v7.4.4
********************************************************************************

INPUT FILE NAME: <LED_test.out>
OUTPUT FORMAT: ASCII-Hex

PHYSICAL MEMORY PARAMETERS
Default data width : 8
Default memory width : 8
Default output width : 8

BOOT LOADER PARAMETERS
Table Address: 0x70000000, PAGE 0
Entry Point : 0x801860


OUTPUT TRANSLATION MAP
--------------------------------------------------------------------------------
70000000..700011ff Page=0 Memory Width=8 ROM Width=8 "FLASH"
--------------------------------------------------------------------------------
OUTPUT FILES: LED_test.hex [b0..b7]

CONTENTS: 70000000..70000a4b BOOT TABLE
.cinit : btad=70000000 dest=00801a10 size=00000034
.text : btad=70000040 dest=00801000 size=00000a00
70000a4c..700011ff FILL = 00000000

(2)将.hex转化为.bin文件,转化后的文件数据为:

(3)将.bin文件烧写入NAND中,烧写程序为:

while(1)
{
i = nandFlashBlockErase(nand6657,j);
if(i != 1)
printf("erase %d error\n",j);

while(1)
{
for(i = 0;i < 2048;i++)
buffer[i] = buff[i + k*2048];

i = writeNandPage(nand6657,Init_nand6657,buffer);
if(i != 1)
printf("write %d error\n",j);

i = readNandPage(nand6657,Init_nand6657,bufferx);
if(i != 1)
printf("read %d error\n",j);

Init_nand6657.uiPageAddr++;
k++;

if(i + k*2048 > debu)//debu:文件长度
break;
if(Init_nand6657.uiPageAddr > 63)
break;
}
if(i + k*2048 > debu)
break;
Init_nand6657.uiPageAddr = 0;
Init_nand6657.uiBlockAddr++;
j++;
}

读回的数据和写入NAND的是一样的

这是一个点灯的程序,需要配合FPGA程序才能点灯,我给DSP上电后,用JTAG下载FPGA程序,之后毫无反应

发现BOOTCOMPLETE是低的(顺便问一下这个管脚是在第一步完成后就拉高还是整个BOOT process完成后拉高呢)

请问这是什么问题呢