新手上路
- 积分
- 29
- 金钱
- 29
- 注册时间
- 2012-6-5
- 在线时间
- 0 小时
|

楼主 |
发表于 2012-6-6 11:17:23
|
显示全部楼层
回复【2楼】正点原子:
---------------------------------
谢谢正点原子。
你的意思是说 ff.c 中已经支持了多扇区读写吗?
拿diskio.c 中的disk_read来说,
DRESULT disk_read ( BYTE drv, BYTE *buff, DWORD sector, BYTE count ),在ff.c里调用disk_read的时候count =1,那下面读多扇区也没用啊?
在f_read中唯一调用disk_read count值不为1的地方是:
cc = btr / SS(fp->fs); /* When remaining bytes >= sector size, */
if (cc) { /* Read maximum contiguous sectors directly */
if (fp->csect + cc > fp->fs->csize) /* Clip at cluster boundary */
cc = fp->fs->csize - fp->csect;
if (disk_read(fp->fs->drive, rbuff, sect, (BYTE)cc) != RES_OK)
ABORT(fp->fs, FR_DISK_ERR);
可是我单步进去发现 (BYTE)cc) 还是1,虽然if (cc)处cc不为1,但是每次还是只读1个。
什么情况呢? |
|