当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]eMMC芯片由NandFlash、控制器和标准接口组成,在应用上,和NandFlash比较,由于控制器的存在,不必考虑ECC和坏块管理策略,所以eMMC的应用比较简单。但是,eMMC烧写只需要把

eMMC芯片由NandFlash、控制器和标准接口组成,在应用上,和NandFlash比较,由于控制器的存在,不必考虑ECC和坏块管理策略,所以eMMC的应用比较简单。但是,eMMC烧写只需要把数据烧进去就可以了吗?为什么数据写进去了,系统还是跑不起来?

 

eMMC自诞生以来,就受到各行各业的追棒,如今,已成为存储行业的主流,特别是手机和平板。美国的IHS iSuppli预测到2018年全球的eMMC出货量达到2200Milion。

 

图1 eMMC的市场前景

在给智能手机、智能电视、平板电脑等,使用大容量eMMC芯片客户服务的过程中,遇到很多烧录异常的投诉,统计下来,有90%的投诉是说的同样一个事情:烧录过程正常,但贴到PCB上不能正常运行,重新通过在线的工具烧录,又能正常运行,这是为什么呢?

大多数工程师认为,既然eMMC内部有控制器,不用考虑ECC和坏块管理策略,那么全当成普通的Flash那样烧写。事实上,这样做法是“想当然”的照搬了之前Flash的使用方法。那么,有些人就纳闷了,既然烧写检验没问题,为什么会跑不起来,进而第一步就怀疑是不是烧录器的问题。

那就要从eMMC芯片的结构进行剖析:

eMMC芯片中有三个分区,分别是Boot1、Boot2和User Area区。

 

图2

eMMC烧写,与其他任何Flash的烧录都不一样,Boot区是单独有寻址地址的,因此,必须注意如下两个关键步骤:

一、烧写数据:包括Boot1、Boot2和User Area区的数据。

二、设置寄存器:主要设置EXT_CSD寄存器,设置Boot加载规则,这需要根据实际的方案来设置。

下面来主要阐述eMMC的设置寄存器的关键之处:

通常,Boot1、Boot2和User Area区的数据都没问题,主要是EXT_CSD寄存器的设置。这里涉及到程序Boot主要有三个寄存器,分别是BOOT_BUS_WIDTH[177]、BOOT_CONFIG_PROT[178]、PARTITION_CONFIG[179],这三个寄存器常常相互配合。

下面我们简要介绍下这个寄存器:

一、BOOT总线位宽寄存器BOOT_BUS_WIDTH[177]:设置Boot总线宽度和单双边沿。

 

图3

二、BOOT配置保护寄存器BOOT_CONFIG_PROT[178]:Boot设置位的保护使能。

 

图4

三、分区寄存器PARTITION_CONFIG[179]:分区配置。

 

图5

技术的细节就不再详述,从上面的介绍得知,Boot三个寄存器各负责的关键内容。

1.BOOT_BUS_WIDTH[177]设置位宽+单双边沿;

2.PARTITION_CONFIG[179]选择哪个分区用于Boot;

3.BOOT_CONFIG_PROT[178]算是它们的双保险。

如果客户仅仅烧录了User区的程序,而忽视了Boot区配置,会导致主控CPU找不到Boot文件,无法正常启动整个系统的情况发生。

当然,不同场合可能需要设置不同的值,但是一般情况下,90%的用户还是选择Boot1区+8位宽高速时序。即同时设置分区寄存器PARTITION_CONFIG[179]=0x8/0x48和总线位宽寄存器BOOT_BUS_WIDTH[177]=0xA/0x2。而Boot配置保护寄存器BOOT_CONFIG_PROT[178]默认不设置。

进过EXT_CSD的扩展寄存器设置,CPU找到了启动Boot,正常引导并启动了整个被烧录的eMMC芯片,这时,eMMC就和CPU愉快的配合,流畅的跑起来了。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

74LS175是一款4D触发器集成电路,它包含6个D触发器,这些触发器可以组合起来形成寄存器或抢答器等多种功能部件。

关键字: 74ls175 触发器 寄存器

单片机复位电路的作用是:使单片机恢复到起始状态,让单片机的程序从头开始执行,运行时钟处于稳定状态、各种寄存器、端口处于初始化状态等等。

关键字: 复位电路 单片机 寄存器

交换机是计算机网络中的核心设备之一,用于连接多台计算机并在它们之间传输数据。交换机的性能和功能配置直接影响网络的性能和可用性。其中,交换机的端口是至关重要的组成部分,它们负责接收、转发和管理网络数据。本文将深入探讨交换机...

关键字: 交换机 计算机 配置

寄存器变量是计算机中一种重要的存储方式,它使用CPU中的寄存器来存储数据和指令。寄存器直接与CPU的运算和控制部件相连,因此访问速度非常快,通常在一个CPU周期内就能完成数据的读写操作。相比于内存和硬盘等存储设备,寄存器...

关键字: 寄存器 存储器

寄存器和存储器是计算机及其它电子设备中的两种重要存储组件,它们在存储方式、存储容量和访问速度等方面存在明显的差异。

关键字: 寄存器 存储器

上海2023年9月20日 /美通社/ -- 2023年9月19日-23日,第二十三届中国国际工业博览会(以下简称“工博会”)在国家会展中心(上海)举行,来自全球30个国家和地区的2800家展商,覆盖从基础材料、基础零部件...

关键字: 富士 存储技术 IBM 数据流

寄存器和内存是计算机系统的两个重要组成部分,它们之间存在着密切的关系。本文将介绍寄存器和内存的基本概念、功能、类型以及它们之间的关系,旨在帮助读者更好地理解计算机系统的运行原理。

关键字: 寄存器 内存

寄存器是计算机硬件中的重要组件,用于临时存储数据和指令。正确地使用寄存器能够提高程序的执行效率,然而不正确的使用也可能导致各种问题。本文将详细介绍寄存器的使用方法以及在使用时需要注意的事项。

关键字: 寄存器 计算机硬件

寄存器和暂存器都是计算机硬件中的重要组件,它们在计算机系统中发挥着不同的作用。下面我们来详细了解一下它们的区别以及各自的特点和应用。

关键字: 寄存器 暂存器

寄存器是一种重要的计算机硬件组件,用于临时存储数据或指令。在计算机架构中,寄存器是CPU内部的一部分,用于加速数据的处理速度。寄存器通常由高速缓存(cache)和随机存取存储器(RAM)组成。

关键字: 寄存器 计算机硬件
关闭
关闭