ChainingBlockDevice example to showcase programming and reading from a chained group of HeapBlockDevices.
Fork of ChainingBlockDevice_ex_1 by
Diff: main.cpp
- Revision:
- 1:8ad9777787ba
- Parent:
- 0:daa62d7aa9f9
- Child:
- 2:70419b9d778a
--- a/main.cpp Fri Oct 13 16:56:09 2017 +0000 +++ b/main.cpp Wed Oct 18 20:03:25 2017 +0000 @@ -1,18 +1,23 @@ #include "mbed.h" #include "HeapBlockDevice.h" -#include "MBRBlockDevice.h" +#include "ChainingBlockDevice.h" +#include "FATFileSystem.h" int main(void) { - // Create a block device with 64 blocks of size 512 - HeapBlockDevice mem(64*512, 512); - - // Partition into two partitions with ~half the blocks - MBRBlockDevice::partition(&mem, 1, 0x83, 0*512, 32*512); - MBRBlockDevice::partition(&mem, 2, 0x83, 32*512); + // Create two smaller block devices with + // 64 and 32 blocks of size 512 bytes + HeapBlockDevice mem1(64*512, 512); + HeapBlockDevice mem2(32*512, 512); - // Create a block device that maps to the first 32 blocks (excluding MBR block) - MBRBlockDevice part1(&mem, 1); + // Create a block device backed by mem1 and mem2 + // contains 96 blocks of size 512 bytes + BlockDevice *bds[] = {&mem1, &mem2}; + ChainingBlockDevice chainmem(bds); - // Create a block device that maps to the last 32 blocks - MBRBlockDevice part2(&mem, 2); + // Format the new chained block device with a FAT filesystem + FATFileSystem::format(&chainmem); + + // Create the FAT filesystem instance, files can now be written to + // the FAT filesystem as if to a single 96 x 512 byte storage device + FATFileSystem fat("fat", &chainmem); } \ No newline at end of file