2.18. sd — Secure Digital memory¶
Source code: src/drivers/sd.h, src/drivers/sd.c
Test code: tst/drivers/sd/main.c
- Version
- 7.0.0
Defines
-
SD_ERR_NORESPONSE_WAIT_FOR_DATA_START_BLOCK¶
-
SD_ERR_GO_IDLE_STATE¶
-
SD_ERR_CRC_ON_OFF¶
-
SD_ERR_SEND_IF_COND¶
-
SD_ERR_CHECK_PATTERN¶
-
SD_ERR_SD_SEND_OP_COND¶
-
SD_ERR_READ_OCR¶
-
SD_ERR_READ_COMMAND¶
-
SD_ERR_READ_DATA_START_BLOCK¶
-
SD_ERR_READ_WRONG_DATA_CRC¶
-
SD_ERR_WRITE_BLOCK¶
-
SD_ERR_WRITE_BLOCK_TOKEN_DATA_RES_ACCEPTED¶
-
SD_ERR_WRITE_BLOCK_WAIT_NOT_BUSY¶
-
SD_ERR_WRITE_BLOCK_SEND_STATUS¶
-
SD_BLOCK_SIZE¶
-
SD_CCC(csd_p)¶
-
SD_C_SIZE(csd_p)¶
-
SD_C_SIZE_MULT(csd_p)¶
-
SD_SECTOR_SIZE(csd_p)¶
-
SD_WRITE_BL_LEN(csd_p)¶
-
SD_CSD_STRUCTURE_V1¶
-
SD_CSD_STRUCTURE_V2¶
Functions
-
int
sd_init(struct sd_driver_t *self_p, struct spi_driver_t *spi_p)¶ Initialize given driver object.
- Return
- zero(0) or negative error code.
- Parameters
self_p-Driver object to initialize.
-
int
sd_start(struct sd_driver_t *self_p)¶ Start given SD card driver. This resets the SD card and performs the initialization sequence.
- Return
- zero(0) or negative error code.
- Parameters
self_p-Initialized driver object.
-
int
sd_stop(struct sd_driver_t *self_p)¶ Stop given SD card driver.
- Return
- zero(0) or negative error code.
- Parameters
self_p-Initialized driver object.
-
ssize_t
sd_read_cid(struct sd_driver_t *self_p, struct sd_cid_t *cid_p)¶ Read card CID register. The CID contains card identification information such as Manufacturer ID, Product name, Product serial number and Manufacturing date.
- Return
- zero(0) or negative error code.
- Parameters
self_p-Initialized driver object.
cid-pointer to cid data store.
-
ssize_t
sd_read_csd(struct sd_driver_t *self_p, union sd_csd_t *csd_p)¶ Read card CSD register. The CSD contains that provides information regarding access to the card’s contents.
- Return
- zero(0) or negative error code.
- Parameters
self_p-Initialized driver object.
csd-pointer to csd data store.
-
ssize_t
sd_read_block(struct sd_driver_t *self_p, void *dst_p, uint32_t src_block)¶ Read given block from SD card.
- Return
- Number of read bytes or negative error code.
- Parameters
self_p-Initialized driver object.
buf_p-Buffer to read into.
src_block-Block to read from.
-
ssize_t
sd_write_block(struct sd_driver_t *self_p, uint32_t dst_block, const void *src_p)¶ Write data to the SD bus.
- Return
- Number of written bytes or negative error code.
- Parameters
self_p-Initialized driver object.
dst_block-Block to write to.
src_p-Buffer to write.
Variables
-
struct sd_csd_v2_t
PACKED¶
-
struct
sd_cid_t¶
-
struct
sd_csd_v1_t¶ Public Members
-
uint8_t
reserved1¶
-
uint8_t
csd_structure¶
-
uint8_t
taac¶
-
uint8_t
nsac¶
-
uint8_t
tran_speed¶
-
uint8_t
ccc_high¶
-
uint8_t
read_bl_len¶
-
uint8_t
ccc_low¶
-
uint8_t
c_size_high¶
-
uint8_t
reserved2¶
-
uint8_t
dsr_imp¶
-
uint8_t
read_blk_misalign¶
-
uint8_t
write_blk_misalign¶
-
uint8_t
read_bl_partial¶
-
uint8_t
c_size_mid¶
-
uint8_t
vdd_r_curr_max¶
-
uint8_t
vdd_r_curr_min¶
-
uint8_t
c_size_low¶
-
uint8_t
c_size_mult_high¶
-
uint8_t
vdd_w_curr_max¶
-
uint8_t
vdd_w_curr_min¶
-
uint8_t
sector_size_high¶
-
uint8_t
erase_blk_en¶
-
uint8_t
c_size_mult_low¶
-
uint8_t
wp_grp_size¶
-
uint8_t
sector_size_low¶
-
uint8_t
write_bl_len_high¶
-
uint8_t
r2w_factor¶
-
uint8_t
reserved3¶
-
uint8_t
wp_grp_enable¶
-
uint8_t
reserved4¶
-
uint8_t
write_bl_partial¶
-
uint8_t
write_bl_len_low¶
-
uint8_t
reserved5¶
-
uint8_t
file_format¶
-
uint8_t
tmp_write_protect¶
-
uint8_t
perm_write_protect¶
-
uint8_t
copy¶
-
uint8_t
file_format_grp¶
-
uint8_t
crc¶
-
uint8_t
-
struct
sd_csd_v2_t¶ Public Members
-
uint8_t
reserved1¶
-
uint8_t
csd_structure¶
-
uint8_t
taac¶
-
uint8_t
nsac¶
-
uint8_t
tran_speed¶
-
uint8_t
ccc_high¶
-
uint8_t
read_bl_len¶
-
uint8_t
ccc_low¶
-
uint8_t
reserved2¶
-
uint8_t
dsr_imp¶
-
uint8_t
read_blk_misalign¶
-
uint8_t
write_blk_misalign¶
-
uint8_t
read_bl_partial¶
-
uint8_t
c_size_high¶
-
uint8_t
reserved3¶
-
uint8_t
c_size_mid¶
-
uint8_t
c_size_low¶
-
uint8_t
sector_size_high¶
-
uint8_t
erase_blk_en¶
-
uint8_t
reserved4¶
-
uint8_t
wp_grp_size¶
-
uint8_t
sector_size_low¶
-
uint8_t
write_bl_len_high¶
-
uint8_t
r2w_factor¶
-
uint8_t
reserved5¶
-
uint8_t
wp_grp_enable¶
-
uint8_t
reserved6¶
-
uint8_t
write_bl_partial¶
-
uint8_t
write_bl_len_low¶
-
uint8_t
reserved7¶
-
uint8_t
file_format¶
-
uint8_t
tmp_write_protect¶
-
uint8_t
perm_write_protect¶
-
uint8_t
copy¶
-
uint8_t
file_format_grp¶
-
uint8_t
crc¶
-
uint8_t
-
union
sd_csd_t¶
-
struct
sd_driver_t¶