你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 编程语言
s3c2410处理器平台下Nandflash的读写(四)
 

printk(“write error!\n”);

    else {//再将写入的数据读出,与原数据比较核对   

            unsigned char RdDat[512];

            ReadPage(addr, RdDat);     

            for(i=0; i<512; i++)

                if(RdDat[i]!=buf[i]) {

                    printk("write error!\n”);

                    break;

}

        }

    }

unsigned int EraseBlock(unsigned int addr)  

{//参数addr为页地址(包含块地址)

    unsigned char stat;

addr &= ~0x1f;//将块内页地址置零,以确保块地址对齐

    NFChipEn();//芯片使能

    WrNFCmd(ERASECMD0);//送出擦除命令

    //将块地址分时送出

WrNFAddr(addr);

    WrNFAddr(addr>>8);

    WrNFAddr(addr>>16);      

    WrNFCmd(ERASECMD1);//送出另一个擦除命令,开始擦除的第二个阶段

    stat = WaitNFBusy();//等待硬件操作完成

    NFChipDs();//解除芯片使能

    return stat;

}

4  Linux下编程

Linux对低层的操作进行了封装,并为用户提供了友好的接口,使用户在不熟悉Nandflash的存储原理及其机制的情况下,也能在应用层像读写一个普通文件一样,愉快地对Nandflash进行读写,即使在内核层也无需再像无操作系统下通过对寄存器写命令来操作Nandflash,除非活动在硬件驱动层。而Nandflash硬件驱动与在无操作系统下对Nandflash的操作极为相似,只要把物理地址映射为虚拟地址,并把程序修改为Linux驱动程序所需的格式,基本上就行了。

  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089