SDMMC 主机外设
概述
SDMMC 外设支持SD卡、MMC卡和SDIO卡。SDMMC的软件是基于SDMMC驱动之上的,由下面几个部分组成。
SDMMC主机外设(driver/sdmmc_host.h)---驱动支持APIs接口发送命令到从机设备,发送和接受数据,处理条件错误。
SDMMC协议层(sdmmc_cmd.h)---该组件处理SD协议的细节,初始化SD卡和数据数据传输的命令。尽管当前只支持SD (SDSC/SDHC/SDXC) 卡,在将来会支持MCC/eMMC卡。
协议层与主机通过sdmmc_host_t结构建立联系。这个结构包含指向各种功能的主机。这个设计可以实现SD主机使用SPI接口。
应用程序示例
在examples/storage/sd_card这个实例中将SDMMC驱动和FATFS文件系统结合在了一起。这个实例实现了初始化SD卡使用POSIX 和 C库APIs接口来写读数据。看实例中的README.md文件获取更多的信息
协议层APIs接口
协议层获取到描述SDMMC主机驱动sdmmc_host_t结构体,列表它的功能,并且提供了指向驱动函数的指针,协议层特定SD卡信息存储在sdmmc_card_t结构中。当发送命令到SDMMC主机驱动程序,协议层使用sdmmc_command_t结构来描述命令,参数,将返回值,和数据传输,如果任何。
正常使用的协议层如下:
1、调用主机驱动程序函数来初始化主机(例如sdmmc_host_init、sdmmc_host_init_slot)。
2、调用sdmmc_card_init来初始化SD,传递主机驱动信息和sdmmc_card_t结构体信息(作为参数)
3、使用sdmmc_read_sectors sdmmc_write_sectors读写卡扇区,,传递卡信息结构的指针(卡)。
4、当不再使用SD卡时,调用主机驱动程序函数失能SDMMC主机外围和释放资源分配的驱动程序(例如sdmmc_host_deinit)。
5、大多数应用程序需要使用协议层只有一个任务;因此协议层不实现任何锁定sdmmc_card_t结构,或当访问SDMMC主机驱动程序。这种锁是实现更高的层,必要时(如文件系统驱动程序)。
结构体 sdmmc_host_t
SDMMC主机描述
这个结构体定义了SDMMC主机的属性和功能,可由上层使用。
公共成员
uint32_t flags
1、定义主机属性标志
int slot
2、接口槽数&
概述
SDMMC 外设支持SD卡、MMC卡和SDIO卡。SDMMC的软件是基于SDMMC驱动之上的,由下面几个部分组成。
SDMMC主机外设(driver/sdmmc_host.h)---驱动支持APIs接口发送命令到从机设备,发送和接受数据,处理条件错误。
SDMMC协议层(sdmmc_cmd.h)---该组件处理SD协议的细节,初始化SD卡和数据数据传输的命令。尽管当前只支持SD (SDSC/SDHC/SDXC) 卡,在将来会支持MCC/eMMC卡。
协议层与主机通过sdmmc_host_t结构建立联系。这个结构包含指向各种功能的主机。这个设计可以实现SD主机使用SPI接口。
应用程序示例
在examples/storage/sd_card这个实例中将SDMMC驱动和FATFS文件系统结合在了一起。这个实例实现了初始化SD卡使用POSIX 和 C库APIs接口来写读数据。看实例中的README.md文件获取更多的信息
协议层APIs接口
协议层获取到描述SDMMC主机驱动sdmmc_host_t结构体,列表它的功能,并且提供了指向驱动函数的指针,协议层特定SD卡信息存储在sdmmc_card_t结构中。当发送命令到SDMMC主机驱动程序,协议层使用sdmmc_command_t结构来描述命令,参数,将返回值,和数据传输,如果任何。
正常使用的协议层如下:
1、调用主机驱动程序函数来初始化主机(例如sdmmc_host_init、sdmmc_host_init_slot)。
2、调用sdmmc_card_init来初始化SD,传递主机驱动信息和sdmmc_card_t结构体信息(作为参数)
3、使用sdmmc_read_sectors sdmmc_write_sectors读写卡扇区,,传递卡信息结构的指针(卡)。
4、当不再使用SD卡时,调用主机驱动程序函数失能SDMMC主机外围和释放资源分配的驱动程序(例如sdmmc_host_deinit)。
5、大多数应用程序需要使用协议层只有一个任务;因此协议层不实现任何锁定sdmmc_card_t结构,或当访问SDMMC主机驱动程序。这种锁是实现更高的层,必要时(如文件系统驱动程序)。
结构体 sdmmc_host_t
SDMMC主机描述
这个结构体定义了SDMMC主机的属性和功能,可由上层使用。
公共成员
uint32_t flags
1、定义主机属性标志
int slot
2、接口槽数&