|
|
@@ -13,9 +13,10 @@
|
|
|
|
|
|
static sd_error_enum g_sdio_error = SD_OK;
|
|
|
static int g_sdio_error_line = 0;
|
|
|
-static sd_card_info_struct g_sdio_card_info;
|
|
|
static uint32_t g_sdio_card_status;
|
|
|
static uint32_t g_sdio_clk_kHz;
|
|
|
+static sdio_card_type_enum g_sdio_card_type;
|
|
|
+static uint16_t g_sdio_card_rca;
|
|
|
|
|
|
#define checkReturnOk(call) ((g_sdio_error = (call)) == SD_OK ? true : logSDError(__LINE__))
|
|
|
static bool logSDError(int line)
|
|
|
@@ -39,8 +40,8 @@ bool SdioCard::begin(SdioConfig sdioConfig)
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- return checkReturnOk(sd_card_information_get(&g_sdio_card_info))
|
|
|
- && checkReturnOk(sd_card_select_deselect(g_sdio_card_info.card_rca))
|
|
|
+ return checkReturnOk(sd_card_information_get_short(&g_sdio_card_type, &g_sdio_card_rca))
|
|
|
+ && checkReturnOk(sd_card_select_deselect(g_sdio_card_rca))
|
|
|
&& checkReturnOk(sd_cardstatus_get(&g_sdio_card_status))
|
|
|
&& checkReturnOk(sd_bus_mode_config(SDIO_BUSMODE_4BIT))
|
|
|
&& checkReturnOk(sd_transfer_mode_config(SD_DMA_MODE));
|
|
|
@@ -113,7 +114,9 @@ bool SdioCard::readStop()
|
|
|
|
|
|
uint32_t SdioCard::sectorCount()
|
|
|
{
|
|
|
- return sdCardCapacity((csd_t*)&g_sdio_card_info.card_csd);
|
|
|
+ csd_t csd;
|
|
|
+ sd_csd_get((uint8_t*)&csd);
|
|
|
+ return sdCardCapacity(&csd);
|
|
|
}
|
|
|
|
|
|
uint32_t SdioCard::status()
|
|
|
@@ -163,9 +166,9 @@ bool SdioCard::syncDevice()
|
|
|
|
|
|
uint8_t SdioCard::type() const
|
|
|
{
|
|
|
- if (g_sdio_card_info.card_type == SDIO_HIGH_CAPACITY_SD_CARD)
|
|
|
+ if (g_sdio_card_type == SDIO_HIGH_CAPACITY_SD_CARD)
|
|
|
return SD_CARD_TYPE_SDHC;
|
|
|
- else if (g_sdio_card_info.card_type == SDIO_STD_CAPACITY_SD_CARD_V2_0)
|
|
|
+ else if (g_sdio_card_type == SDIO_STD_CAPACITY_SD_CARD_V2_0)
|
|
|
return SD_CARD_TYPE_SD2;
|
|
|
else
|
|
|
return SD_CARD_TYPE_SD1;
|