进入find_volume函数,在find_volume函数中有这样一行代码:fmt = check_f( fs, bsect );并且根据...
ressd=f_mount(&fatfs,"sd:",1); 其中f_mount函数内部通过调用find_volume函数,从逻辑名称”sd:”并联物理盘符1。 具体并联规则通过 ffcon.h文件内部的宏定义确认。 #define FF_VOLUME_STRS "RAM","SD","CF","NAND","SD2","USB","USB2","USB3"...
具体报错在 f_open() -> mount_volume() -> find_volume() -> check_fs() 函数中,具体代码如下 if(ld_word(fs->win+BS_55AA)!=0xAA55)return3; 这个部分的代码是为了验证 SD 卡是否是 FAT 的格式,在这个地方首先是检测 SD 卡的第一个块最后两个字节不是 0xAA55 ,这是一种签名值,为了验证扇区...
我程序里面先初始化spi,然后初始化SD卡,再就进行f_mount和f_open(f_mount参数是0,没有立即挂载),是在f_open中调用find_volume中的问题。 回复 使用道具 举报 正点原子 530主题 11万帖子 34精华 管理员 积分 165359 金钱 165359 注册时间 2010-12-1 在线时间 2110 小时 发消息 发表于 2017-6-20 ...
intmain(void){// 初始化LEDLED_GPIO_Config();LED_BLUE;// 初始化调试串口,一般为串口1USART_Config();printf("*** 这是一个SPI FLASH 文件系统实验 ***\r\n");// 在外部SPI Flash挂载文件系统,文件系统挂载时会对SPI设备初始化// 初始化函数调用流程如下// f_mount()->find_volume()->disk_ini...
//初始化函数调用流程如下 //f_mount()->find_volume()->disk_initialize->SPI_FLASH_Init() res_flash = f_mount(&fs,"1:",1); /*--- 格式化测试 ---*/ /* 如果没有文件系统就格式化创建创建文件系统 */ if (res_flash == FR_NO_FILESYSTEM) { printf("...
对于f_mount的代码,将SD卡挂载起来,把硬件与软件的连接做好的工作是在find_volume函数内部完成的。对于该函数,首先需要注意的一个片段是: bsect = 0; fmt = check_fs(fs, bsect); /* Load sector 0 and check if it is an FAT boot sector as SFD */ ...
对于f_mount的代码,将SD卡挂载起来,把硬件与软件的连接做好的工作是在find_volume函数内部完成的。对于该函数,首先需要注意的一个片段是: bsect = 0; fmt = check_fs(fs, bsect); /* Load sector 0 and check if it is an FAT boot sector as SFD */ if (fmt == 1 || (!fmt && (LD2PT(vo...
//f_mount()->find_volume()->disk_initialize->SPI_FLASH_Init() //f_mount:注册或注销一个工作区域 //f_mount 函数有三个形参, //第 一个参数是指向 FATFS 变量指针,如果赋值为 NULL 可以取消物理设备挂载。 //第二个参数为逻辑设备编号,使用设备根路径表示,与物理设备编号挂钩,在diskio.c文件中我们...
FRESULT find_volume ( /* FR_OK(0): successful, !=0: any error occurred */ FATFS** rfs...