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

[复制链接]
3915|1
 楼主| zui135 发表于 2009-7-8 18:28 | 显示全部楼层 |阅读模式
圈圈我用你的(21IC&nbsp;DIY&nbsp;U盘的实验板上实现“真”U盘的功能)里面的nandflash驱动程序怎么我读和写的扇区数据不一致呢?我的是1G的flash,块是128个page(256k),五个周期(2个column,3个row地址)的,我的数据线是模拟IO口实现,能正确的读取到ID号,<br />这个是写地址部分的(4个字节地址):<br />&nbsp;//注意:该FLASH的地址中间有5bit必须置0<br />&nbsp;//并将高16位左移5位<br />&nbsp;//Addr=((Addr&lt&lt5)&(~0xFFFF))|(Addr&0x07FF);(圈圈的)<br />&nbsp;coladdr&nbsp;&nbsp;=&nbsp;Addr&0x07FF;(我的)<br />&nbsp;rowaddr&nbsp;&nbsp;=&nbsp;(Addr&gt&gt11);<br />其他地址也按照上面格式我改变成我的了,程序其他部分没改变。<br /><br />&nbsp;&nbsp;FlashInit();<br />&nbsp;&nbsp;FlashReadId(buf);<br />&nbsp;&nbsp;FlashReadOneSector(0,buf,0);<br />flashinit()后,读取第一个扇区居然读取到的是0x0055AAFF........(这个是坏块部分的数据)<br />用格式化程序也没用,读取到的数据还是0x0055AAFF........<br />、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、<br />&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt100;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k&nbsp;=&nbsp;i*512;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FlashWriteOneSector(k,buf,0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FlashReadOneSector(k,testbuf1,0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FlashReadOneSector(0,testbuf2,0);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />我上面测试读写数据,但i到达5的时候,FlashReadOneSector(0,testbuf2,0);读取到的数据就为0xff了,后面继续读就规律性的一次正确,一次0xff这样交替,不知道怎么回事。圈圈指点一下??????<br />
computer00 发表于 2009-7-11 12:08 | 显示全部楼层

估计还是写地址出错了

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

本版积分规则

15

主题

182

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部