nandflash驱动读不出来

[复制链接]
2564|5
 楼主| f22jay 发表于 2012-9-14 10:49 | 显示全部楼层 |阅读模式
自己仿照uboot的nand驱动,就是那个nand_cp.c里,写了个小的读nand程序,为什么总是读出来的是0x30303030,nandflash是三星K9F2G08U0A。求大侠指导!!!static int nandll_read_page (unsigned char *buf, U32 addr, int large_block)
{
    int i;

int page_size = 512;
    char stat;

if (large_block)

page_size = 2048;

        NAND_ENABLE_CE();
        NF_CLEAR_RB();
        NFCMD_REG = NAND_CMD_READ0;

        /* Write Address */
        NFADDR_REG = 0;


if (large_block)

        NFADDR_REG = 0;


NFADDR_REG = (addr) & 0xff;

NFADDR_REG = (addr >> 8) & 0xff;

NFADDR_REG = (addr >> 16) & 0xff;


if (large_block)

NFCMD_REG = NAND_CMD_READSTART;

        NF_TRANSRnB();

printk("wait pass\n");


NFCMD_REG=NAND_CMD_STATUS;
do
{

NFCMD_REG=NAND_CMD_STATUS;

stat=NFDATA8_REG;

}while(!(stat&=(1<<6)));

//NF_DETECT_RB();

/* for compatibility(2460). u32 cannot be used. by scsuh */

for(i=0; i < page_size; i++) {
                *buf++ = NFDATA8_REG;
        }
  NFCMD_REG=NAND_CMD_RESET;
        NAND_DISABLE_CE();

        return 0;
}
阿南 发表于 2012-9-18 09:33 | 显示全部楼层
先用原来的驱动测试一下是否讯写正确,再用你这段程序对着看是哪里出了问题
jack1991 发表于 2013-1-7 12:46 | 显示全部楼层
Fisrt part :
NAND flash和NOR flash的不同
NOR flash采用位读写,因为它具有sram的接口,有足够的引脚来寻址,可以很容易的存取其内部的每一个字节。NAND flash使用复杂的I/O口来穿行地存取数据。8个引脚用来传送控制、地址和数据信息。NAND的读和写单位为512Byte的页,擦写单位为32页的块。

链接:http://www.365ele.com/articles/2 ... %e5%88%86%e6%9e%90/
yhhsky 发表于 2013-3-31 10:06 | 显示全部楼层
lu-永 发表于 2013-4-22 11:36 | 显示全部楼层
cuicuijjy 发表于 2013-8-16 12:28 | 显示全部楼层
是不是状态不正确,ready 和 busy 信号看了么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

1

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部