Microchip® Advanced Software Framework

services/usb/class/msc/host/example2/conf_access.h File Reference

Memory access control configuration.

Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.

#include "compiler.h"
#include "board.h"

Macros

Activation of Logical Unit Numbers
#define LUN_0   DISABLE
 On-Chip Virtual Memory. More...
 
#define LUN_1   DISABLE
 AT45DBX Data Flash. More...
 
#define LUN_2   DISABLE
 SD/MMC Card over SPI. More...
 
#define LUN_3   DISABLE
 SD/MMC Card over MCI Slot 0. More...
 
#define LUN_4   DISABLE
 
#define LUN_5   DISABLE
 
#define LUN_6   DISABLE
 
#define LUN_7   DISABLE
 
#define LUN_USB   ENABLE
 Host Mass-Storage Memory. More...
 
LUN 0 Definitions
#define VIRTUAL_MEM   LUN_0
 
#define LUN_ID_VIRTUAL_MEM   LUN_ID_0
 
#define LUN_0_INCLUDE   "virtual_mem.h"
 
#define Lun_0_test_unit_ready   virtual_test_unit_ready
 
#define Lun_0_read_capacity   virtual_read_capacity
 
#define Lun_0_unload   NULL /* Can not be unloaded */
 
#define Lun_0_wr_protect   virtual_wr_protect
 
#define Lun_0_removal   virtual_removal
 
#define Lun_0_usb_read_10   virtual_usb_read_10
 
#define Lun_0_usb_write_10   virtual_usb_write_10
 
#define Lun_0_mem_2_ram   virtual_mem_2_ram
 
#define Lun_0_ram_2_mem   virtual_ram_2_mem
 
#define LUN_0_NAME   "\"On-Chip Virtual Memory\""
 
LUN 1 Definitions
#define AT45DBX_MEM   LUN_1
 
#define LUN_ID_AT45DBX_MEM   LUN_ID_1
 
#define LUN_1_INCLUDE   "at45dbx_mem.h"
 
#define Lun_1_test_unit_ready   at45dbx_test_unit_ready
 
#define Lun_1_read_capacity   at45dbx_read_capacity
 
#define Lun_1_unload   NULL /* Can not be unloaded */
 
#define Lun_1_wr_protect   at45dbx_wr_protect
 
#define Lun_1_removal   at45dbx_removal
 
#define Lun_1_usb_read_10   at45dbx_usb_read_10
 
#define Lun_1_usb_write_10   at45dbx_usb_write_10
 
#define Lun_1_mem_2_ram   at45dbx_df_2_ram
 
#define Lun_1_ram_2_mem   at45dbx_ram_2_df
 
#define LUN_1_NAME   "\"AT45DBX Data Flash\""
 
LUN 2 Definitions
#define SD_MMC_0_MEM   LUN_2
 
#define LUN_ID_SD_MMC_0_MEM   LUN_ID_2
 
#define LUN_2_INCLUDE   "sd_mmc_mem.h"
 
#define Lun_2_test_unit_ready   sd_mmc_test_unit_ready_0
 
#define Lun_2_read_capacity   sd_mmc_read_capacity_0
 
#define Lun_2_unload   sd_mmc_unload_0
 
#define Lun_2_wr_protect   sd_mmc_wr_protect_0
 
#define Lun_2_removal   sd_mmc_removal_0
 
#define Lun_2_usb_read_10   sd_mmc_usb_read_10_0
 
#define Lun_2_usb_write_10   sd_mmc_usb_write_10_0
 
#define Lun_2_mem_2_ram   sd_mmc_mem_2_ram_0
 
#define Lun_2_ram_2_mem   sd_mmc_ram_2_mem_0
 
#define LUN_2_NAME   "\"SD/MMC Card Slot 0\""
 
LUN 3 Definitions
#define SD_MMC_1_MEM   LUN_3
 
#define LUN_ID_SD_MMC_1_MEM   LUN_ID_3
 
#define LUN_3_INCLUDE   "sd_mmc_mem.h"
 
#define Lun_3_test_unit_ready   sd_mmc_test_unit_ready_1
 
#define Lun_3_read_capacity   sd_mmc_read_capacity_1
 
#define Lun_3_unload   sd_mmc_unload_1
 
#define Lun_3_wr_protect   sd_mmc_wr_protect_1
 
#define Lun_3_removal   sd_mmc_removal_1
 
#define Lun_3_usb_read_10   sd_mmc_usb_read_10_1
 
