RAM Disk Driver

The Embedded SDK includes a RAM disk driver that provides the ability to store file system data within a simple array of RAM memory. The RAM disk driver is useful for validation and debugging since it is such a simple implementation.

The code snippet below illustrates how to create and initialize a RAM disk.

#include "FS/Disk/disk_ram.h"
#include <assert.h>

static RAMDISK disk;                                    /* Allocate a RAM disk */

void APP_Function(void)
    ALIGNED(8) static BYTE diskmem[8192];               /* Allocate memory for the RAM disk */
    STATUS status;

    status = RAMDISK_Create(&disk,                      /* Create and initialize the RAM disk */
                            diskmem,                    /* Pointer to the memory used by the disk */
                            512,                        /* Block size, 512 for FAT file systems */
                            sizeof(diskmem) / 512);     /* Number of blocks */

    assert(status == SUCCESS);

API Reference

STATUS RAMDISK_Create(RAMDISK* disk, void* mem, UINT32 blksize, UINT32 blkcnt)
Creates and initializes a disk driver that uses RAM memory for data storage.
disk A pointer to a caller allocated RAM disk to be initialized.
mem A pointer to the RAM memory that represents the disk image. The specified memory area must be at least (sectorSize * sectorCount) in size.
blksize The size, in bytes, of each of the blocks within the disk.
blkcnt The total number of blocks contained within the disk.
SUCCESS The disk has been initialized.
ERR_NULLREFERENCE The argument 'disk' or 'mem' was found to be NULL.