File nut/dev/spi_mmc.c


Included Files


Preprocessor definitions

#define MMC_BLOCK_SIZE 512

#define MMC_MAX_INIT_POLLS 512

#define MMC_MAX_RESET_RETRIES 2

#define MMC_MAX_WRITE_RETRIES 2

#define MMC_MAX_READ_RETRIES MMC_MAX_WRITE_RETRIES

#define MMC_MAX_CMDACK_POLLS 1024

#define MMC_MAX_READY_POLLS 800


Typedef MMCFCB

typedef struct _MMCFCB MMCFCB
struct _MMCFCB  
   {  
      NUTDEVICE* fcb_fsdev;  
      DOSPART fcb_part;  
      uint32_t fcb_address;  
      uint8_t fcb_blkbuf[512];  
   }  

Local Variables

dummy_tx_buf
static uint8_t dummy_tx_buf[512]
Used in: CardAllocate()  
  CardInit()  
  CardRxData()  
  CardRxTkn()  
  CardTxCommand()  
  CardWaitRdy()  
  SpiMmcBlockWrite()  
  SpiMmcIOCtl()  
  SpiMmcInit()  

Global Function SpiMmcBlockRead()

int SpiMmcBlockRead ( NUTFILE* nfp, void* buffer, int num )
Prototyped in: nut/include/dev/mmcard.h
Calls: CardRxData() nut/dev/spi_mmc.c

Global Function SpiMmcBlockWrite()

int SpiMmcBlockWrite ( NUTFILE* nfp, const void* buffer, int num )
Prototyped in: nut/include/dev/mmcard.h
Calls: CardRxTkn() nut/dev/spi_mmc.c
  CardTxCommand() nut/dev/spi_mmc.c
References Variables: dummy_tx_buf nut/dev/spi_mmc.c

Global Function SpiMmcBlockWrite_P()

int SpiMmcBlockWrite_P ( NUTFILE* nfp, const char* buffer, int num )
Prototyped in: nut/include/dev/mmcard.h

Global Function SpiMmcIOCtl()

int SpiMmcIOCtl ( NUTDEVICE* dev, int req, void* conf )
Prototyped in: nut/include/dev/mmcard.h
Calls: CardRxData() nut/dev/spi_mmc.c
  CardTxCommand() nut/dev/spi_mmc.c
References Variables: dummy_tx_buf nut/dev/spi_mmc.c

Global Function SpiMmcInit()

int SpiMmcInit ( NUTDEVICE* dev )
Prototyped in: nut/include/dev/mmcard.h
Calls: memset() nut/c/string/memset.c
References Variables: dummy_tx_buf nut/dev/spi_mmc.c

Global Function SpiMmcMount()

NUTFILE* SpiMmcMount ( NUTDEVICE* dev, const char* name, int mode, int acc )
Prototyped in: nut/include/dev/mmcard.h
Calls: CardInit() nut/dev/spi_mmc.c
  CardRxData() nut/dev/spi_mmc.c
  SpiMmcUnmount() nut/dev/spi_mmc.c
  atoi() nut/c/stdlib/atoi.c
  free() nut/crt/malloc.c
  strcmp() nut/c/string/strcmp.c
  NutHeapRootAlloc(), calloc()

Global Function SpiMmcUnmount()

int SpiMmcUnmount ( NUTFILE* nfp )
Prototyped in: nut/include/dev/mmcard.h
Calls: free() nut/crt/malloc.c
Called by: SpiMmcMount() nut/dev/spi_mmc.c

Local Function CardAllocate()

static NUTSPIBUS* CardAllocate ( NUTSPINODE* node )
Calls: NutSleep()
Called by: CardTxCommand() nut/dev/spi_mmc.c
References Variables: dummy_tx_buf nut/dev/spi_mmc.c

Local Function CardInit()

static int CardInit ( NUTSPINODE* node )
Calls: CardTxCommand() nut/dev/spi_mmc.c
  NutSleep()
Called by: SpiMmcMount() nut/dev/spi_mmc.c
References Variables: dummy_tx_buf nut/dev/spi_mmc.c

Local Function CardRxData()

static int CardRxData ( NUTSPINODE* node, uint8_t cmd, uint32_t param, uint8_t* buf, int len )
Calls: CardTxCommand() nut/dev/spi_mmc.c
  CardWaitRdy() nut/dev/spi_mmc.c
Called by: SpiMmcBlockRead() nut/dev/spi_mmc.c
  SpiMmcIOCtl() nut/dev/spi_mmc.c
  SpiMmcMount() nut/dev/spi_mmc.c
References Variables: dummy_tx_buf nut/dev/spi_mmc.c

Local Function CardRxTkn()

static uint8_t CardRxTkn ( NUTSPINODE* node )
Calls: NutSleep()
Called by: CardTxCommand() nut/dev/spi_mmc.c
  SpiMmcBlockWrite() nut/dev/spi_mmc.c
References Variables: dummy_tx_buf nut/dev/spi_mmc.c

Local Function CardTxCommand()

static uint16_t CardTxCommand ( NUTSPINODE* node, uint8_t cmd, uint32_t param, int len )
Calls: CardAllocate() nut/dev/spi_mmc.c
  CardRxTkn() nut/dev/spi_mmc.c
Called by: CardInit() nut/dev/spi_mmc.c
  CardRxData() nut/dev/spi_mmc.c
  SpiMmcBlockWrite() nut/dev/spi_mmc.c
  SpiMmcIOCtl() nut/dev/spi_mmc.c
References Variables: dummy_tx_buf nut/dev/spi_mmc.c

Local Function CardWaitRdy()

static uint8_t CardWaitRdy ( NUTSPINODE* node )
Calls: NutSleep()
Called by: CardRxData() nut/dev/spi_mmc.c
References Variables: dummy_tx_buf nut/dev/spi_mmc.c