Microchip® Advanced Software Framework

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Implementation of SD/MMC Memory

Control Interface

static bool sd_mmc_ejected [2] = {false, false}
 
Ctrl_status sd_mmc_test_unit_ready (uint8_t slot)
 Tests the memory state and initializes the memory if required. More...
 
Ctrl_status sd_mmc_test_unit_ready_0 (void)
 Instance Declaration for sd_mmc_test_unit_ready Slot O. More...
 
Ctrl_status sd_mmc_test_unit_ready_1 (void)
 Instance Declaration for sd_mmc_test_unit_ready Slot 1. More...
 
Ctrl_status sd_mmc_read_capacity (uint8_t slot, uint32_t *nb_sector)
 Returns the address of the last valid sector in the memory. More...
 
Ctrl_status sd_mmc_read_capacity_0 (uint32_t *nb_sector)
 Instance Declaration for sd_mmc_read_capacity Slot O. More...
 
Ctrl_status sd_mmc_read_capacity_1 (uint32_t *nb_sector)
 Instance Declaration for sd_mmc_read_capacity Slot 1. More...
 
bool sd_mmc_unload (uint8_t slot, bool unload)
 Unload/Load the SD/MMC card selected. More...
 
bool sd_mmc_unload_0 (bool unload)
 Instance Declaration for sd_mmc_unload Slot O. More...
 
bool sd_mmc_unload_1 (bool unload)
 Instance Declaration for sd_mmc_unload Slot 1. More...
 
bool sd_mmc_wr_protect (uint8_t slot)
 Returns the write-protection state of the memory. More...
 
bool sd_mmc_wr_protect_0 (void)
 Instance Declaration for sd_mmc_wr_protect Slot O. More...
 
bool sd_mmc_wr_protect_1 (void)
 Instance Declaration for sd_mmc_wr_protect Slot 1. More...
 
bool sd_mmc_removal (uint8_t slot)
 Tells whether the memory is removable. More...
 
bool sd_mmc_removal_0 (void)
 Instance Declaration for sd_mmc_removal Slot O. More...
 
bool sd_mmc_removal_1 (void)
 Instance Declaration for sd_mmc_removal Slot 1. More...
 

MEM <-> USB Interface

COMPILER_WORD_ALIGNED uint8_t sector_buf_0 [SD_MMC_BLOCK_SIZE]
 
COMPILER_WORD_ALIGNED uint8_t sector_buf_1 [SD_MMC_BLOCK_SIZE]
 
Ctrl_status sd_mmc_usb_read_10 (uint8_t slot, uint32_t addr, uint16_t nb_sector)
 Transfers data from the memory to USB. More...
 
Ctrl_status sd_mmc_usb_read_10_0 (uint32_t addr, uint16_t nb_sector)
 Instance Declaration for sd_mmc_usb_read_10 Slot O. More...
 
Ctrl_status sd_mmc_usb_read_10_1 (uint32_t addr, uint16_t nb_sector)
 Instance Declaration for sd_mmc_usb_read_10 Slot 1. More...
 
Ctrl_status sd_mmc_usb_write_10 (uint8_t slot, uint32_t addr, uint16_t nb_sector)
 Transfers data from USB to the memory. More...
 
Ctrl_status sd_mmc_usb_write_10_0 (uint32_t addr, uint16_t nb_sector)
 Instance Declaration for sd_mmc_usb_write_10 Slot O. More...
 
Ctrl_status sd_mmc_usb_write_10_1 (uint32_t addr, uint16_t nb_sector)
 Instance Declaration for sd_mmc_usb_write_10 Slot 1. More...
 

MEM <-> RAM Interface

Ctrl_status sd_mmc_mem_2_ram (uint8_t slot, uint32_t addr, void *ram)
 Copies 1 data sector from the memory to RAM. More...
 
Ctrl_status sd_mmc_mem_2_ram_0 (uint32_t addr, void *ram)
 Instance Declaration for sd_mmc_mem_2_ram Slot O. More...
 
Ctrl_status sd_mmc_mem_2_ram_1 (uint32_t addr, void *ram)
 Instance Declaration for sd_mmc_mem_2_ram Slot 1. More...
 
Ctrl_status sd_mmc_ram_2_mem (uint8_t slot, uint32_t addr, const void *ram)
 Copies 1 data sector from RAM to the memory. More...
 
Ctrl_status sd_mmc_ram_2_mem_0 (uint32_t addr, const void *ram)
 Instance Declaration for sd_mmc_mem_2_ram Slot O. More...
 
Ctrl_status sd_mmc_ram_2_mem_1 (uint32_t addr, const void *ram)
 Instance Declaration for sd_mmc_mem_2_ram Slot 1. More...
 

