寄存器信息 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 块设备驱动程序的框架实现一个卡的块设备驱动。负责块设备请求的处理,以及请求队列的管理。...提供给其他模块的独立接口 2.5 驱动框架介绍 如源码结构介绍 3 模块接口说明 对外函数接口 3.1 sunxi_mmc_rescan_card() • 作用:用于其他模块手动扫描 sd/sdio,
从这篇文章你能学到如何使用MMC框架里的轮询机制做探卡检测,十分简单。 1 前言 最近遇到客户提的一个问题,大概意思是他们的SDIO Wi-Fi在卸载Wi-Fi驱动后再加载就检测不到Wi-Fi设备了。...在mmc_of_parse函数,路径是drivers\mmc\core\core.c,of_property_read_bool函数读broken-cd字段,如果读到,就给host设置MMC_CAP_NEEDS_POLL...INIT_DELAYED_WORK(&host->detect, mmc_rescan); mmc_rescan就是扫描卡的函数 void mmc_rescan(struct work_struct *...(host); mmc_power_off(host); mmc_release_host(host); goto out; } mmc_claim_host(host); for...号主:一枚机械专业本科生,经历了转行,从外包逆袭到芯片原厂的Linux驱动开发工程师,深入操作系统的世界,贯彻终身学习、终身成长的理念。
一、需求/问题 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 的别名。
一、说明 1、mmc core概述 mmc core主模块是mmc core的实现核心。也是本章的重点内容。 对应代码位置drivers/mmc/core/core.c。...二、API总览 1、mmc core初始化相关 mmc_init & mmc_exit (模块内使用) 2、mmc host的管理和维护相关 mmc_claim_host & mmc_try_claim_host...& mmc_release_host (模块内使用) mmc_power_up & mmc_power_off mmc_start_host & mmc_stop_host mmc_power_save_host...) mmc_hw_reset & mmc_hw_reset_check & mmc_card_awake & mmc_card_sleep mmc_card_is_prog_state mmc_can_erase...5、host的mmc总线相关 mmc_resume_bus mmc_attach_bus & mmc_detach_bus 6、mmc请求相关 mmc_request_done mmc_wait_for_req
一:mmc的命令例如以下: 1:对mmc读操作 mmc read addr blk# cnt 2:对mmc写操作 mmc write addr blk# cnt 3:对...mmc擦除操作 mmc erase blk# cnt 4:又一次搜索mmc设备 mmc rescan 5:列出mmc的分区 mmc part – lists available partition oncurrent...显示boot分区号 mmc bootpart [dev] [part] – show or setboot partition 8:列出当前的mmc设备 mmc list – lists available...: 3 分析:boot中配置了四个mmc资源,SD卡是2,EMMC是3 3:mmc dev[dev] [part] – show or set current mmc device [partition...] 输入: mmc dev 3 显演示样例如以下: mmc3(part 0) is current device 分析:表示当前处于EMMC设备的第0个分区 输入: mmc dev 3 1 显演示样例如以下
对应代码: 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上。
Linux下mmc_test测试工具使用 很多朋友也都有疑问,如何在Linux下,测试emmc/sd模块呢? 当然,mmc core提供了mmc_test.c来作为mmc driver的测试文件。...如何使用mmc_test.c测试文件测试mmc 驱动呢?...mmc_test工具测试,需要将mmc设备绑定到该mmc_test驱动上。...2.1、查看驱动编号 通过下面命令,查询对应的mmc编号,如下:mmc0:0001,忽略掉\ ls /sys/bus/mmc/drivers/mmcblk/mmc0\:0001/ 2.2、解绑mmc原驱动...echo mmc0:0001 > /sys/bus/mmc/drivers/mmcblk/unbind 2.3、绑定mmc_test驱动 echo mmc0:0001 > /sys/bus/mmc
1.了解MMC卡 MMC卡是有由美国SANDISK公司和德国西门子公司在 1997年 共同开发研制的一种多功能存储卡。...工作在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卡。...至于MMC卡容量的选择,一般来说,购买128M或256M的就足够了,从实际使用的角度来看,MMC主要用于存储应用软件、图像等,最好配备256M以上的产品。
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,则成功。...(完) 9.MMC卡写数据。 1).发送不断CMD24命令。 2).等待0x00回复。 3).成功回复,再发送至少8个时钟。 4).发送0xfe。 5).发送512字节写进去。...(完) 基于LPC2124芯片的MMC/SD卡SPI模式简单读写实验。 附加说明:MMC卡在SPI模式与SD卡的SPI模式是一样。
4.MMC卡读写速度越来越慢,远不如刚买会的时候同样是存储设备,手机中的MMC存储卡和电脑中的一样,用了一段时间以后回因为频繁的删除和拷贝回出现磁盘碎片从而影响读写速度然而,硬盘的磁盘格式是FAT32或...NTFS,手机中的MMC卡是FAT16的.因此,手机通过电脑的磁盘碎片整理后往往会出现一系列的错误,严重的回在MMC卡插入手机中抱错.其实我们只需要将MMC卡中的隐藏文件拷贝将卡格式化然后将文件拷入即可...7.1GB的MMC卡,拷入600MB的文件,在电脑上无法将存储卡安全移除,于是拔除,储存卡装入手机后显示” 卡已损坏” ,如再将卡连接pc,pc不识别!
而mmc_request_fn通过wake_up_process唤醒了mmc_queue_thread,该函数在mmc_init_queue函数中完成初始化赋值,随后执行mmc_queue_thread...,该函数在queue.c(drivers/mmc/card),代表着从此进入了MMC子系统card层。...MMC core层 在mmc_queue_thread函数,通过blk_fetch_request从mmc queue中取出请求,然后执行mq->issue_fn下发请求,mq->issue_fn...在mmc_blk_alloc_req函数完成初始化,即执行mmc_blk_issue_rq下发请求。...static void sdhci_request(struct mmc_host *mmc, struct mmc_request *mrq) { struct sdhci_host *host;
SD卡的技术是基于MultiMedia卡(MMC)格式上发展而来,大小和MMC卡差不多,尺寸为32mm x 24mm x 2.1mm。...长宽和MMC卡一样,只是比MMC卡厚了0.7mm,以容纳更大容量的存贮单元。...SD卡与MMC卡保持着向上兼容,也就是说,MMC卡可以被新的SD设备存取,兼容性则取决于应用软件,但SD卡却不可以被MMC设备存取。 Mini SD MiniSD由松下和SanDisk共同开发。...MMC卡 MMC卡(Multimedia Card) 翻译成中文为“多媒体卡”。是一种快闪存储器卡标准。...MMC卡大小与一张邮票差不多,约24mm x 32mm x 1.5mm。
(吉田義人) 首先得从MMC卡的发展谈起。 MMC卡是由西门子设计,和SanDisk合作开发的小型存储卡标准。...図2:MMC和SD卡的比较 MMCに比べて、SDカードは端子が多く、より高速なデータ転送に対応している 厚みもSDカードのほうが大きいが、SDカードスロットにはMMCも挿入することができる 以MMC...SD卡的表面积和MMC卡是相同大小的,但是厚度比1.4毫米的MMC增大了0.7毫米,变成2.1毫米。 然而,SD卡的左右部分和MMC卡的厚度一样的,为1.4毫米,所以MMC卡可以直接插入SD卡插槽。...(相反,SD卡不能插入MMC卡插槽) 接口的规格也是在MMC卡的管脚排列基础上添加的两条信号线到两侧,传输方法因为和MMC相兼容,也可以从SD卡host访问到MMC。...MMC中只有一个数据信号通道,但在SD中MMC中的7号管脚(数据信号)和一号管脚(在MMC中未使用),加上新加的8,9号管脚一共4个通道可以使用,这样就能达到更高的传输速度。
1、WiFi driver驱动框架 应用层 BSD socket层 TCP/IP协议层 IP层 网络设备层 MAC层(802.11) (包括扫描、认证、关联、省电状态) 设备驱动层 2、SDIO-Wifi...4、MMC子系统框架 这里的MMC子系统框架包含了Linux的SDIO驱动架构,所以姑且将其看作SDIO的驱动架构。...linux/driver/mmc目录下有三个子目录:card 、core、host,分别表示区块层、核心层、主机控制层。...其中card层、core层是Linux封装好的、标准的东西,不需要修改,需要修改的是host层,这一层需要驱动开发工程师根据平台来完成。...Linux MMC子系统主要分成三个部分: MMC核心层:完成不同协议和规范的实现,为host层和设备驱动层提供接口函数。
几乎每个设备都有它自己的分区设计,这个和生产商有关,但常见的有MTD,EMMC和MMC设备。...MTD Memory Technology Device,内存技术设备,是用于访问memory设备(ROM、flash)的Linux子系统。...(stderr, "%s: %s: unable to get MTD device info\n",exe_name, mtd_device); return 1; } MEMGETINFO是Linux...MMC MultiMedia Card 它的分区信息只能从/proc/partitions获得: cat /proc/partitions major minor #blocks name 254
一、sd卡、tf卡,mmc卡的区别: 共同点:SD TF MMC都是在MMC基础上演化发展不同的规范,比如物理尺寸,封装,电压,管脚,位宽,时钟信号等不同,但都使用相同的总线规范。...MMC(multiMedia card)是一种通信协议,支持两种模式SPI和MMC,定义了诸如卡的形态、尺寸、容量、电气信号、和主机之间的通信协议等。...;第二是传输速度比2.11版mmc卡快。...六、MMC卡 1、简介 MMC:MMC就是MultiMediaCard的缩写,即多媒体卡。...MMC是一个接口协定(一种卡式),能符合这接口的内存器都可称作mmc储存体(mmc卡)。
四.Linux中SD/MMC设备驱动流程 4.1.MMC子系统的基本框架 4.1.1.MMC子系统的代码在kernel/driver/MMC下面,目前MMC子系统支持一些形式的记忆卡:SD,SDIO.../include/linux/mmc/card.h下面。...位于kernel/include/linux/mmc/host.h下面。 2.5.struct mmc_ios用于描述了控制器对卡的I/O状态。...位于kernel/include/linux/mmc/core.h中。 4.2.9.struct mmc_command描述了MMC卡操作相关命令及数据,状态信息等。...位于kernel/include/linux/mmc/core.h中。
Linux安装metasploit渗透框架 ---- 打开终端输入 curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master
1. Serial 2. Input 3. I2C 4. USB 5. Video 6. Audio 7. Block 8. MTD
的原理和代码分析 tracer(function、function_graph、irq_off)原理和代码分析 trace event 1. ring Buffer Ringbuffer是trace32框架的一个基础...reader page交换出ring buffer中的head page,避免了读写的相互阻塞,实例见"/sys/kernel/debug/tracing/trace_pipe"; 1.2 代码流程和框架...我们来看看start_critical_timing的实现,其主要为: 其主要的设计思想如下 2.2 trace event linux trace中,最基础的时function tracer和tracer...具体的kprobe原理可以参考:Linux kprobe(内核探针 x86)
领取专属 10元无门槛券
手把手带您无忧上云