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. |
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.
[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. |
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.
This function only works if the following conditions are met:
[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. |
uint8_t sd_raw_write | ( | uint32_t | offset, | |
const uint8_t * | buffer, | |||
uint16_t | length | |||
) |
Writes raw data to the card.
[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. |
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.
[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. |
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.
This function reads and returns the card's registers containing manufacturing and status information.
[in] | info | A pointer to the structure into which to save the information. |