深入理解文件系统 深入理解文件系统(一) 一、通过格式化命令-看磁盘文件系统的建立过程 1、添加 format命令,单步调试 所有的底层驱动函数都已经准备好
添加格式化命令 format后,编译下载
Format命令的执行主要是调用 f_mkfs()函数,下面进行单步调试
以下主要列出函数的主要执行步骤: res=f_mkfs( 0, 1, 4096 ); //1表示不需要引导扇区
4096是 8个扇区
进入f_mkfs()函数,这里只列出主要执行步骤: if (disk_ioctl(drv, GET_SECTOR_COUNT, &n_part)
= RES_OK || n_part < MIN_SECTOR) return FR_MKFS_ABORTED;这个函数调用后,n_part=0x000F,3400 = 996 352,这是 SD的总块数
allocsize /= SS(fs); 等于 8/* Number of sectors per cluster */ n_clst = n_part / allocsize; //等于 0x1E680 = 124 544 簇
if (n_clst >= 0xFFF5) fmt = FS_FAT32; 所以文件系统确定为 FAT32类型
n_fat = ((n_clst * 4) + 8 + SS(fs) - 1) / SS(fs); 等于 0x3CE = 974,表示 FAT要占据 974个扇区
n_rsv = 33 - partition; 保留扇区 32个
n_dir = 0; b_fat = b_part + n_rsv; /* FATs start sector 32扇区*/ b_dir = b_fat + n_fat * N_FATS; /* Directory start sector 0x3E