野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10188|回复: 1

FatFs,disk_read函数问题

[复制链接]
发表于 2017-4-21 14:54:37 | 显示全部楼层 |阅读模式
今天在移植霸道的FATFS(SD)的代码,看到硬盘读函数,这里不是很懂,程序难道能自己调用自己吗? 这是怎么回事
DRESULT disk_read (
        BYTE pdrv,               
        BYTE *buff,       
        DWORD sector,       
        UINT count               
)
{
        DRESULT status = RES_PARERR;
        SD_Error SD_state = SD_OK;
       
        switch (pdrv) {
                case ATA:        /* SD CARD */                                               
                  if((DWORD)buff&3)
                        {
                                DRESULT res = RES_OK;
                                DWORD scratch[SD_BLOCKSIZE / 4];

                                while (count--)
                                {
                                        res = disk_read(ATA,(void *)scratch, sector++, 1);

                                        if (res != RES_OK)
                                        {
                                                break;
                                        }
                                        memcpy(buff, scratch, SD_BLOCKSIZE);
                                        buff += SD_BLOCKSIZE;
                    }
                    return res;
                        }

回复

使用道具 举报

发表于 2017-4-21 15:51:09 | 显示全部楼层
是,这叫递归
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 15:44 , Processed in 0.031264 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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