ti的专家们好,我们用dm3xx_sd_boot_6工具用sd卡批量烧写dm368,我发现flash在内核所在区域有坏块时,启动后停在starting kernel….文件系统部分有坏块时烧写虽然会报错:Data verification failed! Block: 0x000000CC page: 0x00000000. First Failing Byte: 0x00000000
((Uint32 *)src)[i]=0xFD172C00
((Uint32 *)dest)[i]=0x00000000
src=0x82E80000
dest=0x80000840
Write verify failed!
block_idx=0x000000CC
page_idx=0x00000000
但是系统还是能起来,不影响使用。我跟踪源代码,发现在nand write 的时候不管是否坏块都会写入,只是会验证page写入是否成功,验证失败也会继续向后写入。
while (len > 0) {
if (NAND_writePage(nand, block_idx, page_idx, src_ptr) != E_PASS) {
print("Write failed!\n");
return -1;
}
UTIL_waitLoop(200);
if (NAND_verifyPage(nand, block_idx, page_idx, src_ptr, hNandReadBuf) != E_PASS) {
print(RED "Write verify failed!\n" NOCOLOR);
trvx(block_idx);
trvx(page_idx);
//return -1;
} else {
//print(".");
}
src_ptr += nand->dataBytesPerPage;
pages++;
page_idx++;
len -= nand->dataBytesPerPage;
if (page_idx == nand->pagesPerBlock) {
block_idx++;
page_idx = 0;
print("block=");
print_hex(block_idx);
print(" ");
print("\r");
}
}
请问这个问题该如何解决?
Eason Wang:
http://www.deyisupport.com/question_answer/dsp_arm/davinci_digital_media_processors/f/39/t/61619.aspx
你指的是6.1的烧写工具吗