#define Lun_3_usb_write_10   sd_mmc_usb_write_10_1
 
#define Lun_3_mem_2_ram   sd_mmc_mem_2_ram_1
 
#define Lun_3_ram_2_mem   sd_mmc_ram_2_mem_1
 
#define LUN_3_NAME   "\"SD/MMC Card Slot 1\""
 
USB LUNs Definitions
#define MEM_USB   LUN_USB
 
#define LUN_ID_MEM_USB   LUN_ID_USB
 
#define LUN_USB_INCLUDE   "uhi_msc_mem.h"
 
#define Lun_usb_get_lun()   uhi_msc_mem_get_lun()
 
#define Lun_usb_test_unit_ready(lun)   uhi_msc_mem_test_unit_ready(lun)
 
#define Lun_usb_read_capacity(lun, nb_sect)   uhi_msc_mem_read_capacity(lun, nb_sect)
 
#define Lun_usb_read_sector_size(lun)   uhi_msc_mem_read_sector_size(lun)
 
#define Lun_usb_wr_protect(lun)   uhi_msc_mem_wr_protect(lun)
 
#define Lun_usb_removal()   uhi_msc_mem_removal()
 
#define Lun_usb_mem_2_ram(addr, ram)   uhi_msc_mem_read_10_ram(addr, ram)
 
#define Lun_usb_ram_2_mem(addr, ram)   uhi_msc_mem_write_10_ram(addr, ram)
 
#define LUN_USB_NAME   "\"Host Mass-Storage Memory\""
 
Activation of Interface Features
#define ACCESS_USB   false
 MEM <-> USB interface. More...
 
#define ACCESS_MEM_TO_RAM   true
 MEM <-> RAM interface. More...
 
#define ACCESS_STREAM   false
 Streaming MEM <-> MEM interface. More...
 
#define ACCESS_STREAM_RECORD   false
 Streaming MEM <-> MEM interface in record mode. More...
 
#define ACCESS_MEM_TO_MEM   false
 MEM <-> MEM interface. More...
 
#define ACCESS_CODEC   false
 Codec interface. More...
 
Specific Options for Access Control
#define GLOBAL_WR_PROTECT   false
 Management of a global write protection. More...
 

Actions Associated with Memory Accesses

Write here the action to associate with each memory access.

Warning
Be careful not to waste time in order not to disturb the functions.
#define memory_start_read_action(nb_sectors)   ui_start_read()
 
#define memory_stop_read_action()   ui_stop_read()
 
#define memory_start_write_action(nb_sectors)   ui_start_write()
 
#define memory_stop_write_action()   ui_stop_write()
 
void ui_start_read (void)
 
void ui_stop_read (void)
 
void ui_start_write (void)
 
void ui_stop_write (void)
 

#define ACCESS_CODEC   false

Codec interface.

#define ACCESS_MEM_TO_MEM   false

MEM <-> MEM interface.

#define ACCESS_MEM_TO_RAM   true

MEM <-> RAM interface.

#define ACCESS_STREAM   false

Streaming MEM <-> MEM interface.

#define ACCESS_STREAM_RECORD   false

Streaming MEM <-> MEM interface in record mode.

#define ACCESS_USB   false

MEM <-> USB interface.

#define AT45DBX_MEM   LUN_1
#define GLOBAL_WR_PROTECT   false

Management of a global write protection.

#define LUN_0   DISABLE

On-Chip Virtual Memory.

#define LUN_0_INCLUDE   "virtual_mem.h"
#define Lun_0_mem_2_ram   virtual_mem_2_ram
#define LUN_0_NAME   "\"On-Chip Virtual Memory\""
#define Lun_0_ram_2_mem   virtual_ram_2_mem
#define Lun_0_read_capacity   virtual_read_capacity
#define Lun_0_removal   virtual_removal
#define Lun_0_test_unit_ready   virtual_test_unit_ready
#define Lun_0_unload   NULL /* Can not be unloaded */
#define Lun_0_usb_read_10   virtual_usb_read_10
#define Lun_0_usb_write_10   virtual_usb_write_10
#define Lun_0_wr_protect   virtual_wr_protect
#define LUN_1   DISABLE

AT45DBX Data Flash.

