Included Files
- #include <nut/include/cfg/mmci.h>
- #include <nut/include/errno.h>
- #include </usr/avr/include/string.h>
- #include </usr/avr/include/stdlib.h>
- #include <nut/include/memdebug.h>
- #include <nut/include/sys/heap.h>
- #include <nut/include/sys/timer.h>
- #include <nut/include/sys/event.h>
- #include <nut/include/fs/dospart.h>
- #include <nut/include/fs/fs.h>
- #include <nut/include/dev/blockdev.h>
- #include <nut/include/dev/mmcard.h>
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 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
int MmCardBlockRead ( NUTFILE* nfp, void* buffer, int num )
int MmCardBlockWrite ( NUTFILE* nfp, const void* buffer, int num )
int MmCardBlockWrite_P ( NUTFILE* nfp, const prog_char* buffer, int num )
int MmCardDevInit ( NUTDEVICE* dev )
int MmCardIOCtl ( NUTDEVICE* dev, int req, void* conf )
NUTFILE* MmCardMount ( NUTDEVICE* dev, const char* name, int mode, int acc )
int MmCardUnmount ( NUTFILE* nfp )
static int MmCardGetReg ( MMCIFC* ifc, uint8_t cmd, uint8_t* rbp, int siz )
static int MmCardInit ( MMCIFC* ifc )
static int MmCardReadOrVerify ( MMCIFC* ifc, uint32_t blk, uint8_t* buf, int vflg )
static int MmCardReset ( MMCIFC* ifc )
static uint8_t MmCardRxR1 ( MMCIFC* ifc )
static uint16_t MmCardRxR2 ( MMCIFC* ifc )
static uint8_t MmCardRxR3 ( MMCIFC* ifc, uint32_t* ocr )
static void MmCardTxCmd ( MMCIFC* ifc, uint8_t cmd, uint32_t param )
static int MmCardWrite ( MMCIFC* ifc, uint32_t blk, const uint8_t* buf )