首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux mmc 读写

Linux MMC(MultiMediaCard)读写基础概念及问题解决

基础概念

MMC是一种存储卡标准,广泛应用于嵌入式系统、数码相机、手机等设备中。在Linux系统中,MMC设备通常被识别为/dev/mmcblk*/dev/mtd*设备。

优势

  • 体积小:MMC卡体积小巧,适合嵌入式设备。
  • 容量大:现代MMC卡容量可达数百GB。
  • 速度快:支持高速读写,适合需要快速数据交换的应用。
  • 兼容性:广泛兼容各种设备和系统。

类型

  • SD卡:Secure Digital Card,是最常见的MMC类型。
  • eMMC:Embedded MMC,集成在设备内部,通常用于智能手机和平板电脑。
  • SDIO:Secure Digital Input Output,支持更多功能,如Wi-Fi模块。

应用场景

  • 嵌入式系统:如路由器、智能家居设备。
  • 移动设备:如智能手机、平板电脑。
  • 数码相机:用于存储照片和视频。

常见问题及解决方法

1. MMC设备无法识别

原因:可能是硬件连接问题、驱动问题或设备故障。 解决方法

  • 检查硬件连接是否牢固。
  • 确认内核是否包含相应的驱动,可以通过lsmod | grep mmc查看。
  • 更新内核或驱动程序。

示例代码

代码语言:txt
复制
# 检查MMC设备
ls /dev/mmc*

# 加载MMC驱动
modprobe mmc_core
modprobe mmc_block
2. MMC读写速度慢

原因:可能是文件系统碎片、设备老化或驱动问题。 解决方法

  • 使用fsck检查和修复文件系统。
  • 格式化MMC卡,使用更高效的文件系统如ext4FAT32
  • 更新驱动程序。

示例代码

代码语言:txt
复制
# 检查和修复文件系统
fsck /dev/mmcblk0p1

# 格式化MMC卡
mkfs.ext4 /dev/mmcblk0p1
3. MMC设备写保护

原因:可能是硬件写保护开关被打开,或文件系统错误。 解决方法

  • 检查MMC卡的物理写保护开关。
  • 使用hdparmmmc命令检查和解除写保护。

示例代码

代码语言:txt
复制
# 检查写保护状态
hdparm -r /dev/mmcblk0

# 解除写保护(如果支持)
hdparm -r0 /dev/mmcblk0
4. MMC设备读写错误

原因:可能是设备故障、文件系统错误或驱动问题。 解决方法

  • 使用dmesg查看内核日志,定位错误信息。
  • 使用fsck检查和修复文件系统。
  • 更新驱动程序或更换MMC卡。

示例代码

代码语言:txt
复制
# 查看内核日志
dmesg | grep mmc

# 检查和修复文件系统
fsck /dev/mmcblk0p1

通过以上方法,可以有效解决Linux系统中MMC设备的读写问题。如果问题依然存在,建议进一步检查硬件或寻求专业技术支持。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux MMC 开发指南

寄存器信息 5.1.2.2 2.emmc 信息 5.1.2.3 3、性能验证节点 5.2 常见问题 Linux MMC 开发指南 1 前言 1.1 文档简介 介绍 Linux 内核中 SD/MMC 子系统的接口及使用方法...1.3 适用范围 产品名称 内核版本 驱动文件 A133 Linux-5.4 sunxi_mmc* h616 Linux-5.4 sunxi_mmc* v853 Linux-4.9 sunxi_mmc*...R853 Linux-4.9 sunxi_mmc* F133 Linux-5.4 sunxi_mmc* 2 模块介绍 2.1 模块功能介绍 Linux 提供了 MMC 子系统来实现对各种 SD/MMC...MMC/SD card 层负主要是按照 LINUX 块设备驱动程序的框架实现一个卡的块设备驱动。负责块设备请求的处理,以及请求队列的管理。...MMC/SD core 层负责通信协议的处理,包括 SD/MMC/eMMC/SDIO,为上一层提供具体读写接口,同时为下一层提供 host 端接口。

