MMC/SD card raw access
[MMC/SD memory card interface]


Detailed Description

This module implements read and write access to MMC and SD cards.

It serves as a low-level driver for the higher level modules such as partition and file system access.


Files

file  sd_raw.c
 MMC/SD raw access implementation (license: GPLv2 or LGPLv2.1).
file  sd_raw.h
 MMC/SD raw access header (license: GPLv2 or LGPLv2.1).
file  sd_raw_config.h
 MMC/SD support configuration (license: GPLv2 or LGPLv2.1).

Modules

 MMC/SD configuration
 Preprocessor defines to configure the MMC/SD support.

Data Structures

struct  sd_raw_info
 This struct is used by sd_raw_get_info() to return manufacturing and status information of the card. More...

Defines

#define SD_RAW_FORMAT_HARDDISK
 The card's layout is harddisk-like, which means it contains a master boot record with a partition table.
#define SD_RAW_FORMAT_SUPERFLOPPY
 The card contains a single filesystem and no partition table.
#define SD_RAW_FORMAT_UNIVERSAL
 The card's layout follows the Universal File Format.
#define SD_RAW_FORMAT_UNKNOWN
 The card's layout is unknown.

Functions

uint8_t sd_raw_init ()
 Initializes memory card communication.
uint8_t sd_raw_available ()
 Checks wether a memory card is located in the slot.
uint8_t sd_raw_locked ()
 Checks wether the memory card is locked for write access.
uint8_t sd_raw_read (uint32_t offset, uint8_t *buffer, uint16_t length)
 Reads raw data from the card.
uint8_t sd_raw_read_interval (uint32_t offset, uint8_t *buffer, uint16_t interval, uint16_t length, sd_raw_read_interval_handler_t callback, void *p)
 Continuously reads units of interval bytes and calls a callback function.
uint8_t sd_raw_write (uint32_t offset, const uint8_t *buffer, uint16_t length)
 Writes raw data to the card.
uint8_t sd_raw_write_interval (uint32_t offset, uint8_t *buffer, uint16_t length, sd_raw_write_interval_handler_t callback, void *p)
 Writes a continuous data stream obtained from a callback function.
uint8_t sd_raw_sync ()
 Writes the write buffer's content to the card.
uint8_t sd_raw_get_info (struct sd_raw_info *info)
 Reads informational data from the card.


Function Documentation

uint8_t sd_raw_init (  ) 

Initializes memory card communication.

Returns:
0 on failure, 1 on success.

uint8_t sd_raw_available (  ) 

Checks wether a memory card is located in the slot.

Returns:
1 if the card is available, 0 if it is not.

uint8_t sd_raw_locked (  ) 

Checks wether the memory card is locked for write access.

Returns:
1 if the card is locked, 0 if it is not.

uint8_t sd_raw_read ( uint32_t  offset,
uint8_t *  buffer,
uint16_t  length 
)

Reads raw data from the card.

Parameters:
[in] offset The offset from which to read.
[out] buffer The buffer into which to write the data.
[in] length The number of bytes to read.
Returns:
0 on failure, 1 on success.
See also:
sd_raw_read_interval, sd_raw_write, sd_raw_write_interval

uint8_t sd_raw_read_interval ( uint32_t  offset,
uint8_t *  buffer,
uint16_t  interval,
uint16_t  length,
sd_raw_read_interval_handler_t  callback,
void *  p 
)

Continuously reads units of interval bytes and calls a callback function.

This function starts reading at the specified offset. Every interval bytes, it calls the callback function with the associated data buffer.

By returning zero, the callback may stop reading.

Note:
Within the callback function, you can not start another read or write operation.

This function only works if the following conditions are met:

  • (offset - (offset % 512)) % interval == 0
  • length % interval == 0
Parameters:
[in] offset Offset from which to start reading.
[in] buffer Pointer to a buffer which is at least interval bytes in size.
[in] interval Number of bytes to read before calling the callback function.
[in] length Number of bytes to read altogether.
[in] callback The function to call every interval bytes.
[in] p An opaque pointer directly passed to the callback function.
Returns:
0 on failure, 1 on success
See also:
sd_raw_write_interval, sd_raw_read, sd_raw_write

uint8_t sd_raw_write ( uint32_t  offset,
const uint8_t *  buffer,
uint16_t  length 
)

Writes raw data to the card.

Note:
If write buffering is enabled, you might have to call sd_raw_sync() before disconnecting the card to ensure all remaining data has been written.
Parameters:
[in] offset The offset where to start writing.
[in] buffer The buffer containing the data to be written.
[in] length The number of bytes to write.
Returns:
0 on failure, 1 on success.
See also:
sd_raw_write_interval, sd_raw_read, sd_raw_read_interval

uint8_t sd_raw_write_interval ( uint32_t  offset,
uint8_t *  buffer,
uint16_t  length,
sd_raw_write_interval_handler_t  callback,
void *  p 
)

Writes a continuous data stream obtained from a callback function.

This function starts writing at the specified offset. To obtain the next bytes to write, it calls the callback function. The callback fills the provided data buffer and returns the number of bytes it has put into the buffer.

By returning zero, the callback may stop writing.

Parameters:
[in] offset Offset where to start writing.
[in] buffer Pointer to a buffer which is used for the callback function.
[in] length Number of bytes to write in total. May be zero for endless writes.
[in] callback The function used to obtain the bytes to write.
[in] p An opaque pointer directly passed to the callback function.
Returns:
0 on failure, 1 on success
See also:
sd_raw_read_interval, sd_raw_write, sd_raw_read

uint8_t sd_raw_sync (  ) 

Writes the write buffer's content to the card.

Note:
When write buffering is enabled, you should call this function before disconnecting the card to ensure all remaining data has been written.
Returns:
0 on failure, 1 on success.
See also:
sd_raw_write

uint8_t sd_raw_get_info ( struct sd_raw_info info  ) 

Reads informational data from the card.

This function reads and returns the card's registers containing manufacturing and status information.

Note:
: The information retrieved by this function is not required in any way to operate on the card, but it might be nice to display some of the data to the user.
Parameters:
[in] info A pointer to the structure into which to save the information.
Returns:
0 on failure, 1 on success.


Generated on Thu May 22 18:12:37 2008 for mega-eth by  doxygen 1.5.5