Ctrl_status sd_mmc_mem_2_ram ( uint8_t  slot,
uint32_t  addr,
void *  ram 
)

Copies 1 data sector from the memory to RAM.

Parameters
slotSD/MMC Slot Card Selected.
addrAddress of first memory sector to read.
ramPointer to RAM buffer to write.
Returns
Status.

References CTRL_FAIL, CTRL_GOOD, CTRL_NO_PRESENT, SD_MMC_ERR_NO_CARD, sd_mmc_init_read_blocks(), SD_MMC_OK, sd_mmc_start_read_blocks(), and sd_mmc_wait_end_of_read_blocks().

Referenced by sd_mmc_mem_2_ram_0(), and sd_mmc_mem_2_ram_1().

Ctrl_status sd_mmc_mem_2_ram_0 ( uint32_t  addr,
void *  ram 
)

Instance Declaration for sd_mmc_mem_2_ram Slot O.

References sd_mmc_mem_2_ram().

Ctrl_status sd_mmc_mem_2_ram_1 ( uint32_t  addr,
void *  ram 
)

Instance Declaration for sd_mmc_mem_2_ram Slot 1.

References sd_mmc_mem_2_ram().

Ctrl_status sd_mmc_ram_2_mem ( uint8_t  slot,
uint32_t  addr,
const void *  ram 
)

Copies 1 data sector from RAM to the memory.

Parameters
slotSD/MMC Slot Card Selected.
addrAddress of first memory sector to write.
ramPointer to RAM buffer to read.
Returns
Status.

References CTRL_FAIL, CTRL_GOOD, CTRL_NO_PRESENT, SD_MMC_ERR_NO_CARD, sd_mmc_init_write_blocks(), SD_MMC_OK, sd_mmc_start_write_blocks(), and sd_mmc_wait_end_of_write_blocks().

Referenced by sd_mmc_ram_2_mem_0(), and sd_mmc_ram_2_mem_1().

Ctrl_status sd_mmc_ram_2_mem_0 ( uint32_t  addr,
const void *  ram 
)

Instance Declaration for sd_mmc_mem_2_ram Slot O.

References sd_mmc_ram_2_mem().

Ctrl_status sd_mmc_ram_2_mem_1 ( uint32_t  addr,
const void *  ram 
)

Instance Declaration for sd_mmc_mem_2_ram Slot 1.

References sd_mmc_ram_2_mem().

Ctrl_status sd_mmc_read_capacity ( uint8_t  slot,
uint32_t *  u32_nb_sector 
)

Returns the address of the last valid sector in the memory.

Parameters
slotSD/MMC Slot Card Selected.
u32_nb_sectorPointer to the address of the last valid sector.
Returns
Status.

References sd_mmc_get_capacity(), and sd_mmc_test_unit_ready().

Referenced by sd_mmc_read_capacity_0(), and sd_mmc_read_capacity_1().

Ctrl_status sd_mmc_read_capacity_0 ( uint32_t *  nb_sector)

Instance Declaration for sd_mmc_read_capacity Slot O.

References sd_mmc_read_capacity().

Ctrl_status sd_mmc_read_capacity_1 ( uint32_t *  nb_sector)

Instance Declaration for sd_mmc_read_capacity Slot 1.

References sd_mmc_read_capacity().

bool sd_mmc_removal ( uint8_t  slot)

Tells whether the memory is removable.

Parameters
slotSD/MMC Slot Card Selected.
Returns
true if the memory is removable, else false.

References UNUSED.

Referenced by sd_mmc_removal_0(), and sd_mmc_removal_1().

bool sd_mmc_removal_0 ( void  )

Instance Declaration for sd_mmc_removal Slot O.

References sd_mmc_removal().

bool sd_mmc_removal_1 ( void  )

Instance Declaration for sd_mmc_removal Slot 1.

References sd_mmc_removal().

Ctrl_status sd_mmc_test_unit_ready ( uint8_t  slot)

Tests the memory state and initializes the memory if required.

The TEST UNIT READY SCSI primary command allows an application client to poll a LUN until it is ready without having to allocate memory for returned data.

This command may be used to check the media status of LUNs with removable media.

Parameters
slotSD/MMC Slot Card Selected.
Returns
Status.

References CARD_TYPE_MMC, CARD_TYPE_SD, CTRL_BUSY, CTRL_FAIL, CTRL_GOOD, CTRL_NO_PRESENT, sd_mmc_check(), sd_mmc_ejected, SD_MMC_ERR_NO_CARD, sd_mmc_get_type(), SD_MMC_INIT_ONGOING, and SD_MMC_OK.

Referenced by init_storage(), main(), sd_mmc_read_capacity(), sd_mmc_test_unit_ready_0(), and sd_mmc_test_unit_ready_1().

Ctrl_status sd_mmc_test_unit_ready_0 ( void  )

Instance Declaration for sd_mmc_test_unit_ready Slot O.

References sd_mmc_test_unit_ready().

Ctrl_status sd_mmc_test_unit_ready_1 ( void  )

Instance Declaration for sd_mmc_test_unit_ready Slot 1.

References sd_mmc_test_unit_ready().

bool sd_mmc_unload ( uint8_t  slot,
bool  unload 
)

Unload/Load the SD/MMC card selected.

The START STOP UNIT SCSI optional command allows an application client to eject the removable medium on a LUN.

Parameters
slotSD/MMC Slot Card Selected.
unloadtrue to unload the medium, false to load the medium.
Returns
true if unload/load done success.

References sd_mmc_ejected.

Referenced by sd_mmc_unload_0(), and sd_mmc_unload_1().

bool sd_mmc_unload_0 ( bool  unload)

Instance Declaration for sd_mmc_unload Slot O.

References sd_mmc_unload().

bool sd_mmc_unload_1 ( bool  unload)

Instance Declaration for sd_mmc_unload Slot 1.

References sd_mmc_unload().

Ctrl_status sd_mmc_usb_read_10 ( uint8_t  slot,
uint32_t  addr,
uint16_t  nb_sector 
)

Transfers data from the memory to USB.

Parameters
slotSD/MMC Slot Card Selected.
addrAddress of first memory sector to read.
nb_sectorNumber of sectors to transfer.
Returns
Status.

References CTRL_FAIL, CTRL_GOOD, CTRL_NO_PRESENT, NULL, SD_MMC_BLOCK_SIZE, SD_MMC_ERR_NO_CARD, sd_mmc_init_read_blocks(), SD_MMC_OK, sd_mmc_start_read_blocks(), sd_mmc_wait_end_of_read_blocks(), sector_buf_0, sector_buf_1, and udi_msc_trans_block().

Referenced by sd_mmc_usb_read_10_0(), and sd_mmc_usb_read_10_1().

Ctrl_status sd_mmc_usb_read_10_0 ( uint32_t  addr,
uint16_t  nb_sector 
)

Instance Declaration for sd_mmc_usb_read_10 Slot O.

References sd_mmc_usb_read_10().

Ctrl_status sd_mmc_usb_read_10_1 ( uint32_t  addr,
uint16_t  nb_sector 
)

Instance Declaration for sd_mmc_usb_read_10 Slot 1.

References sd_mmc_usb_read_10().

Ctrl_status sd_mmc_usb_write_10 ( uint8_t  slot,
uint32_t  addr,
uint16_t  nb_sector 
)

Transfers data from USB to the memory.

Parameters
slotSD/MMC Slot Card Selected.
addrAddress of first memory sector to write.
nb_sectorNumber of sectors to transfer.
Returns
Status.

References CTRL_FAIL, CTRL_GOOD, CTRL_NO_PRESENT, NULL, SD_MMC_BLOCK_SIZE, SD_MMC_ERR_NO_CARD, sd_mmc_init_write_blocks(), SD_MMC_OK, sd_mmc_start_write_blocks(), sd_mmc_wait_end_of_write_blocks(), sector_buf_0, sector_buf_1, and udi_msc_trans_block().

Referenced by sd_mmc_usb_write_10_0(), and sd_mmc_usb_write_10_1().

Ctrl_status sd_mmc_usb_write_10_0 ( uint32_t  addr,
uint16_t  nb_sector 
)

Instance Declaration for sd_mmc_usb_write_10 Slot O.

References sd_mmc_usb_write_10().

Ctrl_status sd_mmc_usb_write_10_1 ( uint32_t  addr,
uint16_t  nb_sector 
)

Instance Declaration for sd_mmc_usb_write_10 Slot 1.

References sd_mmc_usb_write_10().

bool sd_mmc_wr_protect ( uint8_t  slot)

Returns the write-protection state of the memory.

Parameters
slotSD/MMC Slot Card Selected.
Returns
true if the memory is write-protected, else false.
Note
Only used by removable memories with hardware-specific write protection.

References sd_mmc_is_write_protected().

Referenced by sd_mmc_wr_protect_0(), and sd_mmc_wr_protect_1().

bool sd_mmc_wr_protect_0 ( void  )

Instance Declaration for sd_mmc_wr_protect Slot O.

References sd_mmc_wr_protect().

bool sd_mmc_wr_protect_1 ( void  )

Instance Declaration for sd_mmc_wr_protect Slot 1.

References sd_mmc_wr_protect().

bool sd_mmc_ejected[2] = {false, false}
static