= GIET-VM / SDC Driver = [[PageOutline]] The [source:soft/giet_vm/giet_drivers/sdc_driver.c sdc_driver.c] and [source:soft/giet_vm/giet_drivers/sdc_driver.h sdc_driver.h] files define the SDC driver. This component is a single channel, block oriented, external mass storage peripheral, implemented on a SD card. The SDC driver uses the lower level SPI driver to access the SD card. It is called by the generic FAT handler when the USE_IOC_SPI flag is set in the hard_config.h file. The SEG_IOC_BASE address must be defined in the hard_config.h file. In this implementation, the SDC peripheral is acting as a target (no DMA capability) : the '''_sdc_access()''' function is blocking until the transfer is fully completed, and does not use any interrupt to signal completion, whatever the requested mode. WARNING : Write transfers (from memory to SD card) are not supported yet. == __Access functions__ == === unsigned int '''_sdc_init'''() === This function initializes the SPI controller and call sdc_open to initialize the SD card. Returns 0 if success, >0 if failure === unsigned int '''_sdc_access'''( unsigned int use_irq , unsigned int to_mem , unsigned int lba, unsigned long long buffer, unsigned int count ) === Transfer data from the SD card to a memory buffer. * '''use_irq''' : unused, access is always synchronous. * '''to_mem''' : must be non zero as write transfer are not supported yet. * '''lba''' : first block index on the SD card. * '''buffer''' : physical base address of the memory buffer * '''count''' : number of blocks to be transfered. Returns 0 if success, > 0 if error.