全志D1开发(六)SD驱动之SylixOS SD框架

gewenbin
gewenbin
gewenbin
188
文章
15
评论
2022年5月3日12:42:32 评论 941

SylixOS下的SD协议栈的整体框架如下所示:

全志D1开发(六)SD驱动之SylixOS SD框架

  • 最底下是SD控制器硬件,根据具体的实现大致分为两类:一类是SD协议中定义的标准控制器SDHC,比如zynq7000;另一类是各个厂商自己实现的非标准控制器,比如全志的SMHC控制器。
  • 针对两类SD控制器,SD驱动同样分为了两类。SylixOS在内核SD协议栈中也提供了基础的SDHC驱动接口,方便编写具体的SDHC控制器驱动,因为一些厂商虽然控制器整体上是符合SDHC标准的,但是也有一些额外寄存器需要设置,这就需要在内核SDHC基础框架上进行扩展开发具体的驱动。对像全志SMHC这样的完全不符合SDHC标准的控制器,就需要使用SD Core中更底层的接口来编写驱动,这个在后续文章中问哦们再详细的讲解。
  • SylixOS将SD协议栈大致分为了SD Core和SD Client两部分组成。SD Core主要是和底层控制器驱动打交道,为上层的SD Client提供命令发送和数据传输的接口。同时通过SDM来管理上层的Client驱动和底层的Host驱动,达到逻辑上隔离和解耦的目的。
  • 类似于I2C和SPI这类驱动分为主控制器驱动和设备驱动,SD Client层主要就是SD的设备驱动,根据SD设备的用途大致分为两类:存储类(Memory)驱动和SDIO设备类驱动。SD Memory主要就是SD卡这类存储设备的驱动,对下提供了完整的SD卡初始化流程和传输数据的方法,对上提供了符合SylixOS基础块设备的驱动,以让文件系统通过SD驱动读写文件。SDIO设备一般有GPS、WIFI等等,Client中提供了SDIO设备的基础框架,编写具体的SDIO设备驱动时在基础上扩展即可,也可以将SDIO驱动进一步封装成字符设备驱动,让应用层方便去操作。

这里只是简单的列出SylixOS下的SD框架,目的是为了让初学者快速的从全局角度了解SD协议和驱动在整个内核中的上下层次关系。本此SD我们只关心SD Memory的用法,SDIO设备驱动不在这里讲解。更多的关于SylixOS SD驱动的资料请参考《SylixOS设备驱动开发》第20章或者阅读内核源码。

gewenbin
  • 本文由 发表于 2022年5月3日12:42:32
  • 转载请务必保留本文链接:http://www.databusworld.cn/10683.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: