CN105159716B - 一种存储器件初始化方法和电子设备 - Google Patents
一种存储器件初始化方法和电子设备 Download PDFInfo
- Publication number
- CN105159716B CN105159716B CN201510555866.3A CN201510555866A CN105159716B CN 105159716 B CN105159716 B CN 105159716B CN 201510555866 A CN201510555866 A CN 201510555866A CN 105159716 B CN105159716 B CN 105159716B
- Authority
- CN
- China
- Prior art keywords
- memory device
- initialization
- file
- memory
- initial
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及电子设备,更具体地,本发明涉及电子设备中存储器件的初始化或配置。本发明提供一种电子设备,所述设备包括第一初始化模块、第二初始模块、配置文件管理模块、存储器件探测模块。该设备可以通过在系统初始化时根据设备上具体贴的存储器件自动选择对应的指令初始化存储器的,节省了同一系列的设备,贴不同存储器件时需要维护不同版本固件的问题。
Description
技术领域
本发明涉及电子设备,更具体地,本发明涉及电子设备中存储器件的初始化或配置。
背景技术
存储器件是指能容纳一定事务的容器,这里主要是指计算机系统中的记忆设备,用来存放程序和数据。
目前嵌入式linux操作系统采用dtb(device tree blob)文件来对板级资源进行配置。Device Tree是一种描述硬件的数据结构,它起源于OpenFirmware(OF)。采用DeviceTree后,许多硬件的细节可以直接透过它传递给Linux,而不再需要在kernel中进行大量的冗余编码。Device tree信息记录在.dts文件中。DTC(device tree compiler)是将.dts文件编译为.dtb文件的工具。参阅图1,在boot过程中,可以从NAND、SD或者TFTP等任意介质将后缀为.dtb的文件读入内存。并由Uboot或bootloader将dtb的地址传递给内核映像。这样就内核映像就可以根据dtb中的设备信息加载驱动。
在生厂商量产某一产品时,通常会有多个系列的样机。不同系列的样机可能只有布板不同或采用存储器的芯片不同。后一种情况即指可能出现一款产品量产下去,所贴的存储器件不同的情况。这样生厂商可以方便的根据市场价格来选择贴哪种存储器件。而发明人发现现有技术中针对贴不同存储器件的不同的样机,为了操作系统的兼容需要开发多个固件,因而需要固件维护相当繁琐,降低了开发效率。
发明内容
以下给出对一个或更多个方面的简化概述以力图提供对此类方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或更多个方面的一些概念以作为稍后给出的更加具体的说明之序。
本发明提供一种存储器件初始化方法,将多个预设可支持的存储器件的初始化配置信息写入配置文件中;
将所述配置文件烧写入设备的存储介质中,或将所述配置文件编译进系统内核,随内核文件写入设备存储介质中;
设备通电后,读取所述配置文件并获取预设可支持的存储器件的初始化配置信息;
根据X存储器的初始化配置信息,结合对应X存储器的第一初始化指令集初始化设备中的存储器件,所述X存储器为所述多个预设可支持的存储器件之一,所述第一初始化指令集为初始化存储器件的指令的集合;
根据第一初始化指令集的执行结果判断是否执行成功,若不成功则尝试另一存储器的初始化配置信息结合对应另一存储器的初始化指令集初始化设备中的存储器件,另一存储器为所述多个预设可支持的存储器件之一,直到所有预设可支持的存储器件对应的初始化指令集都执行失败,或某一存储器的第一初始化指令集执行成功;
若第一初始化指令集执行成功,将所述某一存储器的初始化配置信息结合其对应的第二初始化指令集初始化设备中的存储器件。
进一步,第一初始化指令集执行成功后,标记所述配置文件中的所述某一存储器件的初始化配置信息,并生成新的配置文件并保存在存储介质中;
在初始化系统时,读取该配置文件并结合所述某一存储器件对应的第二初始化指令集用于初始化设备中的存储器件。
进一步,生成新的配置文件并保存在存储介质中为覆盖存储介质中原有的配置文件。
进一步,第一初始化指令集执行成功后,还包括步骤,标记所述某一存储器件的初始化配置信息,并将该标记的初始化配置信息结合其对应的第二初始化指令集初始化设备中的存储器件。
进一步,在第二初始化指令集初始化设备中的存储器件成功之后,还包括步骤:获得存储器件信息,并将存储器件的信息作为参数传递给系统内核。
进一步,配置文件为二进制编码或字符编码。
进一步,根据X存储器的初始化配置信息,结合对应X存储器的第一初始化指令集初始化设备中的存储器件之前,还包括步骤:根据X存储器的初始化配置信息配置设备中的存储器件的IO状态。
进一步,所述配置文件为DTB文件,DTB文件由DTS文件编译得到,所述初始化配置信息遵循DTS文件的组织形式;
在DTS文件中添加预设可支持的存储器件的初始化配置信息,并将DTS编译打包成DTB文件,并将DTB文件写入到设备的存储介质中;
通电后,bootloader读取DTB文件,并反编译为DTS文件,并获取获取预设可支持的存储器件的初始化配置信息;
bootloader根据X存储器的初始化配置信息,结合对应X存储器的第一初始化指令集初始化设备中的存储器件,所述X存储器为所述多个预设可支持的存储器之一,所述第一初始化指令集为初始化存储器件的指令的集合;
bootloader根据第一初始化指令集的执行结果判断是否执行成功,若不成功则尝试另一存储器的初始化配置信息结合对应另一存储器的初始化指令集初始化设备中的存储器件,直到所有预设可支持的存储器件对应的初始化指令集都执行失败,或某一存储器初始化指令初始成功;
若第一初始化指令集执行成功后,bootloader将所述某一存储器的初始化配置信息结合其对应的第二初始化指令集初始化设备中的存储器件。
进一步,在第二初始化指令集初始化设备中的存储器件成功之后,还包括步骤:获得存储器件信息,并将存储器件的信息通过命令行参数的形式传递给系统内核。
进一步,所述第一初始化指令集为存储器的最小化初始代码模块对应的指令集,所述第二初始化指令集为存储器驱动程序对应的指令集。
本发明还提供一种电子设备,所述设备包括第一初始化模块、第二初始化模块、配置文件管理模块、存储器件探测模块;
所述第一初始化模块用于根据存储器的初始化配置信息,结合对应存储器的第一初始化指令集初始化设备中的存储器件,并判断是否执行成功;
所述第二初始化模块用于根据存储器的初始化配置信息,结合对应存储器的第二初始化指令集初始化设备中的存储器件。
所述配置文件管理模块用于读取所述配置文件并获取预设可支持的存储器件的初始化配置信息;
所述存储器件探测模块用于控制第一初始化模块运行,直到所有预设可支持的存储器件对应的初始化指令集都执行失败,或某一存储器的第一初始化指令集执行成功时,控制第二初始化模块运行。
进一步,所述存储器件探测模块还用于初始化成后,标记所述配置文件中的所述某一存储器件的初始化配置信息,并生成新的配置文件并保存在存储介质中,在初始化系统时,读取该配置文件并结合所述某一存储器件对应的第二初始化指令集用于初始化设备中的存储器件。
进一步,所述存储器件探测模块还用生成新的配置文件并保存在存储介质中为覆盖存储介质中原有的配置文件。
进一步,所述存储器件探测模块还用在内存中标记所述某一存储器件的初始化配置信息,并将该标记的初始化配置信息结合其对应的第二初始化指令集初始化设备中的存储器件。
进一步,所述存储器件探测模块还用在第二初始化指令集初始化设备中的存储器件成功之后,获得存储器件信息,并将存储器件的信息作为参数传递给系统内核。
进一步,所述存储器件探测模块还用在控制所述第一初始化模块之前,还根据对应存储器的初始化配置信息配置设备中的存储器件的IO状态。
进一步,所述配置文件管理模块管理DTB文件。
进一步,所述第一初始化化模块使用的第一初始化指令集为存储器的最小化初始代码模块对应的指令集,所述第二初始化模块使用的所述第二初始化指令集为存储器驱动程序对应的指令集。
此外,附加方面可包括一种用于检测和响应如本文中描述的发现请求的方法。在此方面的进一步方面可包括:包括执行的至少一个处理器;包括计算机可读介质的计算机程序产品,该计算机可读介质包括能由计算机执行以检测和响应发现请求的指令;或包括用于检测和响应发现请求的装置或组件的设备。
为能达成前述及相关目的,这一个或更多个方面包括在下文中充分描述并在所附权利要求中特别指出的特征。以下描述和附图详细阐述了这一个或更多个方面的某些说明性特征。但是,这些特征仅仅是指示了可采用各种方面的原理的各种方式中的若干种,并且本描述旨在涵盖所有此类方面及其等效方面。
区别于现有技术,该方法可以通过在系统初始化时根据设备上具体贴的存储器件自动选择对应的指令初始化存储器件的,节省了同一系列的设备,贴不同存储器件时需要维护不同版本固件的问题。
相比现有技术中通常引导程序在加载内核时先初始化存储介质,以便读取内核,内核加载过程中,系统再调用对应的驱动对存储介质初始化,本发明在引导程序初始化存储介质后,将存储介质的工作参数传递给系统内核,减少的重复初始化,因此可缩短Linux初始化存储系统的时间。
附图说明
以下将结合附图来描述所公开的方面,提供附图是为了说明而非限定所公开的方面,附图中相似的标号标示相似要素,并且在其中:
图1为背景技术所述linux操作系统采用dtb(device tree blob)文件来对板级资源进行配置的示意图;
图2为具体实施方式所述所述的流程图。
图3为具体实施方式所述的模块图。
附图标记说明:
30、电子设备;
310、第一初始化模块;
320、配置文件管理模块;
330、第二初始化模块;
340、存储器件探测模块。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。在以下描述中,出于解释目的阐述了众多的具体细节以提供对一个或更多个方面的透彻理解。但是显而易见的是,没有这些具体细节也可实践此类方面。在此给出文中出现的一些术语的列表:
Device Tree:是一种描述硬件的数据结构;
DTS:device tree source,.dts文件是一种文本格式的Device Tree描述,.dts文件可引用(include)其他.dtsi文件,在本文中,修改.dts文件也可以指修改.dts所引用的.dtsi文件;DTC:device tree compiler,将.dts编译为.dtb的工具;
实施例中将以本发明结合bootloader引导的linux设备为例说明实现本发明的具体内容,但应该了解,本发明或者其改进也可应用于window或mac系统,或结合其他的启动引导工具或代码,解决本发明所遇到的问题,实现本发明的目的。本发明中所说的设备为计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,包括但不限于:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、SD卡、EMMC、NAND Flash、记忆棒、网络服务器存储、网络云存储等;所述存储器件包括但不限于SD卡、EMMC、NAND Flash等;本发明中为了区别说明,存储介质为存放引导程序的存储器,而存储器件为待初始化的存储器,一般存放有内核镜像文件等。
参见图2,一种实施方式包括步骤:
参见步骤S210,配置.dts文件,即按dts文件语法规则将所需要支持的所有存储器件的初始化配置信息写入DTS文件,也即根据所需要支持的存储器件以及dts文件语法规则,在.dts文件中新增对应存储设备的初始化信息。所需要支持的的存储器件即预设可支持的存储器件。存储器件的初始化配置信息包括存储器的工作模式与速率,线宽状态,设备状态、电压、容量、型号等,在存储器件初始化时,这些初始化配置信息作为初始化指令的参数。在某些实施例中,存储器件的初始化配置信息中的状态信息有三种值,即启用(okey)、禁用(即disable)、空(不填数值)。配置.dts文件时可将.dts文件中所有存储器件的初始化信息中的状态信息的都设为禁用,也可以将其都设置为启用。再通过DTC将.dts文件编译为.dtb文件,将.dtb文件烧录到设备中的存储介质的指定位置,即默认或设定的.dtb文件的烧录位置。在本实施例中配置文件等同于.dtb文件或.dts文件。应了解,所有预设可支持的存储器的第一初始化指令集,以及所有预设可支持的存储器的第二初始化指令集也编译并烧录到设备中。
在其他实施例中配置文件也可以是其他类型的文件。
应了解在本实施例中.dts文件用于记录各种存储器件初始化信息,即在另一些实施例中存储设备初始化信息也可以以字符编码或二进制的形式记录在其他文件中,并在系统启动时读取该文件中的存储设备初始化信息,用于对存储器件硬件初始化。
参见步骤S220,设备通电后,bootloader从DTB对应的地址中读取出.dtb文件加载到内存中,并解析.dtb文件中的信息为dts文件。.dtb文件可也可导报在bootloader中。应了解,解析为dts文件并非是必须的,其解析为dts文件是为了获取文件中的信息,在任何这种真正实现的开发过程中,必须进行众多特定于实现的决定,以实现开发者的特定目的,例如与系统相关和业务相关的约束兼容,这些约束可以随实现而不同。
参见步骤S230,bootloader获得.dts中存储器件的所有相关的信息,并初始化设备的IO状态。在一些情况下bootloader获取预设可支持的存储器件的初始化配置信息,在dts文件中,该类信息以一个个节点(Node)的形式存在。
参见步骤S240,bootloader根据所获得存储器件的所有相关的信息生成支持的存储器件的列表,参见步骤S250,并根据存储器件列表尝试使用对应的第一初始化指令集(也称作第一指令集)进行硬件初始化。例如根据X存储器的初始化配置信息,结合对应X存储器的第一初始化指令集初始化设备中的存储器件,所述X存储器为所述多个预设可支持的存储器之一。参见步骤S251、S252,若使用X存储器的初始化配置信息结合其对应的第一初始化指令集无法正确的初始化存储器件,则尝试Y存储器的初始化配置信息。Y存储器也是预设的可支持的存储器之一,Y存储器的初始化配置信息也记录在配置文件中。直到尝试了所有的预支持的存储器件的第一初始化指令集(参见步骤S252,S291),或直到某一存储器件的第一初始化指令集成功对存储器件进行了初始化。第一初始化指令集由初始化存储器的多条指令构成(指令中还包括初始化参数,不同的存储器的初始化指令一般不同),优选的其可以是最小初始化代码模块,也可以是最小初始化代码模块对应的指令集。
、参见步骤S260,若某一存储器件的初始化指令集成功对硬件进行了初始化,则修改内存中的dts文件,标记其中可以成功初始化设备中存储器件的初始化配置信息,即将dts文件中该存储器件对应的存储设备初始化信息的中的状态信息修改为启用(okey),其他的存储器件的初始化信息修改为禁用(disable)。在些实施例中,bootloader将修改后的dts直接传递给内核。在一些实施例中,bootloader的将内存中的dts文件再次打包成dtb数据块,并覆盖原来存储介质上的dtb数据块。需了解,在dts文件可以通过修改存储设备初始化配置信息中的状态信息进行标记,也可以通过添加其他字段进行标记。
参见步骤S270,bootloader调用第二初始化指令集(也称作第二指令集),对其进行初始化配置。第二初始化指令集初始化后,设备中的存储器件按设定模式工作,在一些实施例中,第二初始化指令集即该存储驱动。第一初始化指令集执行成功后获得存储器件的工作信息,并将存储器件的工作信息,例如存储器件容量,器件状态描述符,分区数,工作模式等参数写入CMDLINE(俗称命令行,用于loader向linux系统传递信息)。
参见步骤S280,从bootloader跳转到linux内核启动,linux内核启动时加载修改后的dtb文件,若dtb文件中的中只启用一存储设备初始化信息,其他都是禁用,则linux内核从CMDLINE中读取的存储器件工作信息,完成对存储器的初始化。在另一些实施例中,也可以通过栈、套接字、文件等反射传递该信息。
区别于现有技术,该方法可以通过在系统初始化时根据设备上具体贴的存储器件自动选择对应的指令初始化存储器的,节省了同一系列的设备,贴不同存储器件时需要维护不同版本固件的问题。
相比现有技术中通常引导程序在加载内核时先初始化存储介质,以便读取内核,内核加载过程中,系统再调用对应的驱动对存储介质初始化,本发明在引导程序初始化存储介质后,将存储介质的工作参数传递给系统内核,减少的重复初始化,因此可缩短Linux初始化存储系统的时间。
参见图3,本发明还提供一种使用上述方法初始化存储器件的设备30。所述设备包括第一初始化代码模块310、第二初始代码模块330、配置文件管理模块320、存储器件探测模块340;
所述第一初始化模块用于根据存储器的初始化配置信息,结合对应存储器的第一初始化指令集初始化设备中的存储器件,并判断是否初始化成功;
所述第二初始化模块用于根据存储器的初始化配置信息,结合对应存储器的第二初始化指令集初始化设备中的存储器件。
所述配置文件管理模块用于读取所述配置文件并获取预设可支持的存储器件的初始化配置信息;
所述存储器件探测模块用于控制第一初始化模块运行,直到所有预设可支持的存储器件对应的初始化指令集都初始化失败,或某一存储器的第一初始化指令集初始化成功时,控制第二初始化模块运行。
所述存储器件探测模块还用于初始化成后,标记所述配置文件中的所述某一存储器件的初始化配置信息,并生成新的配置文件并保存在存储介质中,在初始化系统时,读取该配置文件并结合所述某一存储器件对应的第二初始化指令集用于初始化设备中的存储器件。
所述存储器件探测模块还用生成新的配置文件并保存在存储介质中为覆盖存储介质中原有的配置文件。
所述存储器件探测模块还用在内存中标记所述某一存储器件的初始化配置信息,并将该标记的初始化配置信息结合其对应的第二初始化指令集初始化设备中的存储器件。
所述存储器件探测模块还用在第二初始化指令集初始化设备中的存储器件成功之后,获得存储器件信息,并将存储器件的信息作为参数传递给系统内核。
所述存储器件探测模块还用在控制所述第一初始化模块之前,还根据对应存储器的初始化配置信息配置设备中的存储器件的IO状态。
所述配置文件管理模块管理DTB文件。
所述第一初始化化模块使用的第一初始化指令集为存储器的最小化初始代码模块对应的指令集,所述第二初始化模块使用的所述第二初始化指令集为存储器驱动程序对应的指令集。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。
本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述的存储介质,包括但不限于:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。
上述各实施例是参照根据实施例所述的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。
Claims (17)
1.一种存储器件初始化方法,其特征在于,将多个预设可支持的存储器件的初始化配置信息写入配置文件中,配置文件为二进制编码或字符编码;
将所述配置文件烧写入设备的存储介质中,或将所述配置文件编译进系统引导文件,随引导文件写入设备存储介质中;
设备通电后,读取所述配置文件并获取预设可支持的存储器件的初始化配置信息;
根据X存储器件的初始化配置信息,结合对应X存储器件的第一初始化指令集初始化设备中的存储器件,所述X存储器件为所述多个预设可支持的存储器件之一,所述第一初始化指令集为初始化存储器件的指令的集合;
根据第一初始化指令集的执行结果判断指令集执行是否成功,若不成功则尝试另一存储器件的初始化配置信息结合对应该另一存储器件的第一初始化指令集初始化设备中的存储器件,该另一存储器件为所述多个预设可支持的存储器件之一,直到所有预设可支持的存储器件对应的第一初始化指令集都执行失败,或某一存储器件的第一初始化指令集成功执行;
若第一初始化指令集执行成功后,将所述某一存储器件的初始化配置信息结合其对应的第二初始化指令集初始化设备中的存储器件,所述第二初始化指令集为存储器驱动程序对应的指令集。
2.如权利要求1所述的一种存储器件初始化方法,其特征在于,若第一初始化指令集执行成功后,标记所述配置文件中的所述某一存储器件的初始化配置信息,并生成新的配置文件并保存在存储介质中;
在初始化系统时,读取配置文件中与所述某一存储器件相关的信息并结合所述某一存储器件对应的第二初始化指令集用于初始化设备中的存储器件。
3.如权利要求2所述的一种存储器件初始化方法,其特征在于,生成新的配置文件并保存在存储介质中为覆盖存储介质中原有的配置文件。
4.如权利要求1所述的一种存储器件初始化方法,其特征在于,若第一初始化指令集执行成功,其后,还包括步骤,标记所述某一存储器件的初始化配置信息,并将该标记的初始化配置信息结合其对应的第二初始化指令集初始化设备中的存储器件。
5.如权利要求1~4中任一所述的一种存储器件初始化方法,其特征在于,在第二初始化指令集初始化设备中的存储器件成功之后,还包括步骤:获得存储器件信息,并将存储器件的信息作为参数传递给系统内核。
6.如权利要求1所述的一种存储器件初始化方法,其特征在于,在根据X存储器件的初始化配置信息,结合对应X存储器件的第一初始化指令集初始化设备中的存储器件之前,还包括步骤:配置设备中的存储器件的IO状态。
7.如权利要求1所述的一种存储器件初始化方法,其特征在于,所述配置文件为DTB文件,DTB文件由DTS文件编译得到,所述初始化配置信息遵循DTS文件的组织形式;
在DTS文件中添加预设可支持的存储器件的初始化配置信息,并将DTS编译打包成DTB文件,并将DTB文件写入到设备的存储介质中;
通电后,bootloader读取DTB文件,并反编译为DTS文件,并获取预设可支持的存储器件的初始化配置信息;
bootloader根据X存储器件的初始化配置信息,结合对应X存储器件的第一初始化指令集初始化设备中的存储器件,所述X存储器件为所述多个预设可支持的存储器件之一,所述第一初始化指令集为初始化存储器件的指令的集合;
bootloader根据第一初始化指令集的执行结果判断是否执行成功,若不成功则尝试另一存储器件的初始化配置信息结合对应该另一存储器件的第一初始化指令集初始化设备中的存储器件,直到所有预设可支持的存储器件对应的第一初始化指令集都执行失败,或某一存储器件的第一初始化指令集初始成功;
第一初始化指令集执行成功后,bootloader将所述某一存储器件的初始化配置信息结合其对应的第二初始化指令集初始化设备中的存储器件。
8.如权利要求1所述的一种存储器件初始化方法,其特征在于,在第二初始化指令集初始化设备中的存储器件成功之后,还包括步骤:获得存储器件信息,并将存储器件的信息通过命令行参数的形式传递给系统内核。
9.如权利要求1所述的一种存储器件初始化方法,其特征在于,所述第一初始化指令集为存储器件的最小化初始代码模块对应的指令集。
10.一种电子设备,其特征在于,所述设备包括第一初始化模块、第二初始化模块、配置文件管理模块、存储器件探测模块;
所述第一初始化模块用于根据存储器件的初始化配置信息,结合对应该存储器件的第一初始化指令集初始化设备中的存储器件,并判断第一初始化指令集是否执行成功;
所述第二初始化模块用于根据存储器件的初始化配置信息,结合对应该存储器件的第二初始化指令集初始化设备中的存储器件,所述第二初始化模块使用的所述第二初始化指令集为存储器件驱动程序对应的指令集;
所述配置文件管理模块用于读取配置文件并获取预设可支持的存储器件的初始化配置信息,将所述配置文件烧写入设备的存储介质中,或将所述配置文件编译进系统引导文件,随引导文件写入设备存储介质中,所述配置文件为二进制编码或字符编码;
所述存储器件探测模块用于控制第一初始化模块运行,直到所有预设可支持的存储器件对应的第一初始化指令集都执行失败,或某一存储器件的第一初始化指令集执行成功时,控制第二初始化模块运行。
11.如权利要求10所述的一种电子设备,其特征在于,所述存储器件探测模块还用于在第一初始化指令集执行成功后,标记所述配置文件中的所述某一存储器件的初始化配置信息,并生成新的配置文件保存在存储介质中,在初始化系统时,读取该配置文件并结合所述某一存储器件对应的第二初始化指令集用于初始化设备中的存储器件。
12.如权利要求11所述的一种电子设备,其特征在于,所述存储器件探测模块还用于生成新的配置文件并保存在存储介质中,具体为覆盖存储介质中原有的配置文件。
13.如权利要求10所述的一种电子设备,其特征在于,所述存储器件探测模块还用于在内存中标记所述某一存储器件的初始化配置信息,并将该标记的初始化配置信息结合其对应的第二初始化指令集初始化设备中的存储器件。
14.如权利要求10~13任一所述的一种电子设备,其特征在于,所述存储器件探测模块还用于在第二初始化指令集初始化设备中的存储器件成功之后,获得存储器件信息,并将存储器件的信息作为参数传递给系统内核。
15.如权利要求11所述的一种电子设备,其特征在于,所述存储器件探测模块还用于在控制所述第一初始化模块之前,还根据对应存储器件的初始化配置信息配置设备中的存储器件的IO状态。
16.如权利要求11所述的一种电子设备,其特征在于,所述配置文件管理模块管理DTB文件。
17.如权利要求11所述的一种电子设备,其特征在于,所述第一初始化化模块使用的第一初始化指令集为存储器件的最小化初始代码模块对应的指令集。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510555866.3A CN105159716B (zh) | 2015-09-02 | 2015-09-02 | 一种存储器件初始化方法和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510555866.3A CN105159716B (zh) | 2015-09-02 | 2015-09-02 | 一种存储器件初始化方法和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105159716A CN105159716A (zh) | 2015-12-16 |
CN105159716B true CN105159716B (zh) | 2019-05-21 |
Family
ID=54800580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510555866.3A Active CN105159716B (zh) | 2015-09-02 | 2015-09-02 | 一种存储器件初始化方法和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105159716B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912332B (zh) * | 2016-04-11 | 2018-12-18 | 福州瑞芯微电子股份有限公司 | 一种bootrom代码的兼容方法及设备 |
CN108958809A (zh) * | 2017-05-24 | 2018-12-07 | 龙芯中科技术有限公司 | 设备初始化的方法、装置、电子设备及存储介质 |
CN109240748B (zh) * | 2017-07-07 | 2021-07-09 | 深圳市中兴微电子技术有限公司 | 应用于嵌入式系统的镜像启动及适配的方法、系统 |
CN107577477B (zh) * | 2017-09-06 | 2021-09-14 | 武汉虹信科技发展有限责任公司 | 一种基于dtb文件的多平台软件版本自适应方法及系统 |
CN111694580B (zh) * | 2019-03-13 | 2023-03-10 | 杭州宏杉科技股份有限公司 | 存储设备升级及初始化的方法、装置、电子设备 |
CN110502283A (zh) * | 2019-08-19 | 2019-11-26 | 深圳大趋智能科技有限公司 | 一种产品外设兼容方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184117A (zh) * | 2011-06-03 | 2011-09-14 | 展讯通信(上海)有限公司 | 系统在不同类型的Nandflash上的启动方法及装置 |
CN104503722A (zh) * | 2014-12-19 | 2015-04-08 | 广东欧珀移动通信有限公司 | 兼容显示屏的方法、装置及移动终端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1991756A (zh) * | 2005-12-27 | 2007-07-04 | 鸿富锦精密工业(深圳)有限公司 | 热键选择启动设备的系统及方法 |
-
2015
- 2015-09-02 CN CN201510555866.3A patent/CN105159716B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184117A (zh) * | 2011-06-03 | 2011-09-14 | 展讯通信(上海)有限公司 | 系统在不同类型的Nandflash上的启动方法及装置 |
CN104503722A (zh) * | 2014-12-19 | 2015-04-08 | 广东欧珀移动通信有限公司 | 兼容显示屏的方法、装置及移动终端 |
Also Published As
Publication number | Publication date |
---|---|
CN105159716A (zh) | 2015-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105159716B (zh) | 一种存储器件初始化方法和电子设备 | |
CN104885052B (zh) | 读写存储设备的数据映像中的虚拟边界码 | |
US11709927B2 (en) | Consumable chip and communication method for consumable chip | |
CN105579953A (zh) | 灵活引导程序代码架构 | |
CN106937275B (zh) | 一种在安卓系统下保存系统唯一标识及硬件id的设备 | |
CN103745167B (zh) | 单片机的iap方法及装置 | |
JP5843674B2 (ja) | Icカード、携帯可能電子装置及びicカードの制御方法 | |
KR20140108666A (ko) | 스마트 카드의 비휘발성 메모리에 데이터 쓰기 | |
CN106293782A (zh) | 一种系统升级方法及终端 | |
CN102945173A (zh) | 用户程序在线升级系统和升级方法 | |
WO2011095074A1 (zh) | 一种终端设备系统升级方法及终端设备 | |
CN105159714B (zh) | 一种pmic初始化方法和电子设备 | |
CN108509215A (zh) | 一种系统软件的更换方法、装置、终端设备及存储介质 | |
CN102662688B (zh) | 一种Nor flash更新方法及装置 | |
CN107463341A (zh) | Flash芯片的擦除方法、装置和移动终端 | |
CN103605939A (zh) | 金融ic卡的个人化数据写入方法、装置及系统 | |
CN104750532A (zh) | 一种基于Android的双系统土地核查PAD及启动方法 | |
US10007529B2 (en) | Data terminal running mode switching method, device, and data terminal | |
CN104484211A (zh) | 共享镜像文件的方法及装置 | |
CN103678214A (zh) | 系统控制台重定向方法及显示设备 | |
CN116302011A (zh) | 一种电缆监测设备固件升级方法 | |
CN108052337A (zh) | 一种eMMC量产工具的固件升级方法及装置 | |
JP3028055B2 (ja) | Pcカードシステム及びプログラム書き換え方法 | |
CN116048561A (zh) | 存储卡的固件升级方法、计算机设备及可读存储介质 | |
US20170131946A1 (en) | Method and device for formatting storage of mobile terminal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 350003 building, No. 89, software Avenue, Gulou District, Fujian, Fuzhou 18, China Patentee after: Ruixin Microelectronics Co., Ltd Address before: 350003 building, No. 89, software Avenue, Gulou District, Fujian, Fuzhou 18, China Patentee before: Fuzhou Rockchips Electronics Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |