From 295f6bf4ab34d16ee620090d3eac383167bafb92 Mon Sep 17 00:00:00 2001 From: jflyper Date: Sun, 11 Aug 2019 14:50:22 +0900 Subject: [PATCH] CardCapacity is in 512 byte blocks (not in bytes) --- src/main/drivers/sdio_f4xx.c | 2 +- src/main/drivers/sdio_f7xx.c | 2 +- src/main/drivers/sdio_h7xx.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/drivers/sdio_f4xx.c b/src/main/drivers/sdio_f4xx.c index 64fc27fdbb..5fc0321608 100644 --- a/src/main/drivers/sdio_f4xx.c +++ b/src/main/drivers/sdio_f4xx.c @@ -908,7 +908,7 @@ SD_Error_t SD_GetCardInfo(void) SD_CardInfo.CardCapacity = (SD_CardInfo.SD_csd.DeviceSize + 1) ; SD_CardInfo.CardCapacity *= (1 << (SD_CardInfo.SD_csd.DeviceSizeMul + 2)); SD_CardInfo.CardBlockSize = 1 << (SD_CardInfo.SD_csd.RdBlockLen); - SD_CardInfo.CardCapacity *= SD_CardInfo.CardBlockSize; + SD_CardInfo.CardCapacity = SD_CardInfo.CardCapacity * SD_CardInfo.CardBlockSize / 512; // In 512 byte blocks } else if(SD_CardType == SD_HIGH_CAPACITY) { diff --git a/src/main/drivers/sdio_f7xx.c b/src/main/drivers/sdio_f7xx.c index c025f0ee8b..64ea3e809b 100644 --- a/src/main/drivers/sdio_f7xx.c +++ b/src/main/drivers/sdio_f7xx.c @@ -890,7 +890,7 @@ SD_Error_t SD_GetCardInfo(void) SD_CardInfo.CardCapacity = (SD_CardInfo.SD_csd.DeviceSize + 1) ; SD_CardInfo.CardCapacity *= (1 << (SD_CardInfo.SD_csd.DeviceSizeMul + 2)); SD_CardInfo.CardBlockSize = 1 << (SD_CardInfo.SD_csd.RdBlockLen); - SD_CardInfo.CardCapacity *= SD_CardInfo.CardBlockSize; + SD_CardInfo.CardCapacity = SD_CardInfo.CardCapacity * SD_CardInfo.CardBlockSize / 512; // In 512 byte blocks } else if(SD_CardType == SD_HIGH_CAPACITY) { diff --git a/src/main/drivers/sdio_h7xx.c b/src/main/drivers/sdio_h7xx.c index 5001300ce9..3d79a4514a 100644 --- a/src/main/drivers/sdio_h7xx.c +++ b/src/main/drivers/sdio_h7xx.c @@ -291,7 +291,7 @@ SD_Error_t SD_GetCardInfo(void) SD_CardInfo.CardCapacity = (SD_CardInfo.SD_csd.DeviceSize + 1) ; SD_CardInfo.CardCapacity *= (1 << (SD_CardInfo.SD_csd.DeviceSizeMul + 2)); SD_CardInfo.CardBlockSize = 1 << (SD_CardInfo.SD_csd.RdBlockLen); - SD_CardInfo.CardCapacity *= SD_CardInfo.CardBlockSize; + SD_CardInfo.CardCapacity = SD_CardInfo.CardCapacity * SD_CardInfo.CardBlockSize / 512; // In 512 byte blocks } else if(SD_CardType == SD_HIGH_CAPACITY) { // Byte 7 Temp = (uint8_t)(SD_Handle.CSD[1] & 0x000000FF);