Spirit
获得 420 次赞
帮助过262人
为了学习WebServer,不得不试着自己写个网页。看例程里,取开发板 RTC等信息用的是HTML标签,通过SSI去获取。我试着做个表格,难不成表格里每个单元格都需要逐个设置HTML标签?
问题就是:disk_ioctl函数中,要求返回GET_BLOCK_SIZE。这个GET_BLOCK_SIZE是指:返回以扇区为单位的存储阵列的擦除块大小赋给 Buffer 指向的 DWORD 变量。那么我的理解:假如一个Flash擦除块有4096个字节,而我把512个字节划分为一扇区,那么调用disk_ioctl(pdrv GET_BLOCK_SIZE &n)时,应该返回4096/512 = 8从某例程上看,确实是这样的。当我用CubeMX生成基于SD卡的FATFS时,其构造的函数中不管是GET_SECTOR_SIZE还是GET_BLOCK_SIZE返回值都是CardInfo.LogBlockSize——512。请问这是怎么回事?附代码:DRESULT SD_ioctl(BYTE lun BYTE cmd void *buff) { DRESULT res = RES_ERROR; BSP_SD_CardInfo CardInfo; if (Stat & STA_NOINIT) return RES_NOTRDY; switch (cmd) { /* Make sure that no pending write process */ case CTRL_SYNC : res = RES_OK; break; /* Get number of sectors on the disk (DWORD) */ case GET_SECTOR_COUNT : BSP_SD_GetCardInfo(&CardInfo); *(DWORD*)buff = CardInfo.LogBlockNbr; res = RES_OK; break; /* Get R/W sector size (WORD) */ case GET_SECTOR_SIZE : BSP_SD_GetCardInfo(&CardInfo); *(WORD*)buff = CardInfo.LogBlockSize; res = RES_OK; break; /* Get erase block size in unit of sector (DWORD) */ case GET_BLOCK_SIZE : BSP_SD_GetCardInfo(&CardInfo); *(DWORD*)buff = CardInfo.LogBlockSize; res = RES_OK; break; default: res = RES_PARERR; } return res; }