[quote=引用 9 楼 of123 的回复:] 这里需要分层这个概念。 首先,如果从底层做起,你要借助这些信号线的功能,完成物理层的传输功能函数库,一般称为底层驱动。这些功能函数,是面向逻辑地址进行读写的。(实际上,在 SD 卡的底层,还有将逻辑地址对物理地址转换的 FTL 层和对 Flash 存储器读写的底层操作函数。)你可以将 SD 卡看作可随意读写的存储器。 很多情况下,SD 卡的物理层已经由 MCU 的 SD 接口模块以硬件方式提供了。实际上,如果没有这种模块,你以 GPIO 的方式去实现 SD 卡的读写,很难达到需要的速率。你需要做的,仅仅是利用它所提供的接口调用 SD 卡的物理层规范定义的命令,以及按照协议传输数据。你可以写一套函数来完成 SD 卡数据的写入和读出。 文件系统管理程序,应该建立在物理层的上面。在这一层,你只考虑文件系统数据的架构和维护,认为数据的读写都是天然的。 总结一下,可以这样理解:你所说的这些信号,是连接到 MCU 的 SD 接口模块的,由它来处理。如果你的 MCU 没有这种模块,建议你采用 SPI 模式来连接 SD 卡。因为物理层规范是规定 SD 卡必须支持 SPI 模式,且选择哪种模式由主机端决定。
这里需要分层这个概念。 首先,如果从底层做起,你要借助这些信号线的功能,完成物理层的传输功能函数库,一般称为底层驱动。这些功能函数,是面向逻辑地址进行读写的。(实际上,在 SD 卡的底层,还有将逻辑地址对物理地址转换的 FTL 层和对 Flash 存储器读写的底层操作函数。)你可以将 SD 卡看作可随意读写的存储器。 很多情况下,SD 卡的物理层已经由 MCU 的 SD 接口模块以硬件方式提供了。实际上,如果没有这种模块,你以 GPIO 的方式去实现 SD 卡的读写,很难达到需要的速率。你需要做的,仅仅是利用它所提供的接口调用 SD 卡的物理层规范定义的命令,以及按照协议传输数据。你可以写一套函数来完成 SD 卡数据的写入和读出。 文件系统管理程序,应该建立在物理层的上面。在这一层,你只考虑文件系统数据的架构和维护,认为数据的读写都是天然的。 总结一下,可以这样理解:你所说的这些信号,是连接到 MCU 的 SD 接口模块的,由它来处理。如果你的 MCU 没有这种模块,建议你采用 SPI 模式来连接 SD 卡。因为物理层规范是规定 SD 卡必须支持 SPI 模式,且选择哪种模式由主机端决定。
[quote=引用 楼主 zengzx0107 的回复:] 最近在做一个SD卡文件系统读写,有个问题没搞懂。SD卡和MCU是通过SDIO连接的,也就是WP,CD,SDIO1~SDIO3,CLK等信号连接。如果以文件系统形式读写SD卡,那SD卡的上述几个信号岂不是没作用,我觉得应该是有作用,这其中是怎么关联的啊?
最近在做一个SD卡文件系统读写,有个问题没搞懂。SD卡和MCU是通过SDIO连接的,也就是WP,CD,SDIO1~SDIO3,CLK等信号连接。如果以文件系统形式读写SD卡,那SD卡的上述几个信号岂不是没作用,我觉得应该是有作用,这其中是怎么关联的啊?
[quote=引用 1 楼 jklinux 的回复:] 首先确定一点先,如要读写sd上的内容肯定是需要你所提的信号吧。 sd上文件系统意味着有没有需要读写sd上的内容? 在操作系统里, 硬件由设备驱动负责的吧。 像linux里,sd卡被驱动后,设备驱动会产生设备文件/dev/mmcblk0p1 /dev/mmcblk0p2, 这样设备文件分别对应sd上的逻辑分区。你对sd分区的操作时是mount挂载上来再用的吧,当前对设备文件操作时,实际上是经过设备驱动产生相应的信号与sd卡进行通信的,用户只管调用驱动就可以了,驱动负责底层的信号而已
[quote=引用 3 楼 qq_20553613 的回复:] 1、文件即是数据,通俗理解,把文件当做一堆数据,这堆数据根据我们自己定义的格式写入sd卡,对于最底层同样是一个字节一个字节写入sd卡; 2、对于用户来说,加入文件系统,那么操作最小的单位就是“文件”了,如果想理解文件系统,可以查看源码,比如开源的FAT文件系统。
1、文件即是数据,通俗理解,把文件当做一堆数据,这堆数据根据我们自己定义的格式写入sd卡,对于最底层同样是一个字节一个字节写入sd卡; 2、对于用户来说,加入文件系统,那么操作最小的单位就是“文件”了,如果想理解文件系统,可以查看源码,比如开源的FAT文件系统。
首先确定一点先,如要读写sd上的内容肯定是需要你所提的信号吧。 sd上文件系统意味着有没有需要读写sd上的内容? 在操作系统里, 硬件由设备驱动负责的吧。 像linux里,sd卡被驱动后,设备驱动会产生设备文件/dev/mmcblk0p1 /dev/mmcblk0p2, 这样设备文件分别对应sd上的逻辑分区。你对sd分区的操作时是mount挂载上来再用的吧,当前对设备文件操作时,实际上是经过设备驱动产生相应的信号与sd卡进行通信的,用户只管调用驱动就可以了,驱动负责底层的信号而已
27,511
社区成员
28,797
社区内容
加载中
试试用AI创作助手写篇文章吧