BK_SDCARD

[English]

BK_SDCARD API Status

API

bk_sdcard_init()

bk_sdcard_deinit()

bk_sdcard_write_blocks()

bk_sdcard_read_blocks()

bk_sdcard_erase()

bk_sdcard_get_card_state()

bk_sdcard_get_card_size()

bk_sdcard_get_card_info()

BK_SDCARD API Reference

Header File

Functions

int32_t bk_sdcard_init(void)

Initializes the sd card.

This API init the sd card:

  • Initialize SDIO peripheral interface with default configuration

  • Identify card operating voltage

  • Card initialization

  • Set block size for card

返回值:
  • 0 – success [BK_RET_OK]

  • other – fail

返回:

result

int32_t bk_sdcard_deinit(void)

Deinit the sd card.

This API deinit the sdio card:

  • sdio host deinit

  • free related software resource

返回值:
  • 0 – success [BK_RET_OK]

  • other – fail

返回:

result

int32_t bk_sdcard_write_blocks(const uint8_t *data, uint32_t block_addr, uint32_t block_num)

Write block(s) to a specified address in a card. The data transfer is managed by blocking mode.

参数:
  • data[in] data pointer to the buffer

  • block_addr[in] block_addr block address where data will be written

  • block_num[in] block_num number of sd blocks to write

返回值:
  • 0 – success [BK_RET_OK]

  • other – fail

返回:

result

int32_t bk_sdcard_read_blocks(uint8_t *data, uint32_t block_addr, uint32_t block_num)

Read block(s) from a specified address in a card. The data transfer is managed by blocking mode.

参数:
  • data[in] data pointer to the buffer

  • block_addr[in] block_addr block address where data will be written

  • block_num[in] block_num number of sd blocks to write

返回值:
  • 0 – success [BK_RET_OK]

  • other – fail

返回:

result

int32_t bk_sdcard_erase(uint32_t start_block_addr, uint32_t end_block_addr)

Erase the specified memory area of the given sd card.

详细描述部分,可提供必要的技术细节

参数:
  • start_block_addr[in] start_block_addr start block address

  • end_block_addr[in] end_block_addr end block address

返回值:
  • 0 – success [BK_RET_OK]

  • other – fail

返回:

result

sdcard_state_e bk_sdcard_get_card_state(void)

Get the current sd card data state.

返回:

card state

uint32_t bk_sdcard_get_card_size(void)

Get the sd card size which unit is sector size(512Bytes) Compute the sd card size which base on card_info.csd.

返回:

  • >0: card size

  • 0: errors.

int32_t bk_sdcard_get_card_info(sdcard_info_t *card_info)

Get the sd card info.

参数:

card_info[in] card_info pointer to the sd_card_info_t structure that will contains the sd card status information

返回值:
  • 0 – success [BK_RET_OK]

  • other – fail

返回:

result

Structures

struct sdcard_info_t

Public Members

uint32_t card_version

the card version

uint32_t card_type

the card version(SDSC/SDHC/SDXC)

uint32_t class_value

the class of card class

uint32_t relative_card_addr

the relaive card address

struct sdcard_csd_t

the sdcard csd info. <<Part1_Physical_Layer_Simplified_Specification_Ver7.10>> CSD registers are tranferred by SDIO sequence is bit[127:96],bit[95:64],bit[63:32],bit[31:0]

Macros

SDCARD_V1_X
SDCARD_V2_X
SD_CARD_TYPE_SDSC
SD_CARD_TYPE_SDHC_SDXC
SD_SUPPORT_BASIC_CMD
SD_SUPPORT_RESERVED_0_CMD
SD_SUPPORT_BLOCK_READ_CMD
SD_SUPPORT_RESERVED_1_CMD
SD_SUPPORT_BLOCK_WRITE_CMD
SD_SUPPORT_ERASE_CMD
SD_SUPPORT_WRITE_PROTECTION_CMD
SD_SUPPORT_LOCK_CARD_CMD
SD_SUPPORT_APPLICATION_CMD
SD_SUPPORT_RESERVED_2_CMD
SD_BLOCK_SIZE
SD_CHECK_PATTERN
SD_OCR_BUSY
SD_OCR_HIGH_CAPACITY
SD_OCR_VOLTAGE_3_2V_3_3V
SD_OCR_VOLTAGE_ALL
SD_DEFAULT_OCR

Enumerations

enum sdcard_state_e

current state of card status, refer to Card Status BIT[12:9]

Values:

enumerator SDCARD_IDLE

card state is idle

enumerator SDCARD_READY

card state is ready

enumerator SDCARD_IDENTIFICATION

card is in identification state

enumerator SDCARD_STANDBY

card is in standby state

enumerator SDCARD_TRANSFER

card is in transfer state

enumerator SDCARD_SENDING

card is sending an operation

enumerator SDCARD_RECEIVING

card is receiving operation information

enumerator SDCARD_PROGRAMMING

card is in programming state

enumerator SDCARD_DISCONNECTED

card is disconnected

enumerator SDCARD_ERROR