OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8910|回复: 6

请问FATFS这个实验中。DISKIO.C中这个#define FLASH_BLOCK_SIZE 8 //每个BLOCK有8个扇区是干嘛用

[复制链接]

72

主题

251

帖子

0

精华

高级会员

Rank: 4

积分
597
金钱
597
注册时间
2012-3-29
在线时间
7 小时
发表于 2013-10-17 14:40:46 | 显示全部楼层 |阅读模式

 #define SD_CARD  0  //SD卡,卷标为0
#define EX_FLASH 1 //外部flash,卷标为1

#define FLASH_SECTOR_SIZE  512    
//对于W25Q64
//前6M字节给fatfs用,6M字节后~6M+500K给用户用,6M+500K以后,用于存放字库,字库占用1.5M.         
u16     FLASH_SECTOR_COUNT=2048*6;//6M字节,默认为W25Q64
#define FLASH_BLOCK_SIZE   8     //每个BLOCK有8个扇区

W25Q64是64M字节,分为128块,每块分16扇区,每块64K,每个扇区分16页,每扇区是4K。

那如果按块的话应该是256

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

72

主题

251

帖子

0

精华

高级会员

Rank: 4

积分
597
金钱
597
注册时间
2012-3-29
在线时间
7 小时
 楼主| 发表于 2013-10-17 16:41:30 | 显示全部楼层
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-17 23:37:24 | 显示全部楼层
我设定1个block为4K,没问题吧?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

72

主题

251

帖子

0

精华

高级会员

Rank: 4

积分
597
金钱
597
注册时间
2012-3-29
在线时间
7 小时
 楼主| 发表于 2013-10-18 09:14:07 | 显示全部楼层

回复【3楼】正点原子:
---------------------------------
原来是自己定义的。
                                        

不好意思多问一句,如果定义4K一个BLOCK,那这个地方是写8 还是4096?

因为在这个函数中我不清楚这个FLASH_BLOCK_SIZE是做什么用帮忙解释一下

}else if(drv==EX_FLASH) //外部FLASH 
 {
     switch(ctrl)
     {
      case CTRL_SYNC:
    res = RES_OK;
          break; 
      case GET_SECTOR_SIZE:
          *(WORD*)buff = FLASH_SECTOR_SIZE;
          res = RES_OK;
          break; 
      case GET_BLOCK_SIZE:
          *(WORD*)buff = FLASH_BLOCK_SIZE;
          res = RES_OK;
          break; 
      case GET_SECTOR_COUNT:
          *(DWORD*)buff = FLASH_SECTOR_COUNT;
          res = RES_OK;
          break;
      default:
          res = RES_PARERR;
          break;
     }
 }else res=RES_ERROR;//其他的不支持
    return res; 

回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-18 10:49:22 | 显示全部楼层
回复【4楼】 grant :
---------------------------------
是的,我就是这么设计的,512/Sector  4096/Block
至于GET_BLOCK_SIZE啥时候用,我也不太清楚
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2017-7-19
在线时间
14 小时
发表于 2017-8-9 15:03:44 | 显示全部楼层
正点原子 发表于 2013-10-18 10:49
回复【4楼】 grant :
---------------------------------
是的,我就是这么设计的,512/Sector  409 ...

可不可以问一下为什么下面这一段2048*6会等于6M字节。。。。。
FLASH_SECTOR_COUNT=2048*6;//6M字节,默认为W25Q64
小菜鸡一枚
回复 支持 反对

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13129
金钱
13129
注册时间
2012-11-26
在线时间
3814 小时
发表于 2018-12-26 17:11:59 | 显示全部楼层
pkzz021 发表于 2017-8-9 15:03
可不可以问一下为什么下面这一段2048*6会等于6M字节。。。。。
FLASH_SECTOR_COUNT=2048*6;//6M ...

2048*6*512/1024/1024=6
因为对于fatfs来讲,一个扇区此时分配为512,所以计算时不一样了
虽然是坟贴,防止之后有人搜到此帖,还是回下
学无止境
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-22 23:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表