#define LUN_1_INCLUDE   "at45dbx_mem.h"
#define Lun_1_mem_2_ram   at45dbx_df_2_ram
#define LUN_1_NAME   "\"AT45DBX Data Flash\""
#define Lun_1_ram_2_mem   at45dbx_ram_2_df
#define Lun_1_read_capacity   at45dbx_read_capacity
#define Lun_1_removal   at45dbx_removal
#define Lun_1_test_unit_ready   at45dbx_test_unit_ready
#define Lun_1_unload   NULL /* Can not be unloaded */
#define Lun_1_usb_read_10   at45dbx_usb_read_10
#define Lun_1_usb_write_10   at45dbx_usb_write_10
#define Lun_1_wr_protect   at45dbx_wr_protect
#define LUN_2   DISABLE

SD/MMC Card over SPI.

#define LUN_2_INCLUDE   "sd_mmc_mem.h"
#define Lun_2_mem_2_ram   sd_mmc_mem_2_ram_0
#define LUN_2_NAME   "\"SD/MMC Card Slot 0\""
#define Lun_2_ram_2_mem   sd_mmc_ram_2_mem_0
#define Lun_2_read_capacity   sd_mmc_read_capacity_0
#define Lun_2_removal   sd_mmc_removal_0
#define Lun_2_test_unit_ready   sd_mmc_test_unit_ready_0
#define Lun_2_unload   sd_mmc_unload_0
#define Lun_2_usb_read_10   sd_mmc_usb_read_10_0
#define Lun_2_usb_write_10   sd_mmc_usb_write_10_0
#define Lun_2_wr_protect   sd_mmc_wr_protect_0
#define LUN_3   DISABLE

SD/MMC Card over MCI Slot 0.

#define LUN_3_INCLUDE   "sd_mmc_mem.h"
#define Lun_3_mem_2_ram   sd_mmc_mem_2_ram_1
#define LUN_3_NAME   "\"SD/MMC Card Slot 1\""
#define Lun_3_ram_2_mem   sd_mmc_ram_2_mem_1
#define Lun_3_read_capacity   sd_mmc_read_capacity_1
#define Lun_3_removal   sd_mmc_removal_1
#define Lun_3_test_unit_ready   sd_mmc_test_unit_ready_1
#define Lun_3_unload   sd_mmc_unload_1
#define Lun_3_usb_read_10   sd_mmc_usb_read_10_1
#define Lun_3_usb_write_10   sd_mmc_usb_write_10_1
#define Lun_3_wr_protect   sd_mmc_wr_protect_1
#define LUN_4   DISABLE
#define LUN_5   DISABLE
#define LUN_6   DISABLE
#define LUN_7   DISABLE
#define LUN_ID_AT45DBX_MEM   LUN_ID_1
#define LUN_ID_MEM_USB   LUN_ID_USB
#define LUN_ID_SD_MMC_0_MEM   LUN_ID_2
#define LUN_ID_SD_MMC_1_MEM   LUN_ID_3
#define LUN_ID_VIRTUAL_MEM   LUN_ID_0
#define LUN_USB   ENABLE

Host Mass-Storage Memory.

#define Lun_usb_get_lun ( )    uhi_msc_mem_get_lun()
#define LUN_USB_INCLUDE   "uhi_msc_mem.h"
#define Lun_usb_mem_2_ram (   addr,
  ram 
)    uhi_msc_mem_read_10_ram(addr, ram)
#define LUN_USB_NAME   "\"Host Mass-Storage Memory\""
#define Lun_usb_ram_2_mem (   addr,
  ram 
)    uhi_msc_mem_write_10_ram(addr, ram)
#define Lun_usb_read_capacity (   lun,
  nb_sect 
)    uhi_msc_mem_read_capacity(lun, nb_sect)
#define Lun_usb_read_sector_size (   lun)    uhi_msc_mem_read_sector_size(lun)
#define Lun_usb_removal ( )    uhi_msc_mem_removal()
#define Lun_usb_test_unit_ready (   lun)    uhi_msc_mem_test_unit_ready(lun)
#define Lun_usb_wr_protect (   lun)    uhi_msc_mem_wr_protect(lun)
#define MEM_USB   LUN_USB
#define memory_start_read_action (   nb_sectors)    ui_start_read()
#define memory_start_write_action (   nb_sectors)    ui_start_write()
#define memory_stop_read_action ( )    ui_stop_read()
#define memory_stop_write_action ( )    ui_stop_write()
#define SD_MMC_0_MEM   LUN_2
#define SD_MMC_1_MEM   LUN_3
#define VIRTUAL_MEM   LUN_0

void ui_start_read ( void  )
void ui_start_write ( void  )
void ui_stop_read ( void  )
void ui_stop_write ( void  )