linux下应用层怎么调用SD卡驱动接口

linux下应用层怎么调用SD卡驱动接口,第1张

一般的驱动程序是不允许应用程序调用的,只有当驱动程序留出这种供外界访问的接口才行,这种接口一般包括read,write,open,ioctl等接口,如果驱动中预留出了这些接口,就可以在应用程序中调用,比如fd=open(设备,参数)或者fd=ioctl(设备,参数),这样就会调用到这个设备驱动中的open或者ioctl函数。所以一般如果想再应用程序中调试某个驱动程序,常见的方法就是自己建立一个驱动模块,这个模块中预留出对外接口,比如ioctl。然后在你新建的这个驱动模块中完成ioctl函数,如下:

int device_ioctl(fd,argv) {

/* your function*/

}

static struct file_operations device = {

.ioctl = device_ioctl //预留外部接口

}

应用程序如下:

ioctl(device,argv);

上面这句就可以完成你的模块中ioctl中的功能。

SD/MMC 卡的设备构造差不多,MMC 应该是 SD 的前身,不过 MMC 当时的设计比 SD 小一半。

所以,SD/MMC 的驱动通用,进一步的,Linux 的设备节点就延续了 MMC 的这个名字,后面的 blk 是块设备这个英文的简写, mmcblk 也就是“ mmc/sd 块设备”,0 就是这个 mmc/sd 设备的顺序编号,p1 就是第一个分区。

mmc卡与sd卡的区别:

1、mmc卡和baisd卡的长宽是一样的,SD卡略厚。

2、SD卡的触点比MMC卡多一个,是用于数字版dao权保护(DRM)的。

3、SD卡的侧边比MMC卡多一个写保护的开关。

扩展资料:

SD模式

驱动模式

SD卡有两种驱动模式:SPI模式与SDIO模式。它们所使用的接口信号是不同的。在SPI模式下,只会用到SD卡的4根信号线,即CS、DI、SCLK与DO(分别是SD卡的片选、数据输入、时钟与数据输出)。

传输模式

SD卡共支持三种传输模式:SPI模式(独立序列输入和序列输出),1位SD模式 (独立指令和数据通道,独有的传输格式), 4位SD模式 (使用额外的针脚以及某些重新设置的针脚。支持四位宽的并行传输)。

参考资料:百度百科-SD存储卡


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/6199724.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-17
下一篇 2023-03-17

发表评论

登录后才能评论

评论列表(0条)

保存