Included Files
- #include <nut/include/cfg/mmci.h>
- #include <nut/include/sys/nutdebug.h>
- #include <nut/include/errno.h>
- #include <nut/include/include2/string.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/spibus.h>
- #include <nut/include/dev/mmcard.h>
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 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]
int SpiMmcBlockRead ( NUTFILE* nfp, void* buffer, int num )
int SpiMmcBlockWrite ( NUTFILE* nfp, const void* buffer, int num )
int SpiMmcBlockWrite_P ( NUTFILE* nfp, const char* buffer, int num )
int SpiMmcIOCtl ( NUTDEVICE* dev, int req, void* conf )
int SpiMmcInit ( NUTDEVICE* dev )
NUTFILE* SpiMmcMount ( NUTDEVICE* dev, const char* name, int mode, int acc )
int SpiMmcUnmount ( NUTFILE* nfp )
static NUTSPIBUS* CardAllocate ( NUTSPINODE* node )
static int CardInit ( NUTSPINODE* node )
static int CardRxData ( NUTSPINODE* node, uint8_t cmd, uint32_t param, uint8_t* buf, int len )
static uint8_t CardRxTkn ( NUTSPINODE* node )
static uint16_t CardTxCommand ( NUTSPINODE* node, uint8_t cmd, uint32_t param, int len )
static uint8_t CardWaitRdy ( NUTSPINODE* node )