打印
[圈圈教你玩USB]

我用圈圈你U盘里面的flash驱动程序,怎么我的就是有问题呢

[复制链接]
2746|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zui135|  楼主 | 2009-7-8 18:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
圈圈我用你的(21IC DIY U盘的实验板上实现“真”U盘的功能)里面的nandflash驱动程序怎么我读和写的扇区数据不一致呢?我的是1G的flash,块是128个page(256k),五个周期(2个column,3个row地址)的,我的数据线是模拟IO口实现,能正确的读取到ID号,
这个是写地址部分的(4个字节地址):
 //注意:该FLASH的地址中间有5bit必须置0
 //并将高16位左移5位
 //Addr=((Addr<<5)&(~0xFFFF))|(Addr&0x07FF);(圈圈的)
 coladdr  = Addr&0x07FF;(我的)
 rowaddr  = (Addr>>11);
其他地址也按照上面格式我改变成我的了,程序其他部分没改变。

  FlashInit();
  FlashReadId(buf);
  FlashReadOneSector(0,buf,0);
flashinit()后,读取第一个扇区居然读取到的是0x0055AAFF........(这个是坏块部分的数据)
用格式化程序也没用,读取到的数据还是0x0055AAFF........
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
    for(i=0;i<100;i++)
    {
      k = i*512;
      FlashWriteOneSector(k,buf,0);
      FlashReadOneSector(k,testbuf1,0);
      FlashReadOneSector(0,testbuf2,0);
    }

我上面测试读写数据,但i到达5的时候,FlashReadOneSector(0,testbuf2,0);读取到的数据就为0xff了,后面继续读就规律性的一次正确,一次0xff这样交替,不知道怎么回事。圈圈指点一下??????

相关帖子

沙发
computer00| | 2009-7-11 12:08 | 只看该作者

估计还是写地址出错了

使用特权

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

本版积分规则

15

主题

182

帖子

1

粉丝