LPCOpen Platform
LPCOpen Platform for NXP LPC Microcontrollers
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
SDMMC example

Macros

#define xstrlen(x)   strlen(x)
 
#define xstrcpy(x, y)   strcpy(x, y)
 
#define xmemset(x, y, z)   memset(x, y, z)
 
#define xstrchr(x, y)   strchr(x, y)
 
#define debugstr(str)   DEBUGSTR(str)
 
#define BUFFER_SIZE   4096
 
#define TIME_INTERVAL   1/* 1ms */
 

Functions

static void sdmmc_waitms (uint32_t time)
 
static void sdmmc_setup_wakeup (uint32_t bits)
 Sets up the SD event driven wakeup.
 
static uint32_t sdmmc_irq_driven_wait (void)
 A better wait callback for SDMMC driven by the IRQ flag.
 
static void App_Timer_Init (void)
 
static void App_SDMMC_Init ()
 
void die (FRESULT rc)
 Error processing function: stop with dying message.
 
void SysTick_Handler (void)
 System tick interrupt handler.
 
void SDIO_IRQHandler (void)
 SDIO controller interrupt handler.
 
void RIT_IRQHandler (void)
 RIT interrupt handler sub-routine.
 
DWORD get_fattime ()
 User Provided Timer Function for FatFs module.
 
int main (void)
 Main routine for SDMMC example.
 

Variables

static FATFS Fatfs
 
static FIL Fil
 
static volatile UINT Timer = 0
 
static volatile int32_t sdio_wait_exit = 0
 
static volatile uint32_t u32Milliseconds
 
static volatile uint32_t timerCntms = 0
 
mci_card_struct sdcardinfo
 
DSTATUS disk_initialize (BYTE drv)
 Initialize Disk Drive.
 
DRESULT disk_ioctl (BYTE drv, BYTE ctrl, void *buff)
 Disk Drive miscellaneous Functions.
 
DRESULT disk_read (BYTE drv, BYTE *buff, DWORD sector, BYTE count)
 Read Sector(s)
 
DSTATUS disk_status (BYTE drv)
 Get Disk Status.
 
DRESULT disk_write (BYTE drv, const BYTE *buff, DWORD sector, BYTE count)
 Write Sector(s)
 
void disk_timerproc (void)
 Device timer function.
 

Detailed Description

This example describes how to use the SD/MMC interface with a SD card and a FATFS filesystem.

To use the example, plug a SD card (Hitex A4 board) or microSD card (NGX or Keil boards) and connect a serial cable to the board's RS232/UART port start a terminal program to monitor the port. The terminal program on the host PC should be setup for 115K8N1.

Build procedure: LPCOpen 18xx/43xx build instructions

Supported boards and board setup:

Submit bug reports for LPCOpen code here.

Macro Definition Documentation

#define BUFFER_SIZE   4096

Definition at line 84 of file sdmmc.c.

#define debugstr (   str)    DEBUGSTR(str)

Definition at line 80 of file sdmmc.c.

#define TIME_INTERVAL   1/* 1ms */

Definition at line 101 of file sdmmc.c.

#define xmemset (   x,
  y,
 
)    memset(x, y, z)

Definition at line 73 of file sdmmc.c.

#define xstrchr (   x,
 
)    strchr(x, y)

Definition at line 74 of file sdmmc.c.

#define xstrcpy (   x,
 
)    strcpy(x, y)

Definition at line 72 of file sdmmc.c.

#define xstrlen (   x)    strlen(x)

Definition at line 71 of file sdmmc.c.

Function Documentation

static void App_SDMMC_Init ( void  )
static

Definition at line 167 of file sdmmc.c.

static void App_Timer_Init ( void  )
static

Definition at line 156 of file sdmmc.c.

void die ( FRESULT  rc)

Error processing function: stop with dying message.

Parameters
rc: FatFs return value
Returns
Nothing

Definition at line 220 of file sdmmc.c.

DSTATUS disk_initialize ( BYTE  drv)

Initialize Disk Drive.

Parameters
drv: Physical drive number
Returns
Drive status

Definition at line 113 of file fs_mci.c.

DRESULT disk_ioctl ( BYTE  drv,
BYTE  ctrl,
void *  buff 
)

Disk Drive miscellaneous Functions.

Parameters
drv: Physical drive number
ctrl: Control code
buff: Buffer to send/receive control data
Returns
Drive status

Definition at line 146 of file fs_mci.c.

DRESULT disk_read ( BYTE  drv,
BYTE buff,
DWORD  sector,
BYTE  count 
)

Read Sector(s)

Parameters
drv: Physical drive number
buff: Pointer to the data buffer to store read data
sector: Start sector number (LBA)
count: Sector count (1..255
Returns
Drive status

Definition at line 227 of file fs_mci.c.

DSTATUS disk_status ( BYTE  drv)

Get Disk Status.

Parameters
drv: Physical drive number
Returns
Drive status

Definition at line 244 of file fs_mci.c.

void disk_timerproc ( void  )

Device timer function.

Returns
Nothing This function must be called from timer interrupt routine in period of 10 ms to generate card control timing

Definition at line 272 of file fs_mci.c.

DRESULT disk_write ( BYTE  drv,
const BYTE buff,
DWORD  sector,
BYTE  count 
)

Write Sector(s)

Parameters
drv: Physical drive number
buff: Pointer to the data to be written
sector: Start sector number (LBA)
count: Sector count (1..255
Returns
Drive status

Definition at line 254 of file fs_mci.c.

DWORD get_fattime ( void  )

User Provided Timer Function for FatFs module.

Returns
Nothing This is a real time clock service to be called from FatFs module. Any valid time must be returned even if the system does not support a real time clock. This is not required in read-only configuration.

Definition at line 275 of file sdmmc.c.

int main ( void  )

Main routine for SDMMC example.

Returns
Nothing

Definition at line 295 of file sdmmc.c.

void RIT_IRQHandler ( void  )

RIT interrupt handler sub-routine.

Returns
Nothing

Definition at line 256 of file sdmmc.c.

void SDIO_IRQHandler ( void  )

SDIO controller interrupt handler.

Returns
Nothing

Definition at line 239 of file sdmmc.c.

static uint32_t sdmmc_irq_driven_wait ( void  )
static

A better wait callback for SDMMC driven by the IRQ flag.

Parameters
bits: Status bits to poll for command completion
Returns
0 on success, or failure condition (-1)

Definition at line 142 of file sdmmc.c.

static void sdmmc_setup_wakeup ( uint32_t  bits)
static

Sets up the SD event driven wakeup.

Parameters
bits: Status bits to poll for command completion
Returns
Nothing

Definition at line 128 of file sdmmc.c.

static void sdmmc_waitms ( uint32_t  time)
static

Definition at line 115 of file sdmmc.c.

void SysTick_Handler ( void  )

System tick interrupt handler.

Returns
Nothing

Definition at line 230 of file sdmmc.c.

Variable Documentation

FATFS Fatfs
static

Definition at line 86 of file sdmmc.c.

FIL Fil
static

Definition at line 87 of file sdmmc.c.

mci_card_struct sdcardinfo

Definition at line 108 of file sdmmc.c.

volatile int32_t sdio_wait_exit = 0
static

Definition at line 97 of file sdmmc.c.

volatile UINT Timer = 0
static

Definition at line 96 of file sdmmc.c.

volatile uint32_t timerCntms = 0
static

Definition at line 99 of file sdmmc.c.

volatile uint32_t u32Milliseconds
static

Definition at line 98 of file sdmmc.c.