打印

nandflash驱动读不出来

[复制链接]
2007|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 | 只看该作者

使用特权

评论回复
5
lu-永| | 2013-4-22 11:36 | 只看该作者
:)

使用特权

评论回复
6
cuicuijjy| | 2013-8-16 12:28 | 只看该作者
是不是状态不正确,ready 和 busy 信号看了么?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

1

帖子

0

粉丝