eMMC基础技术4:eMMC command】的更多相关文章

1.前言 本文主要介绍eMMC 总线协议相关的内容,主要包括: (1)command token format (2)response token format (3)data packet format (4)CRC token (5)bus speed mode 2. command token format 图 cmd token format 总长度48bits; 固定以0开始,以1结束; transmiter bit表示数据的传输方向,1代表从host to device; 通过CRC…
0.前言 本文主要参考eMMC规范,从总体上对eMMC 进行简要介绍.主要包含如下的内容: (1)eMMC系统的总体架构 (2)eMMC的总线协议 (3)device controller (4)flash memory 1.eMMC系统总体架构 图 eMMC 系统总体架构 eMMC规范主要定义了Device Controller和接口的相关规范,如图中蓝色部分标识 power部分 (1)VCCQ主要用于MMC IO BLOCK的供电也就是与host接口IO部分的供电,同时也给eMMC core…
1.前言 本文主要对eMMC的command进行详细介绍,主要包含如下内容: (1)command类型 (2)command格式 2.command类型 command类型 说明 bc 不带response的广播命令 bcr 带有response的广播命令 ac 点对点无数据传输 adtc 点对点数据传输 表 command类型 3. command格式 如上图所示,eMMC Command 由 48 Bits 组成,各个 Bits 的解析如下所示: 表 command格式 总长度48bits;…
[转]http://www.wowotech.net/basic_tech/367.html 0.前言 eMMC 是 Flash Memory 的一类,在详细介绍 eMMC 之前,先简单介绍一下 Flash Memory. Flash Memory 是一种非易失性的存储器.在嵌入式系统中通常用于存放系统.应用和数据等. 在 PC 系统中,则主要用在固态硬盘以及主板 BIOS 中.另外,绝大部分的 U 盘.SDCard 等移动存储设备也都是使用 Flash Memory 作为存储介质. 1. Fl…
[转]http://www.wowotech.net/basic_tech/mmc_sd_sdio_intro.html 1. 前言 熟悉Linux kernel的人都知道,kernel使用MMC subsystem统一管理MMC.SD.SDIO等设备,为什么呢?到底什么是MMC?SD和SDIO又是什么?为什么可以用MMC统称呢? 在分析Linux kernel的MMC subsystem之前,有必要先介绍一些概念,以便对MMC/SD/SDIO有一个大致的了解,这就是本文的目的. 2. 基本概念…
[转]http://www.wowotech.net/basic_tech/emmc_partitions.html 0.前言 eMMC 标准中,将内部的 Flash Memory 划分为 4 类区域,分别是: User Data区域用于存储数据: boot区域用于启动: replay protected memory block区域用于存放受保护的数据 general purpose分区 1. 概述 图1 eMMC分区 Boot Area Partitions 和 RPMB Partition…
1. 前言 eMMC总线操作包含: boot mode, device identification mode interrupt mode data transfer mode 本文主要描述interrupt mode. interrupt mode有效的保证了从host到device的同步传输.这种模式减少了polling导致的系统负载和系统功耗,从而可以保证host对device请求的服务做出及时的响应.无论对于host还是device,interrupt mode都是可选的. 2. in…
1. 前言 data可以经data线从host发往device,也可以从device发往host 数据线以是1线(DATA0),4线(DATA0~DATA3),8线(DATA0~DATA7) 对每条数据线,每个时钟周期可以传输1bit(single data rate)和2bits(dual data rate)数据 2. data传输 eMMC传输是以block为单位,每个block后跟一个CRC,无论是读或写都允许单个或多个block传输,对于多block传输是以host发送一个stop命令…
1.前言 eMMC总线操作包含: boot mode, device identification mode interrupt mode data transfer mode 本文主要描述data transfer mode 2. data transfer mode 图 emmc状态转换-data transfer mode 注1:busy(Dat0=low)信号在prg-state状态永远是激活的.由于之前版本的原因,设备在prg-state(busy激活时)状态可能仍然会把CMD24/2…
1. 前言 eMMC有多种速率模式,主要根据如下几个方面进行划分: single rate or dual rate I/O电压 BUS宽度 支持的clock频率范围 最大的传输速率 2. 概览 图 BUS speed的多种模式 3. HS200总线速率模式 图 HS 200 host and device block 读时host需要校准获取合适的采样点以可靠的接受数据,方法见spec 5.3.5 4. HS400总线速率模式 图 HS 400 host and device block 数据…
1.前言 eMMC总线操作包含: boot mode, device identification mode interrupt mode data transfer mode 本文主要描述device identification  mode,本模式下所有的数据通信都只在cmd line上完成,主要完成: host reset device 检查操作电压范围和访问模式 识别设备 指定bus上的device RCA(relative device address) 2.device identi…
1.前言 eMMC总线操作包含: boot mode device identification mode interrupt mode data transfer mode 本文主要描述boot mode. 2. boot operation mode 2.1 boot mode状态机 图 eMMC boot mode state pre-idle state . 三种方式可以进入pre-idle状态:(1)power on后:(2)GO_PRE_IDLE_STATE命令(CMD0+0xf0f…
1.前言 response是由device发给host,作为对先前发送的command的回应.response通过cmd信号线传输.本文将详细介绍response相关 2.response的类型 response有6种类型,分别是R1,R1b,R2,R3,R4,R5 response的长度跟response的类型相关. response总是以0为起始位,以1为结束位.紧跟起始位的是传送方向,为0表示device to host. 除了R3外,其它的response都受CRC7保护 2.1 R1…
3.Python编程语言基础技术框架 3.1查看数据项数据类型 type(name) 3.2查看数据项数据id id(name) 3.3对象引用 备注Python将所有数据存为内存对象 Python中,变量事实上是指向内存对象的引用 动态类型:在任何时刻,只要需要,某个对象引用都可以重新引用一个不同的对象(可以是不同的数据类型) “=”用于将变量名与内存中的某对象绑定:如果对象事先存在,就直接进行绑定:否则由“=”创建引用的对象 变量命令规则 只能包含字母.数字和下划线,且不能以数字开头 区分字…
网络统计学与web前端开发基础技术 学习web前端开发基础技术(网页设计)需要了解:HTML.CSS.JavaScript三种语言.下面我们就来了解一下这三门技术在网页设计中的用途: HTML是网页内容的载体:内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字.图片.视频.表格等: CSS样式是表现(外观控制):就像网页的外衣.比如,标题字体.颜色变化,或为标题加入背景图片.边框等.所有这些用来改变内容外观的东西称之为表现: JavaScript是用来实现网页上的动态效果:如鼠标滑过…
在 Docker基础技术:Linux Namespace(上篇)中我们了解了,UTD.IPC.PID.Mount 四个namespace,我们模仿Docker做了一个相当相当山寨的镜像.在这一篇中,主要想向大家介绍Linux的User和Network的Namespace. 好,下面我们就介绍一下还剩下的这两个Namespace. User Namespace User Namespace主要是用了CLONE_NEWUSER的参数.使用了这个参数后,内部看到的UID和GID已经与外部不同了,默认显…
导读 在Docker基础技术:Linux Namespace(上篇)中我们了解了,UTD.IPC.PID.Mount 四个namespace,我们模仿Docker做了一个相当相当山寨的镜像.在这一篇中,主要想向大家介绍Linux的User和Network的Namespace User Namespace User Namespace主要是用了CLONE_NEWUSER的参数,使用了这个参数后,内部看到的UID和GID已经与外部不同了.默认情况下容器没有的UID,系统自动设置上了最大的UID655…
PS:欢迎大家关注我的公众号:aCloudDeveloper,专注技术分享,努力打造干货分享平台,二维码在文末可以扫,谢谢大家. 推荐大家到公众号阅读,那里阅读体验更好,也沉淀了很多篇干货. 前面两篇文章我们总结了 Docker 背后使用的资源隔离技术 Linux namespace. Docker 基础技术之 Linux namespace 详解 Docker 基础技术之 Linux namespace 源码分析 本篇将讨论另外一个技术--资源限额,这是由 Linux cgroups 来实现的…
Web前端-Ajax基础技术(下) 你要明白ajax是什么,怎么使用? ajax,web程序是将信息放入公共的服务器,让所有网络用户可以通过浏览器进行访问. 浏览器发送请求,获取服务器的数据: 地址栏输入地址,表单提交,特定的href或src属性. <script> var xhr = new XMLHttpRequest(); xhr.open('GET', 'test.php'); xhr.send() xhr.onreadystatechange = function() { if(th…
Web前端-Ajax基础技术(上) ajax是浏览器提供一套的api,用于向服务器发出请求,接受服务端返回的响应,通过javascript调用,实现通过代码控制请求与响应,实现网络编程. ajax发送请求: <!DOCTYPE html> <html lang="en"> <head> <meat charset="UTF-8"> <title>Ajax</title> </head>…
文件基础技术 一.文件概述 一)基本概念 1.文件的分类: 1)文本文件:文件中每个二进制字节都是某个可打印字符的一部分.如.java文件 2)二进制文件:文件中每个二进制字节不一定用来表示字符,也可表示颜色.字体.声音. 2.文件的元数据信息:如文件名.创建时间.修改时间.文件大小等. 3.文件名的大小写敏感问题:Windows系统文件名不大小写敏感,Linux系统中是大小写敏感的 4.文件的读写: 1)文件是放在硬盘中的,程序处理文件需要将文件读入内存,修改后,写回硬盘. 2)基本常识1:…
WEB基础技术(汇聚页) ------------------------------------------------- WEB WEB概述 HTML CSS JavaScript JavaScript(汇聚页) XML技术 Ajax及框架技术 JSON高级应用 Tomcat服务器 Eclipse IDE集成开发工具 Servlet Servlet(汇聚页) JSP JSP(汇聚页) Jstl EL FCKEditor编辑器 javaMail技术 JfreeChart报表 BBS项目=Jqu…
今天本人给大家讲解一下Java的反射基础技术,如有不对的或者讲的不好的可以多多提出,我会进行相应的更改,先提前感谢提出意见的各位了!!! 什么是反射? 反射它是根据字节码文件可以反射出类的信息.字段.方法.构造方法等内容,还可以创建对象调用方法,我们称它为反射技术. 如何通过反射获取Class对象了? 它有三种方法,1.通过Class获取类对象 2.通过getClass()方法获取类对象 3.通过Class.forName(“完整类名”)获取类对象 案例:通过反射获得Class对象的3种方法 C…
Java基础技术-Java其他主题[面试] Java基础技术IO与队列 Java BIO.NIO.AIO Java 中 BIO.NIO.AIO 的区别是什么? 含义不同: BIO(Blocking IO)是同步并阻塞的 IO,线程发起 IO 请求后,不论内核是否准备好 IO 操作,都会一直阻塞直到操作完成 NIO(Non-blocking IO)是同步非阻塞的 IO,线程发起 IO 请求后立即返回:内核在做好 IO 操作的准备之后,通过调用注册的回调函数通知线程做 IO 操作,线程开始阻塞,直到…
Java基础技术多线程与并发 什么是线程死锁? ​死锁是指两个或两个以上的进程(线程)在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去,我们就可以称此时的系统处于死锁状态,即系统产生了死锁 死锁产生的条件是什么? 死锁产生的条件可以分成四个,且这四个都必须同时存在才能形成死锁 ​(1) 互斥条件:该资源任意一个时刻只由一个线程占用 (2) 请求与保持条件:一个线程以及进程因请求资源而阻塞时,对已获得的资源保持不放 (3) 不剥夺条件:线程以及进…
Java基础技术JVM面试[笔记] JVM JVM 对 java 类的使用总体上可以分为两部分:一是把静态的 class 文件加载到 JVM 内存,二是在 JVM 内存中进行 Java 类的生命周期管理 JVM 内存结构是什么样的? JVM 内存的主要分为五个区: 方法区(Method Area) 虚拟机栈(VM Stack) 本地方法栈(Native method stack) 堆(Heap) 程序计数器(Program Counter Register) 堆(Heap) 堆会在虚拟机启动时进…
java基础技术集合面试[笔记] Hashmap: 基于哈希表的 Map 接口的实现,此实现提供所有可选的映射操作,并允许使用 null 值和 null 键(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同.)此类不保证映射的顺序,特别是它不保证该顺序恒久不变 另外,HashMap是非线程安全的,也就是说在多线程的环境下,可能会存在问题,而Hashtable是线程安全的 HashMap 内部的数据结构? 各个版本的实现略有不同 JDK1.7 及以前的 Ha…
Java基础技术基础面试[笔记] String.StringBuilder以及StringBuffer三者之间的区别? 三者的区别可以从可变性,线程安全性,性能这三个部分进行说明 可变性 从可变性来说,String不可变,StringBuilder与StringBuffer可变 因为在String类中,是使用只读字符数组保存字符串的,所以String是不可变的 而StringBuilder与StringBuffer,两者都继承自AbstractStringBuilder类,而在AbstractS…
前面,我们介绍了Linux Namespace,但是Namespace解决的问题主要是环境隔离的问题,这只是虚拟化中最最基础的一步,我们还需要解决对计算机资源使用上的隔离.也就是说,虽然你通过Namespace把我Jail到一个特定的环境中去了,但是我在其中的进程使用用CPU.内存.磁盘等这些计算资源其实还是可以随心所欲的.所以,我们希望对进程进行资源利用上的限制或控制.这就是Linux CGroup出来了的原因. Linux CGroup全称Linux Control Group, 是Linu…
时下最热的技术莫过于Docker了,很多人都觉得Docker是个新技术,其实不然,Docker除了其编程语言用go比较新外,其实它还真不是个新东西,也就是个新瓶装旧酒的东西,所谓的The New “Old Stuff”.Docker和Docker衍生的东西用到了很多很酷的技术,我会用几篇 文章来把这些技术给大家做个介绍,希望通过这些文章大家可以自己打造一个山寨版的docker. 当然,文章的风格一定会尊重时下的“流行”——我们再也没有整块整块的时间去看书去专研,而我们只有看微博微信那样的碎片时间…