Microchip® Advanced Software Framework

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Virtual Memory in RAM

The component manages a disk on a volatile memory (internal RAM).

This can be connected to a File System management or a USB Device Mass Storage Interface via the service Memory Control Access.

Functions

Ctrl_status virtual_mem_2_ram (uint32_t addr, void *ram)
 This function transfers 1 data sector from memory to RAM sector = 512 bytes. More...
 
Ctrl_status virtual_ram_2_mem (uint32_t addr, const void *ram)
 This function transfers 1 data sector from memory to RAM sector = 512 bytes. More...
 
Ctrl_status virtual_read_capacity (uint32_t *uint32_t_nb_sector)
 This function returns the address of the last valid sector. More...
 
bool virtual_removal (void)
 This function informs about the memory type. More...
 
Ctrl_status virtual_test_unit_ready (void)
 This function tests memory state, and starts memory initialization. More...
 
bool virtual_unload (bool unload)
 This function unloads/loads the memory. More...
 
bool virtual_wr_protect (void)
 This function returns the write-protected mode. More...
 

Variables

static bool b_vmem_unloaded = false
 
static COMPILER_WORD_ALIGNED
uint8_t 
vmem_data [VMEM_NB_SECTOR *VMEM_SECTOR_SIZE]
 

Ctrl_status virtual_mem_2_ram ( uint32_t  addr,
void *  ram 
)

This function transfers 1 data sector from memory to RAM sector = 512 bytes.

Parameters
addrSector address to start read
ramAddress of RAM buffer
Returns
Ctrl_status It is ready -> CTRL_GOOD Memory unplug -> CTRL_NO_PRESENT Not initialized or changed -> CTRL_BUSY An error occurred -> CTRL_FAIL

References CTRL_FAIL, CTRL_GOOD, Max, min, vmem_data, VMEM_NB_SECTOR, and VMEM_SECTOR_SIZE.

Ctrl_status virtual_ram_2_mem ( uint32_t  addr,
const void *  ram 
)

This function transfers 1 data sector from memory to RAM sector = 512 bytes.

Parameters
addrSector address to start write
ramAddress of RAM buffer
Returns
Ctrl_status It is ready -> CTRL_GOOD Memory unplug -> CTRL_NO_PRESENT Not initialized or changed -> CTRL_BUSY An error occurred -> CTRL_FAIL

References CTRL_FAIL, CTRL_GOOD, vmem_data, VMEM_NB_SECTOR, and VMEM_SECTOR_SIZE.

Ctrl_status virtual_read_capacity ( uint32_t *  uint32_t_nb_sector)

This function returns the address of the last valid sector.

Parameters
uint32_t_nb_sectorPointer to number of sectors (sector=512 bytes)
Returns
Ctrl_status It is ready -> CTRL_GOOD Memory unplug -> CTRL_NO_PRESENT Not initialized or changed -> CTRL_BUSY An error occurred -> CTRL_FAIL

References b_vmem_unloaded, CTRL_GOOD, CTRL_NO_PRESENT, and VMEM_NB_SECTOR.

bool virtual_removal ( void  )

This function informs about the memory type.

Returns
true if the memory is removable
Ctrl_status virtual_test_unit_ready ( void  )

This function tests memory state, and starts memory initialization.

Returns
Ctrl_status It is ready -> CTRL_GOOD Memory unplug -> CTRL_NO_PRESENT Not initialized or changed -> CTRL_BUSY An error occurred -> CTRL_FAIL

References b_vmem_unloaded, CTRL_GOOD, and CTRL_NO_PRESENT.

bool virtual_unload ( bool  unload)

This function unloads/loads the memory.

Returns
true if the memory is unloaded

References b_vmem_unloaded, and unload.

bool virtual_wr_protect ( void  )

This function returns the write-protected mode.

Returns
true if the memory is protected

bool b_vmem_unloaded = false
static