[技术问答] NUC972 读写擦NANDFLASH的驱动

[复制链接]
198|6
我根据BSP里面的NAND YAFFS2的例程调试NANDFLASH。
我现在不想使用YAFFS2文件系统。想直接调NANDflash驱动写。
int main(void)
{
    char *ptr;
    char mtpoint[] = "user";
    char buf[8];
    int volatile i;
  
        sysInitializeUART();
    sysprintf("\n");
    sysprintf("==========================================\n");
    sysprintf("          FMI NAND YAFFS2                 \n");
    sysprintf("==========================================\n");

        sysDisableCache();
        sysInvalidCache();
        sysSetMMUMappingMethod(MMU_DIRECT_MAPPING);
        sysEnableCache(CACHE_WRITE_BACK);

    SYS_Init();

    nand_init();                       
       
//         cmd_yaffs_devconfig(mtpoint, 0, 0x10, 0x14);
//     cmd_yaffs_dev_ls();
//           cmd_yaffs_mount(mtpoint);
//     cmd_yaffs_dev_ls();
nand_read_chip();

while(1)
{
}

}



void nand_read_chip(void)
{
        struct mtd_info *mtd = &nand_info[0];
        struct nand_chip *nand = &nand_chip[0];

  size_t retlen;

        u_char buf1[2048];
       u_char buf[2048];
        unsigned int i=0;

       struct erase_info ei;
        int retval = 0;
//擦除
        ei.mtd = mtd;
        ei.addr = 0x1600000;
////        ei.len = dev->data_bytes_per_chunk * dev->param.chunks_per_block;
        ei.len = 2048*64;
        ei.time = 1000;
        ei.retries = 2;
        ei.callback = NULL;
        ei.priv = 0;

        /* Todo finish off the ei if required */
        retval = mtd->erase(mtd, &ei);

//写
        memset(buf, 0x88, 2048);
        mtd->write(mtd ,0x1600000,2048,&retlen,buf);       


//读       
        mtd->read(mtd ,0x1600000,2048,&retlen,buf1);       
       
                for(i =0; i < 2048; i++)
                sysPutChar(buf1[i]);
}

擦除,写,读数据不成功,有没有人调试过
| 2018-12-5 14:38 | 显示全部楼层
应该跟这个芯片有关吧,或者看看你之前的那个底层驱动怎么实现的。
 楼主 | 2018-12-5 15:08 | 显示全部楼层
734774645 发表于 2018-12-5 14:38
应该跟这个芯片有关吧,或者看看你之前的那个底层驱动怎么实现的。

使用的是W29N01芯片,使用自带的NAND YAFFS2这个例程就可以写进去,使用mtd层的接口函数就不可以了。擦除的时候第一页最后200多个字节不是0xFF,第二页是全0,但是擦除函数返回的值是对的
 楼主 | 2018-12-5 15:10 | 显示全部楼层
那个大神有nuc972的NAND flash的驱动啊
| 2018-12-6 17:25 | 显示全部楼层
你去新唐的github看看,都在那提供各种驱动。
| 2018-12-6 17:25 | 显示全部楼层
之前有人发帖发过那个链接。等我找找给你分享来。
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册
本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

快速回复 返回顶部 返回列表