sjf2440下载nboot.bin问题?

jiangshuai2003   2009-12-15 10:18 楼主
请教下各位大侠,小弟现在用sjf2440下载nboot.bin到nand的bank0区后,串口没有任何信息?但是我在ads调试时时有串口信息的?我用点灯法发现 我的nboot根本没下载进去??不知道是怎么回事??但是我的sjf2440是已经发现nand的ID了  ID=0xec76??我想请教下 为什么我的nboot.bin下载没下载进去呢??是不是我的硬件哪里有问题??

回复评论 (5)

详细贴出你的步骤
点赞  2009-12-15 10:20
引用: 引用 2 楼 yashi 的回复:
把FLASH读出来,看指定的区域是否有数据写进去。

请教下yashi大侠 看指定区域是哪里??下面我把我读取nand的程序和调试信息给大家看看??

程序:
FlashID = NF_ReadID();       
if (!FlashID)   
        { 
                Uart_SendString("This NandFlash Type is not supported!!\r\n Booting is failure \r\n");      
                while(1)      
                {      
                        ;         
                }      
        }  ?
   
    nBadBlocks = 0;
    for (nPage = NAND_COPY_PAGE_OFFSET ; nPage < (LOAD_SIZE_PAGES + NAND_COPY_PAGE_OFFSET) ; nPage++)
    {
        nBlock = ((nPage / NAND_PAGES_PER_BLOCK) + nBadBlocks);

               Uart_SendString("nBlock:");
                Uart_SendDWORD((int)nBlock, TRUE);      
                          Uart_SendString("nPage:");      
                Uart_SendDWORD((int)nPage, TRUE);      
                          Uart_SendString("pCopyPtr:"); ? ???
                Uart_SendDWORD((int)pCopyPtr, TRUE); ??
??
      
        if (!NF_ReadPage(nBlock, (nPage % NAND_PAGES_PER_BLOCK), pCopyPtr))
        {
         
            if ((nPage % NAND_PAGES_PER_BLOCK) != 0)
            {
                rGPFDAT = (rGPFDAT & 0xf) | ((0x0101 & 0xf) << 4);
                // Spin forever...
                while(1)
                {
                    ;
                }
            }

            // ECC error on a block boundary is (likely) a bad block - retry the page 0 read on the next block.
            nBadBlocks++;
            nPage--;
            continue;
        }
        
       Uart_SendString("pCopyPtr = ");
                Uart_SendByte((int) pCopyPtr); - B 9
            Uart_SendString("*"); 1

        pCopyPtr += NAND_PAGE_SIZE_BYTES;
    }
调试信息的一部分:
nBlock:0x0000000d
nPage:0x000001bd
pCopyPtr:0x00007a00
pCopyPtr = *nBlock:0x0000000d
nPage:0x000001be
pCopyPtr:0x00007c00
pCopyPtr = *nBlock:0x0000000d
nPage:0x000001bf
pCopyPtr:0x00007e00
pCopyPtr = *nBlock:0x0000000e
nPage:0x000001c0
pCopyPtr:0x00008000
pCopyPtr = *nBlock:0x0000000e
nPage:0x000001c1
pCopyPtr:0x00008200
pCopyPtr = *nBlock:0x0000000e
nPage:0x000001c2
pCopyPtr:0x00008400
pCopyPtr = *nBlock:0x0000000e
nPage:0x000001c3
pCopyPtr:0x00008600
pCopyPtr = *nBlock:0x0000000e
nPage:0x000001c4
pCopyPtr:0x00008800

点赞  2009-12-15 10:44
大伙帮我看看这个问题呀??没人知道吗?搞到现在还是不行?我把这个nboot.bin下载到开发板是有串口信息的?但是我读取nand似乎也没有问题呀?
点赞  2009-12-15 13:15
有几个方法你可以测试一下:
写一个可以正常使用的bios进去,看是否可以正常运行 ,测试时你自己。bin的 问题还是烧写的问题
点赞  2009-12-15 13:39
我的nboot.bin应该没有问题,因为我把他烧的开发板中是可以有串口信息的。而且小灯也亮了!
但是下载到我自己的板子就不行了!更郁闷的是我在ads调试读取nand的ID是能够读出来的?不知道是nand有问题还是烧写有问题??还请大侠们帮忙呀?
点赞  2009-12-15 14:16
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复