Microchip® Advanced Software Framework

ctrl_access.h File Reference
#include "compiler.h"
#include "conf_access.h"
#include "uhi_msc_mem.h"

Macros

#define SECTOR_SIZE   512
 
LUN IDs
#define LUN_ID_0   (0)
 First static LUN. More...
 
#define LUN_ID_1   (LUN_ID_0 + LUN_0)
 
#define LUN_ID_2   (LUN_ID_1 + LUN_1)
 
#define LUN_ID_3   (LUN_ID_2 + LUN_2)
 
#define LUN_ID_4   (LUN_ID_3 + LUN_3)
 
#define LUN_ID_5   (LUN_ID_4 + LUN_4)
 
#define LUN_ID_6   (LUN_ID_5 + LUN_5)
 
#define LUN_ID_7   (LUN_ID_6 + LUN_6)
 
#define MAX_LUN   (LUN_ID_7 + LUN_7)
 Number of static LUNs. More...
 
#define LUN_ID_USB   (MAX_LUN)
 First dynamic LUN (USB host mass storage). More...
 

Enumerations

enum  Ctrl_status {
  CTRL_GOOD = PASS,
  CTRL_FAIL = FAIL,
  CTRL_NO_PRESENT = FAIL + 1,
  CTRL_BUSY = FAIL + 2
}
 Status returned by CTRL_ACCESS interfaces. More...
 

Functions

Control Interface
U8 get_nb_lun (void)
 Returns the number of LUNs. More...
 
U8 get_cur_lun (void)
 Returns the current LUN. More...
 
Ctrl_status mem_test_unit_ready (U8 lun)
 Tests the memory state and initializes the memory if required. More...
 
Ctrl_status mem_read_capacity (U8 lun, U32 *u32_nb_sector)
 Returns the address of the last valid sector (512 bytes) in the memory. More...
 
U8 mem_sector_size (U8 lun)
 Returns the size of the physical sector. More...
 
bool mem_unload (U8 lun, bool unload)
 Unload/load the medium. More...
 
bool mem_wr_protect (U8 lun)
 Returns the write-protection state of the memory. More...
 
bool mem_removal (U8 lun)
 Tells whether the memory is removable. More...
 
const char * mem_name (U8 lun)
 Returns a pointer to the LUN name. More...
 
MEM <-> RAM Interface
Ctrl_status memory_2_ram (U8 lun, U32 addr, void *ram)
 Copies 1 data sector from the memory to RAM. More...
 
Ctrl_status ram_2_memory (U8 lun, U32 addr, const void *ram)
 Copies 1 data sector from RAM to the memory. More...