打印

fatfs文件系统移植的disk_ioctl实现问题

[复制链接]
8616|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bjlny|  楼主 | 2011-5-30 22:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
网上有一篇文档:移植FATFS的NANDFLASH驱动,里边的实现是:  
/* FSMC NAND memory HY27UF081G2A-TPCB parameters */
  #define NAND_PAGE_SIZE             ((uint16_t)0x0800) /* 2048 bytes per page w/o Spare Area */
  #define NAND_BLOCK_SIZE            ((uint16_t)0x0040) /* 64x2048 bytes pages per block */
  #define NAND_ZONE_SIZE             ((uint16_t)0x0200) /* 512 Block per zone */
  #define NAND_SPARE_AREA_SIZE       ((uint16_t)0x0040) /* last 64 bytes as spare area */
  #define NAND_MAX_ZONE              ((uint16_t)0x0002) /* 2 zones of 1024 block */

DRESULT disk_ioctl (BYTE drv,BYTE ctrl, void *buff)
  {
   DRESULT res = RES_OK;
   uint32_t result;
      if (drv){ return RES_PARERR;}
   
      switch(ctrl)
      {
       case CTRL_SYNC:
           break;
    case GET_BLOCK_SIZE:
           *(DWORD*)buff = NAND_BLOCK_SIZE;
           break;
    case GET_SECTOR_COUNT:
           *(DWORD*)buff = (((NAND_MAX_ZONE/2) * NAND_ZONE_SIZE) * NAND_BLOCK_SIZE);
           break;
    case GET_SECTOR_SIZE:
           *(WORD*)buff = NAND_PAGE_SIZE;
           break;
       default:
           res = RES_PARERR;
           break;
   }
      return res;
  }
这里有几个问题:
1.GET_BLOCK_SIZE不是获取块的大小吗?这里返回是NAND_BLOCK_SIZE,其实就是64,即一块的页数,怎么解释?
2.GET_SECTOR_COUNT不是获取扇区个数吗?这里返回的是(((NAND_MAX_ZONE/2) * NAND_ZONE_SIZE) * NAND_BLOCK_SIZE);也就是整个flash所有的页数
3.GET_SECTOR_SIZE不是获取扇区大小吗?这里返回的是NAND_PAGE_SIZE,也就是一页的大小.
这些好像跟字面意思都不对应?请解释下

另外我要移植到nor flash上,我的型号是am29lv160db,只有一个快,没有page,总共2M字节,那么这些地方应该如何返回?

相关帖子

沙发
bjlny|  楼主 | 2011-6-3 08:39 | 只看该作者
自己顶一下

使用特权

评论回复
板凳
bjlny|  楼主 | 2011-6-5 13:30 | 只看该作者
这么多牛人,没人懂吗

使用特权

评论回复
地板
bjlny|  楼主 | 2011-6-8 10:01 | 只看该作者
GET_SECTOR_SIZE和GET_SECTOR_COUNT好理解
GET_BLOCK_SIZE的具体含义是什么?这个块指的什么?

使用特权

评论回复
5
hnylcxq| | 2012-6-6 16:54 | 只看该作者
楼主,请问你在norflash上的fatfs实现了吗?我现在在做norflash上的fatfs移植,能否交流下?hnylcxq@163.com,我邮箱。

使用特权

评论回复
6
raoxianbin| | 2014-6-29 15:26 | 只看该作者
看fatfs的说明文档就知道了

使用特权

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

本版积分规则

7

主题

19

帖子

0

粉丝