fishly_0
驱动小牛
驱动小牛
  • 注册日期2005-09-10
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望466点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
阅读:1304回复:3

求教:关于nandflash的读写和寻址

楼主#
更多 发布于:2007-10-16 15:00
cpu: 三星2440;系统:WinCE
对128M的 nandflash 的寻址,是按照一下的哪一种方式进行的呢?
页大小:2048bytes ,1block = 64pages 1device=1024blocks
第一种: 2bytes的column address ,然后是1byte Page address,最后是2bytes 的 block address
第二种: 2bytes的column address,然后是 2bytes的page address

第一种寻址和第二种寻址中,发送的第三个直接应该会不一样的。按照datasheet上,是按照第二种方法寻址的即2字节列地址,2字节页地址;可是我在代码中看到的是按照第一种方法进行寻址的即2字节列地址,1字节页地址,然后是2字节的块地址。这两种方法寻址的字节数都不一样,到底那种是对的?程序可以正常运行,可是却不附合datasheet上的说明,高手帮忙解答一下,因为以后可能会转用其他型号的nandflash,所以还是要把这个问题搞清楚了。

fishly_0
驱动小牛
驱动小牛
  • 注册日期2005-09-10
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望466点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-10-16 15:01
另外:读写nandflash时,我们寻址后 即发送完NF_CMD(),NF_ADDR()...NF_ADDR(),NF_CMD()后,就可以读写cpu的数据寄存器了? 很多程序里面都是用一个for循环读写nandflash的,这样不会有问题吗? 我用的是三星的2440,按照cpu的datasheet上的说明,应该是NFSTAT寄存器的R/B位有发生变化了,才说明有数据读到cpu的寄存器或者成功写入nandflash了,那么如果直接在for循环里面读写nandflash而不去判断上一次读写是否已经成功,这样会不会有问题?还是说cpu读写nandflash的过程,比c程序的执行速度快的多,根本不用考虑这个问题?
saint_bxg
驱动小牛
驱动小牛
  • 注册日期2006-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望284点
  • 贡献值0点
  • 好评度257点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-10-16 17:37
看看上面的 zhengshijie大哥写的 2K大页面NAND FLASH的WINCE5.0/4.2下的驱动源码
努力! 成功就在不远处....
fishly_0
驱动小牛
驱动小牛
  • 注册日期2005-09-10
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望466点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-10-16 21:41
源代码我下载了,正在看。我手上的这个eboot,也可以正确的格式化nandflash什么的,但是我看了nandflash的datasheet,感觉datasheet上说的和程序里面的实现不一样。
游客

返回顶部