File nut/dev/mmcard.c


Included Files


Preprocessor definitions

#define MMC_BLOCK_SIZE 512

#define MMC_MAX_INIT_POLLS 512

#define MMC_MAX_RESET_POLLS 255

#define MMC_MAX_WRITE_POLLS 1024

#define MMC_MAX_WRITE_RETRIES 32

#define MMC_MAX_READ_RETRIES 8

#define MMC_MAX_REG_POLLS 512

#define MMC_MAX_CMDACK_POLLS 1024

#define MMC_MAX_R1_POLLS 1024


Typedef MMCFCB

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

Local Variables

mutex
static HANDLE mutex
Used in: MmCardGetReg()  
  MmCardIOCtl()  
  MmCardInit()  
  MmCardReadOrVerify()  
  MmCardWrite()  

Global Function MmCardBlockRead()

int MmCardBlockRead ( NUTFILE* nfp, void* buffer, int num )
Prototyped in: nut/include/dev/mmcard.h
Calls: MmCardReadOrVerify() nut/dev/mmcard.c
Used in:   nut/arch/arm/dev/spimmc_at91.c

Global Function MmCardBlockWrite()

int MmCardBlockWrite ( NUTFILE* nfp, const void* buffer, int num )
Prototyped in: nut/include/dev/mmcard.h
Calls: MmCardWrite() nut/dev/mmcard.c
Used in:   nut/arch/arm/dev/spimmc_at91.c

Global Function MmCardBlockWrite_P()

int MmCardBlockWrite_P ( NUTFILE* nfp, const prog_char* buffer, int num )
Prototyped in: nut/include/dev/mmcard.h
Used in:   nut/arch/arm/dev/spimmc_at91.c

Global Function MmCardDevInit()

int MmCardDevInit ( NUTDEVICE* dev )
Prototyped in: nut/include/dev/mmcard.h
Called by: At91SpiMmcIfcInit() nut/arch/arm/dev/spimmc_at91.c

Global Function MmCardIOCtl()

int MmCardIOCtl ( NUTDEVICE* dev, int req, void* conf )
Prototyped in: nut/include/dev/mmcard.h
Calls: MmCardGetReg() nut/dev/mmcard.c
  MmCardRxR2() nut/dev/mmcard.c
  MmCardRxR3() nut/dev/mmcard.c
  MmCardTxCmd() nut/dev/mmcard.c
  NutEventPost(), NutEventWait()
Used in:   nut/arch/arm/dev/spimmc_at91.c
References Variables: mutex nut/dev/mmcard.c

Global Function MmCardMount()

NUTFILE* MmCardMount ( NUTDEVICE* dev, const char* name, int mode, int acc )
Prototyped in: nut/include/dev/mmcard.h
Calls: MmCardInit() nut/dev/mmcard.c
  MmCardReadOrVerify() nut/dev/mmcard.c
  MmCardUnmount() nut/dev/mmcard.c
  atoi() nut/c/stdlib/atoi.c
  calloc() nut/crt/calloc.c
  free() nut/crt/malloc.c
  strcmp() nut/c/string/strcmp.c
  NutHeapRootAlloc()
Used in:   nut/arch/arm/dev/spimmc_at91.c

Global Function MmCardUnmount()

int MmCardUnmount ( NUTFILE* nfp )
Prototyped in: nut/include/dev/mmcard.h
Calls: free() nut/crt/malloc.c
Called by: MmCardMount() nut/dev/mmcard.c
Used in:   nut/arch/arm/dev/spimmc_at91.c

Local Function MmCardGetReg()

static int MmCardGetReg ( MMCIFC* ifc, uint8_t cmd, uint8_t* rbp, int siz )
Calls: MmCardRxR1() nut/dev/mmcard.c
  MmCardTxCmd() nut/dev/mmcard.c
  NutEventPost(), NutEventWait()
Called by: MmCardIOCtl() nut/dev/mmcard.c
References Variables: mutex nut/dev/mmcard.c

Local Function MmCardInit()

static int MmCardInit ( MMCIFC* ifc )
Calls: MmCardReset() nut/dev/mmcard.c
  MmCardRxR1() nut/dev/mmcard.c
  MmCardTxCmd() nut/dev/mmcard.c
  NutEventPost(), NutSleep()
Called by: MmCardMount() nut/dev/mmcard.c
References Variables: mutex nut/dev/mmcard.c

Local Function MmCardReadOrVerify()

static int MmCardReadOrVerify ( MMCIFC* ifc, uint32_t blk, uint8_t* buf, int vflg )
Calls: MmCardRxR1() nut/dev/mmcard.c
  MmCardTxCmd() nut/dev/mmcard.c
  NutEventPost(), NutEventWait()
Called by: MmCardBlockRead() nut/dev/mmcard.c
  MmCardMount() nut/dev/mmcard.c
References Variables: mutex nut/dev/mmcard.c

Local Function MmCardReset()

static int MmCardReset ( MMCIFC* ifc )
Calls: MmCardRxR1() nut/dev/mmcard.c
  MmCardTxCmd() nut/dev/mmcard.c
Called by: MmCardInit() nut/dev/mmcard.c

Local Function MmCardRxR1()

static uint8_t MmCardRxR1 ( MMCIFC* ifc )
Called by: MmCardGetReg() nut/dev/mmcard.c
  MmCardInit() nut/dev/mmcard.c
  MmCardReadOrVerify() nut/dev/mmcard.c
  MmCardReset() nut/dev/mmcard.c
  MmCardRxR2() nut/dev/mmcard.c
  MmCardRxR3() nut/dev/mmcard.c
  MmCardWrite() nut/dev/mmcard.c

Local Function MmCardRxR2()

static uint16_t MmCardRxR2 ( MMCIFC* ifc )
Calls: MmCardRxR1() nut/dev/mmcard.c
Called by: MmCardIOCtl() nut/dev/mmcard.c

Local Function MmCardRxR3()

static uint8_t MmCardRxR3 ( MMCIFC* ifc, uint32_t* ocr )
Calls: MmCardRxR1() nut/dev/mmcard.c
Called by: MmCardIOCtl() nut/dev/mmcard.c

Local Function MmCardTxCmd()

static void MmCardTxCmd ( MMCIFC* ifc, uint8_t cmd, uint32_t param )
Calls: NutSleep()
Called by: MmCardGetReg() nut/dev/mmcard.c
  MmCardIOCtl() nut/dev/mmcard.c
  MmCardInit() nut/dev/mmcard.c
  MmCardReadOrVerify() nut/dev/mmcard.c
  MmCardReset() nut/dev/mmcard.c
  MmCardWrite() nut/dev/mmcard.c

Local Function MmCardWrite()

static int MmCardWrite ( MMCIFC* ifc, uint32_t blk, const uint8_t* buf )
Calls: MmCardRxR1() nut/dev/mmcard.c
  MmCardTxCmd() nut/dev/mmcard.c
  NutEventPost(), NutEventWait(), NutSleep()
Called by: MmCardBlockWrite() nut/dev/mmcard.c
References Variables: mutex nut/dev/mmcard.c