我想做一个从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完成后拉高呢)
请问这是什么问题呢