2452|2

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求助:三星k9f2g08uom 驱动问题 [复制链接]

谢谢关注!
我使用的板子是friendly arm 的micro2440a,因为要做nand boot启动,需要开发k9f2g08uom(每页2048byte,2048 block,每块64页)的驱动,目前碰到两个问题:
1,程序烧写不正确。使用sjf2440 软件烧写,然后读出,发现部分数据烧写部分不正确,sjf2440 软件是否会自动处理坏块?如果不能自动处理坏块,怎么烧写呢?用什么工具呢?
2,以下是我的读nandflash页的程序,之前我已经把文件烧写到nandflash的第一块,也就是第64页,我的问题是为什么读取到的数据每页开头都有若干0xff数据?这个数据确定不是spare 区的数据。
// 页读, U8 K9F2G_PageRead(U8 *Buf, U32 size, U32 PageIndex)
{
    U32 i;
    U32 PageAddr;
    U8  *DATA;

    PageAddr = PageIndex<<12;
    if(Buf != NULL)
    {   
           
            NF_nFCE_L();
            NF_CLEAR_RB();
               
                NF_CMD(K9F2G_PGAEREAD1);                     
        NF_ADDR((PageAddr>>0)&0xFF);
                NF_ADDR((PageAddr>>8)&0x0F);
        NF_ADDR((PageAddr>>12)&0xFF);
        NF_ADDR((PageAddr>>20)&0xFF);
                NF_ADDR((PageAddr>>28)&0x01);
        NF_CMD(K9F2G_PAGEREAD2);       

                NF_DETECT_RB();
       
        for(i=0; i<10; i++);
        for(i=0; i         {
          Buf = NF_RDDATA8(); // Read Cycle Time: 30ns(min)
        }
        
        NF_nFCE_H();
        
        return TRUE;
    }
   
    return FALSE;
}
void CopyProgramFromNand(void)
{

   U8 i= K9F2G_init();
   //U32 startPageIndex,endPageIndex;
   U32 j,m=0;

   unsigned char *RAM = (unsigned char *)0x30100000;

   for(j=64;j<100;j++)//从64页开始读取,每页读取2048个byte
   {
        K9F2G_PageRead(RAM+m, 2048, j);
         m+=2048;
   }
求解答谢谢了!

最新回复

坏块的处理看你用的系统,如果是带文件系统的CE LINUX,一般会自动处理坏块,如果是UCOS或者裸奔,应该自己处理坏块,这个也比较简单,自己实现一个大数组或者链表即可. 但NAND会保证前4K是正确的.至于你读到的数据,可能是初始化的值吧,NAND只能拉低.  详情 回复 发表于 2010-4-8 14:00
点赞 关注

回复
举报

1

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
没人回呀 自己顶
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
坏块的处理看你用的系统,如果是带文件系统的CE LINUX,一般会自动处理坏块,如果是UCOS或者裸奔,应该自己处理坏块,这个也比较简单,自己实现一个大数组或者链表即可.
但NAND会保证前4K是正确的.至于你读到的数据,可能是初始化的值吧,NAND只能拉低.
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表