2.22. sd
— Secure Digital memory¶
Source code: src/drivers/sd.h, src/drivers/sd.c
Test code: tst/drivers/sd/main.c
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 card.
- 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
¶