3K20
  • linux读写锁

    读写锁 与互斥量类似,但读写锁允许更高的并行性。其特性为:写独占,读共享。 读写锁状态: 一把读写锁具备三种状态: 1. 读模式下加锁状态 (读锁) 2. 写模式下加锁状态 (写锁) 3....不加锁状态 读写锁特性: 1. 读写锁是“写模式加锁”时, 解锁前,所有对该锁加锁的线程都会被阻塞。 2....那么读写锁会阻塞随后的读模式锁请求。优先满足写模式锁。读锁、写锁并行阻塞,写锁优先级高 读写锁也叫共享-独占锁。当读写锁以读模式锁住时,它是以共享模式锁住的;当它以写模式锁住时,它是以独占模式锁住的。...读写锁非常适合于对数据结构读的次数远大于写的情况。...函数 以读方式请求读写锁。

    3.3K30

    linux读写锁_共享内存读写锁

    一、读写锁是什么?...读写锁其实还是一种锁,是给一段临界区代码加锁,但是此加锁是在进行写操作的时候才会互斥,而在进行读的时候是可以共享的进行访问临界区的 ps:读写锁本质上是一种自旋锁 二、为什么需要读写锁?...如果每次操作都给此段代码加锁,太浪费时间了而且也很浪费资源,降低程序的效率,因为读操作不会修改数据,只是做一些查询,所以在读的时候不用给此段代码加锁,可以共享的访问,只有涉及到写的时候,互斥的访问就好了 三、读写锁的行为...读写之间是互斥的—–>读的时候写阻塞,写的时候读阻塞,而且读和写在竞争锁的时候,写会优先得到锁 四、自旋锁&挂起等待是锁?...---->读和写在同时竞争锁的时候,写会优先的得到锁 互斥---->读的时候写阻塞,写的时候读阻塞 4.相关函数 (1)pthread_rwlock_init()—->初始化函数 功能:初始化读写锁

    6.2K11

    MPSoc如何固定EMMC的索引(mmc0mmc1 index)

    一、需求/问题 MPSoc器件,如果2个SD Controller全部使能了,在同一块硬件同一个软件版本,硬件反复上电重启,uboot或者linux下的mmc index有一定概率会发生变化:大部分情况下...emmc是mmc0或者mmcblk0,但是在某次重启有可能emmc 变成了mmc1或者mmcblk1,这种情况会导致Linux寻找内核镜像或者文件系统过程中出现错误,导致启动失败。...二、Uboot下index的来源: 2.1 emmc index使用过程 我们看下mmc 的index是从哪里获取的: 系统启动过程中会有一个默认打印: MMC: mmc@ff160000: 0, mmc...在mmc_bind过程中,调用了blk_create_device函数: 最终index赋值给了blk_desc的devnum 三、Linux下mmcblkX的index查找使用过程: 3.1 mmc...driver的注册过程: sdhci_arasan_probe -->sdhci_pltfm_init-->mmc_alloc_host 可以看到mmc的index也来源于设备树的mmc 的别名。

    12110

    mmc core(第五章)——card相关模块(mmc type card)

    对应代码: drivers/mmc/core/mmc.c(提供接口), drivers/mmc/core/mmc-ops.c(提供和mmc type card协议相关的操作), drivers/mmc.../core/mmc-ops.h 2、另外,这里继续强调一下mmc的概念 mmc core是指mmc subsystem的核心实现,这里的mmc是表示mmc总线、接口、设备相关的一种统称,可以理解为一种软件架构...而mmc type card则是指mmc卡或者emmc。 总之,这里的mmc是两种概念概念,需要自己先消化一下。 3、mmc总线和mmc_bus 在本文里面这两个是不同的概念。...原型:int mmc_attach_mmc(struct mmc_host *host) 2、mmc type card协议相关操作 mmc_ops提供了部分和mmc type card协议相关操作,这些操作会在...三、接口代码说明 1、mmc_attach_mmc实现 用于通过mmc_host获取mmc type card信息,初始化mmc_card,并进行部分驱动,最后将其注册到mmc_bus上。

    2.6K21

    MMC卡的详细介绍

    1.了解MMC卡 MMC卡是有由美国SANDISK公司和德国西门子公司在 1997年 共同开发研制的一种多功能存储卡。...MMC卡在一定程度上改善了CF卡读写速度较慢的缺点,并且体积轻巧, 尺寸为 32mm×24mm×1.4mm, 重量不足 2克。其抗冲击性强,可反复读写30万次。...工作在52MHz、 × 8 bit模式下,数据传输率可达52MB/s,由于后来推出的SD卡标准中保留了设备对MMC卡的兼容,所以虽然使用MMC卡的设备无法使用SD卡,但使用SD卡的设备却可以轻易使用MMC...卡,Pretec公司今年宣布了符合MMC4.0标准的极速2GB MMC存储卡的问世,使得MMC卡的容量开始接近CF卡。...在MMC卡本来就很小的基础上,形状正好是MMC卡的一半,长度比MMC卡的一半长一点(MMC的长度为32mm,RS-MMC的长度为18mm)。通过在后面安装专用适配器还可以用作MMC卡。

    1.8K50

    MMC卡SPI模式「建议收藏」

    MMC/SD卡简单SPI模式驱动 1. SPI模式下CRC检验无效的。 2. 命令格式是6个字节,采用大端法进行数据传输。 3. 第一个是(命令号|0x40)。 4....7).返回R1,即MMC的回复。 (完) 7. MMC卡初始化函数 1).SPI初始化。 2).发送74个时钟以上。 3).发送命令CMD0. 4).不断发送时钟信号等回复0x01.成功。...5).再不断发送命令CMD1,等回复0x00,成功则MMC卡初始化成功。 (完) 8.MMC卡读函数。 1).不断发送命令CMD17。 2).等待0x00,则成功。...3).再不断发送时钟信号,当收到0xfe时,说明可以读512字节数据,也可以通过命令设置读写数据长度。 4).读512字节数据。 5).发送CRC校验,2个字节,虽然校验无效,但一定要发送。...(完) 基于LPC2124芯片的MMC/SD卡SPI模式简单读写实验。 附加说明:MMC卡在SPI模式与SD卡的SPI模式是一样。

    45520

    Linux 磁盘IO读写速度检测

    生猛干货 从系统安装到程序员必备的Linux技能,还原真实工作场景,手把手带你实战演练 ?...IO速度 有时候我们在做维护的时候,总会遇到类似于IO特别高,但不能判定是IO瓶颈还是软件参数设置不当导致热盘的问题.这时候通常希望能知道磁盘的读写速度,来进行下一步的决策....下面是两种测试方法: (1)使用hdparm命令 这是一个是用来获取ATA/IDE硬盘的参数的命令,是由早期Linux IDE驱动的开发和维护人员 Mark Lord开发编写的( hdparm has..., with suggestions from many netfolk).该命令应该也是仅用于Linux系统,对于UNIX系统,ATA/IDE硬盘用的可能比较少,一般大型的系统都是使用磁盘阵列的....bs是每次读或写的大小,即一个块的大小,count是读写块的数量,相乘就是读写数据量大小。 数据量越大越准确,多次测试取平均值。

    11K20
    领券