![]() |
![]() |
SD driver interface.
============================================================================
The SD header file should be included in an application as follows:
The SD driver is designed to serve as an interface to perform basic transfers directly to the SD card.
This module serves as the main interface for TI-RTOS applications. Its purpose is to redirect the module's APIs to specific peripheral implementations which are specified using a pointer to a SD_FxnTable.
The SD driver interface module is joined (at link time) to a NULL-terminated array of SD_Config data structures named SD_config. SD_config is implemented in the application with each entry being an instance of a SD peripheral. Each entry in SD_config contains a:
The SD driver interface produces log statements if instrumentation is enabled.
| Diagnostics Mask | Log details |
|---|---|
| Diags_USER1 | basic operations performed |
| Diags_USER2 | detailed operations performed |
#include <stdint.h>Go to the source code of this file.
Data Structures | |
| struct | SD_Params_ |
| SD Parameters. More... | |
| struct | SD_FxnTable_ |
| The definition of a SD function table that contains the required set of functions to control a specific SD driver implementation. More... | |
| struct | SD_Config_ |
| SD Global configuration. More... | |
Macros | |
| #define | SD_CMD_RESERVED (32) |
| #define | SD_STATUS_RESERVED (-32) |
| #define | SD_STATUS_SUCCESS (0) |
| Successful status code returned by SD_control(). More... | |
| #define | SD_STATUS_ERROR (-1) |
| Generic error status code returned by SD_control(). More... | |
| #define | SD_STATUS_UNDEFINEDCMD (-2) |
| An error status code returned by SD_control() for undefined command codes. More... | |
Typedefs | |
| typedef enum SD_CardType_ | SD_CardType |
| SD Card type inserted. More... | |
| typedef struct SD_Config_ * | SD_Handle |
| A handle that is returned from a SD_open() call. More... | |
| typedef struct SD_Params_ | SD_Params |
| SD Parameters. More... | |
| typedef void(* | SD_CloseFxn) (SD_Handle handle) |
| A function pointer to a driver specific implementation of SD_CloseFxn(). More... | |
| typedef int_fast16_t(* | SD_ControlFxn) (SD_Handle handle, uint_fast16_t cmd, void *arg) |
| A function pointer to a driver specific implementation of SD_controlFxn(). More... | |
| typedef uint_fast32_t(* | SD_getNumSectorsFxn) (SD_Handle handle) |
| A function pointer to a driver specific implementation of SD_getNumSectorsFxn(). More... | |
| typedef uint_fast32_t(* | SD_getSectorSizeFxn) (void) |
| A function pointer to a driver specific implementation of SD_getSectorSizeFxn(). More... | |
| typedef void(* | SD_InitFxn) (SD_Handle handle) |
| A function pointer to a driver specific implementation of SD_InitFxn(). More... | |
| typedef int_fast16_t(* | SD_InitializeFxn) (SD_Handle handle) |
| A function pointer to a driver specific implementation of SD_initializeFxn(). More... | |
| typedef SD_Handle(* | SD_OpenFxn) (SD_Handle handle, SD_Params *params) |
| A function pointer to a driver specific implementation of SD_OpenFxn(). More... | |
| typedef int_fast16_t(* | SD_ReadFxn) (SD_Handle handle, void *buf, int_fast32_t sector, uint_fast32_t secCount) |
| A function pointer to a driver specific implementation of SD_readFxn(). More... | |
| typedef int_fast16_t(* | SD_WriteFxn) (SD_Handle handle, const void *buf, int_fast32_t sector, uint_fast32_t secCount) |
| A function pointer to a driver specific implementation of SD_writeFxn(). More... | |
| typedef struct SD_FxnTable_ | SD_FxnTable |
| The definition of a SD function table that contains the required set of functions to control a specific SD driver implementation. More... | |
| typedef struct SD_Config_ | SD_Config |
| SD Global configuration. More... | |
Enumerations | |
| enum | SD_CardType_ { SD_NOCARD = 0, SD_MMC = 1, SD_SDSC = 2, SD_SDHC = 3 } |
| SD Card type inserted. More... | |
Functions | |
| void | SD_close (SD_Handle handle) |
| Function to close a SD peripheral specified by the SD handle. More... | |
| int_fast16_t | SD_control (SD_Handle handle, uint_fast16_t cmd, void *arg) |
| Function performs implementation specific features on a given SD_Handle. More... | |
| uint_fast32_t | SD_getNumSectors (SD_Handle handle) |
| A function pointer to a driver specific implementation of SD_getNumSectors(). Note: Total Card capacity is the (NumberOfSectors * SectorSize). More... | |
| uint_fast32_t | SD_getSectorSize (SD_Handle handle) |
| Function to obtain the sector size used to access the SD card. More... | |
| void | SD_init (void) |
| This function initializes the SD driver. More... | |
| void | SD_Params_init (SD_Params *params) |
| Function to initialize the SD_Params struct to its defaults. More... | |
| int_fast16_t | SD_initialize (SD_Handle handle) |
| A function pointer to a driver specific implementation of SD_initialize(). More... | |
| SD_Handle | SD_open (uint_least8_t index, SD_Params *params) |
| A function pointer to a driver specific implementation of SD_open(). More... | |
| int_fast16_t | SD_read (SD_Handle handle, void *buf, int_fast32_t sector, uint_fast32_t secCount) |
| A function pointer to a driver specific implementation of SD_read(). More... | |
| int_fast16_t | SD_write (SD_Handle handle, const void *buf, int_fast32_t sector, uint_fast32_t secCount) |
| A function pointer to a driver specific implementation of SD_write(). More... | |
| typedef enum SD_CardType_ SD_CardType |
SD Card type inserted.
| typedef struct SD_Config_* SD_Handle |
A handle that is returned from a SD_open() call.
| typedef struct SD_Params_ SD_Params |
SD Parameters.
SD Parameters are used to with the SD_open() call. Default values for these parameters are set using SD_Params_init().
| typedef void(* SD_CloseFxn) (SD_Handle handle) |
A function pointer to a driver specific implementation of SD_CloseFxn().
| typedef int_fast16_t(* SD_ControlFxn) (SD_Handle handle, uint_fast16_t cmd, void *arg) |
A function pointer to a driver specific implementation of SD_controlFxn().
| typedef uint_fast32_t(* SD_getNumSectorsFxn) (SD_Handle handle) |
A function pointer to a driver specific implementation of SD_getNumSectorsFxn().
| typedef uint_fast32_t(* SD_getSectorSizeFxn) (void) |
A function pointer to a driver specific implementation of SD_getSectorSizeFxn().
| typedef void(* SD_InitFxn) (SD_Handle handle) |
A function pointer to a driver specific implementation of SD_InitFxn().
| typedef int_fast16_t(* SD_InitializeFxn) (SD_Handle handle) |
A function pointer to a driver specific implementation of SD_initializeFxn().
A function pointer to a driver specific implementation of SD_OpenFxn().
| typedef int_fast16_t(* SD_ReadFxn) (SD_Handle handle, void *buf, int_fast32_t sector, uint_fast32_t secCount) |
A function pointer to a driver specific implementation of SD_readFxn().
| typedef int_fast16_t(* SD_WriteFxn) (SD_Handle handle, const void *buf, int_fast32_t sector, uint_fast32_t secCount) |
A function pointer to a driver specific implementation of SD_writeFxn().
| typedef struct SD_FxnTable_ SD_FxnTable |
The definition of a SD function table that contains the required set of functions to control a specific SD driver implementation.
| typedef struct SD_Config_ SD_Config |
| enum SD_CardType_ |
| void SD_close | ( | SD_Handle | handle | ) |
| int_fast16_t SD_control | ( | SD_Handle | handle, |
| uint_fast16_t | cmd, | ||
| void * | arg | ||
| ) |
Function performs implementation specific features on a given SD_Handle.
Commands for SD_control can originate from SD.h or from implementation specific SD*.h (SDHostCC32XX.h etc.. ) files. While commands from SD.h are API portable across driver implementations, not all implementations may support all these commands. Conversely, commands from driver implementation specific SD*.h files add unique driver capabilities but are not API portable across all SD driver implementations.
Commands supported by SD.h follow a SD*_CMD naming convention.
Commands supported by SD*.h follow a SD*_CMD naming convention. Each control command defines arg differently. The types of arg are documented with each command.
See SD_control command codes for command codes.
See SD_control return status codes for status codes.
| handle | A SD handle returned from SD_open(). |
| cmd | SD.h or SD*.h commands. |
| arg | An optional R/W (read/write) command argument accompanied with cmd. |
| uint_fast32_t SD_getNumSectors | ( | SD_Handle | handle | ) |
A function pointer to a driver specific implementation of SD_getNumSectors(). Note: Total Card capacity is the (NumberOfSectors * SectorSize).
| handle | A SD handle returned from SD_open(). |
| uint_fast32_t SD_getSectorSize | ( | SD_Handle | handle | ) |
Function to obtain the sector size used to access the SD card.
| handle | A SD handle returned from SD_open(). |
| void SD_init | ( | void | ) |
This function initializes the SD driver.
| void SD_Params_init | ( | SD_Params * | params | ) |
Function to initialize the SD_Params struct to its defaults.
| params | A pointer to SD_Params structure for initialization. |
| int_fast16_t SD_initialize | ( | SD_Handle | handle | ) |
A function pointer to a driver specific implementation of SD_initialize().
| handle | A SD handle returned from SD_open(). |
A function pointer to a driver specific implementation of SD_open().
| index | Logical peripheral number for the SD indexed into the SD_config table. |
| params | Pointer to a parameter block, if NULL it will use default values. All the fields in this structure are RO (read-only). |
| int_fast16_t SD_read | ( | SD_Handle | handle, |
| void * | buf, | ||
| int_fast32_t | sector, | ||
| uint_fast32_t | secCount | ||
| ) |
A function pointer to a driver specific implementation of SD_read().
| handle | A SD handle returned from SD_open(). |
| buf | Pointer to a buffer to read data into. |
| sector | Starting sector on the disk to read from. |
| secCount | Number of sectors to be read. |
| int_fast16_t SD_write | ( | SD_Handle | handle, |
| const void * | buf, | ||
| int_fast32_t | sector, | ||
| uint_fast32_t | secCount | ||
| ) |
A function pointer to a driver specific implementation of SD_write().
| handle | A SD handle returned from SD_open(). |
| buf | Pointer to a buffer containing data to write to disk. |
| sector | Starting sector on the disk to write to. |
| secCount | Number of sectors to be written. |