}
/* Determine if the packet is a READ (10) or WRITE (10) command, call appropriate function */
- while (TotalBlocks--)
+ for (uint16_t i = 0; i < TotalBlocks; i++)
{
if (IsDataRead == DATA_READ)
- VirtualFAT_ReadBlock(BlockAddress);
+ VirtualFAT_ReadBlock(BlockAddress + i);
else
- VirtualFAT_WriteBlock(BlockAddress);
-
- BlockAddress++;
+ VirtualFAT_WriteBlock(BlockAddress + i);
}
/* Update the bytes transferred counter and succeed the command */
enum
{
/** Boot sector disk block. */
- DISK_BLOCK_BootBlock = 0,
+ DISK_BLOCK_BootBlock = 0,
/** First copy of the FAT table block. */
- DISK_BLOCK_FATBlock1 = 1,
+ DISK_BLOCK_FATBlock1 = 1,
/** Second copy of the FAT table block. */
- DISK_BLOCK_FATBlock2 = 2,
+ DISK_BLOCK_FATBlock2 = 2,
/** Root file and directory entries block. */
- DISK_BLOCK_RootFilesBlock = 3,
+ DISK_BLOCK_RootFilesBlock = 3,
/** Start block of the disk data section. */
- DISK_BLOCK_DataStartBlock = 4,
+ DISK_BLOCK_DataStartBlock = 4,
};
/* Type Definitions: */