STM32F4 + eMMC 之 EXT_CSD寄存器读取和写入(修正)

参照 JEDEC  eMMC标准:JESD84-B51 (Revision of JESD84-B50.1, July 2014)

基于STM32Cube_FW_F4_V1.21.0库修改(stm32f4xx_hal_mmc.h),4bit模式,其他与SD卡驱动类似。实测写入速度

1MB/s左右。

容量计算:

Capacity = (hmmc->MmcCard.EmmcExtCsd.EXT_CSD.SEC_COUNT[3] << 24 |

 hmmc->MmcCard.EmmcExtCsd.EXT_CSD.SEC_COUNT[2] << 16 |
 hmmc->MmcCard.EmmcExtCsd.EXT_CSD.SEC_COUNT[1] << 8   |

 hmmc->MmcCard.EmmcExtCsd.EXT_CSD.SEC_COUNT[0]) × BlockSize(512)

 

typedef union
{
        struct _EXT_CSD
        {
            __IO uint8_t    Reserved19[15];
            __IO uint8_t    CMDQ_MODE_EN;
            __IO uint8_t    SECURE_REMOVAL_TYPE;
            __IO uint8_t    PRODUCT_STATE_AWARENESS_ENABLEMENT;
            __IO uint8_t    MAX_PRE_LOADING_DATA_SIZE[4];
            __IO uint8_t    PRE_LOADING_DATA_SIZE[4];
            __IO uint8_t    FFU_STATUS;
            __IO uint8_t    Reserved18[2];
            __IO uint8_t    MODE_OPERATION_CODES;
            __IO uint8_t    MODE_CONFIG;
            __IO uint8_t    BARRIER_CTRL;
            __IO uint8_t     FLUSH_CACHE;
            __IO uint8_t     CACHE_CTRL;
            __IO uint8_t     POWER_OFF_NOTIFICATION;
            __IO uint8_t     PACKED_FAILURE_INDEX;
            __IO uint8_t     PACKED_COMMAND_STATUS;
            __IO uint8_t     CONTEXT_CONF[15];
            __IO uint8_t     EXT_PARTITIONS_ATTRIBUTE[2];
            __IO uint8_t     EXCEPTION_EVENTS_STATUS[2];
            __IO uint8_t     EXCEPTION_EVENTS_CTRL[2];
            __IO uint8_t     DYNCAP_NEEDED;
            __IO uint8_t     CLASS_6_CTRL;
            __IO uint8_t     INI_TIMEOUT_EMU;
            __IO uint8_t     DATA_SECTOR_SIZE;
            __IO uint8_t     USE_NATIVE_SECTOR;
            __IO uint8_t     NATIVE_SECTOR_SIZE;
            __IO uint8_t     VENDOR_SPECIFIC_FIELD[64];
            __IO uint8_t    Reserved17[2];
            __IO uint8_t     PROGRAM_CID_CSD_DDR_SUPPORT;
            __IO uint8_t     PERIODIC_WAKEUP;
            __IO uint8_t     TCASE_SUPPORT;
            __IO uint8_t    PRODUCTION_STATE_AWARENESS;
            __IO uint8_t     SEC_BAD_BLK_MGMNT;
            __IO uint8_t    Reserved16;
            __IO uint8_t     ENH_START_ADDR[4];
            __IO uint8_t     ENH_SIZE_MULT[3];
            __IO uint8_t     GP_SIZE_MULT[12];
            __IO uint8_t     PARTITION_SETTING_COMPLET

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值