首页> 中国专利> 基于固化启动代码的启动方法、装置、计算机设备和存储介质

基于固化启动代码的启动方法、装置、计算机设备和存储介质

摘要

本申请提供一种基于固化启动代码的启动方法、装置、计算机设备和存储介质。该方法包括:获取固化启动代码是否为首次启动的启动信息;当启动信息表征所述固化启动代码为非首次启动时,从寄存器中获取1个型号的闪存芯片对应的预设子操作数据表和预设子操作;根据所述预设子操作数据表和预设子操作,获取所述闪存芯片对应启动代码的启动指令;执行所述启动指令对应的启动操作,并输出提示所述1个型号的闪存芯片被命中的提示信息。以此实现固化启动代码在非首次启动时能够通过寄存器中存储的预设子操作数据表和预设子操作直接命中闪存芯片的目的,从而提高了嵌入式系统的启动速度。

著录项

  • 公开/公告号CN113127071A

    专利类型发明专利

  • 公开/公告日2021-07-16

    原文格式PDF

  • 申请/专利权人 珠海全志科技股份有限公司;

    申请/专利号CN201911425362.4

  • 发明设计人 余显杨;王伟;

    申请日2019-12-31

  • 分类号G06F9/4401(20180101);G06F15/78(20060101);

  • 代理机构44224 广州华进联合专利商标代理有限公司;

  • 代理人毛丹

  • 地址 519080 广东省珠海市高新区唐家湾镇科技二路9号

  • 入库时间 2023-06-19 11:52:33

说明书

技术领域

本申请涉及嵌入式系统技术领域,特别是涉及一种基于固化启动代码的启动方法、装置、计算机设备和存储介质。

背景技术

在消费电子的片上系统中,为了满足产品形态的多样化需要,通常一个片上系统所支持的NAND FLASH芯片的类型越来越多,NAND FLASH芯片的类型不仅包括等类型,而且每一种类型根据不同的制造工艺、不同的存储堆叠(比如二维和三维)以及不同的厂商可被细化为不同型号的NAND FLASH,芯片中的BOOT ROM为了兼容不同NAND FLASH的型号,往往选择牺牲启动速度。

为了保持NAND FLASH的兼容性,并能快速命中不同NAND FLASH的型号,现有方法之一是采用boot_select_pin的方式将NAND FLASH粗分为几大类,再根据外部GPIO pin脚的高低电平区分NAND FLASH的具体型号,比如2个pin脚时00代表SLC类,01代表MLC类;现有方法之二是将不同NAND FLASH的启动参数表存储在小容量的SPI NOR存储器中,先从SPINOR存储器中读出来后,再解析参数进行启动。

现有方法区分NAND FLASH的型号还是需要BOOT ROM遍历才能确定,且每次启动都需要遍历NAND FLASH的型号,时间耗费大,从而导致启动速度也慢。

发明内容

基于此,有必要针对每次启动嵌入式系统都需要遍历闪存芯片的型号导致的时间耗费大、启动速度慢的问题,提供一种基于固化启动代码的启动方法、装置、计算机设备和存储介质。

第一方面,本申请实施例提供一种基于固化启动代码的启动方法,包括:

获取固化启动代码是否为首次启动的启动信息;

当所述启动信息表征所述固化启动代码为非首次启动时,从寄存器中获取1个型号的闪存芯片对应的预设子操作数据表和预设子操作;

根据所述预设子操作数据表和预设子操作,获取所述闪存芯片对应启动代码的启动指令;

执行所述启动指令对应的启动操作,并输出提示信息;其中,所述提示信息用于提示所述1个型号的闪存芯片被命中。

第二方面,本申请实施例提供提供一种基于固化启动代码的启动装置,所述装置包括:

第一获取模块,用于获取固化启动代码是否为首次启动的启动信息;

第二获取模块,用于当所述启动信息表征所述固化启动代码为非首次启动时,从寄存器中获取1个型号的闪存芯片对应的预设子操作数据表和预设子操作;

第三获取模块,用于根据所述预设子操作数据表和预设子操作,获取所述闪存芯片对应启动代码的启动指令;

执行模块,用于执行所述启动指令对应的启动操作,并输出提示信息;其中,所述提示信息用于提示所述1个型号的闪存芯片被命中。

第三方面,本申请实施例提供的一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

获取固化启动代码是否为首次启动的启动信息;

当所述启动信息表征所述固化启动代码为非首次启动时,从寄存器中获取1个型号的闪存芯片对应的预设子操作数据表和预设子操作;

根据所述预设子操作数据表和预设子操作,获取所述闪存芯片对应启动代码的启动指令;

执行所述启动指令对应的启动操作,并输出提示信息;其中,所述提示信息用于提示所述1个型号的闪存芯片被命中。

第四方面,本申请实施例提供的一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

获取固化启动代码是否为首次启动的启动信息;

当所述启动信息表征所述固化启动代码为非首次启动时,从寄存器中获取1个型号的闪存芯片对应的预设子操作数据表和预设子操作;

根据所述预设子操作数据表和预设子操作,获取所述闪存芯片对应启动代码的启动指令;

执行所述启动指令对应的启动操作,并输出提示信息;其中,所述提示信息用于提示所述1个型号的闪存芯片被命中。

本申请提供一种基于固化启动代码的启动方法、装置、计算机设备和存储介质,其中所述方法首先获取固化启动代码是否为首次启动的启动信息,并且当所述启动信息表征所述固化启动代码为非首次启动时,能够直接从寄存器中获取1个型号的闪存芯片对应的预设子操作数据表和预设子操作;以此避免现有方法中只要接收到固化启动代码的启动指令就执行遍历固化启动代码中预先存储的各个型号的闪存芯片的操作参数、且不涉及是否非首次启动导致的启动速度慢的问题;进一步地,在根据所述预设子操作数据表和预设子操作获取到所述闪存芯片对应启动代码的启动指令时,也能够执行所述启动指令对应的启动操作,并输出提示信息。以此实现固化启动代码在非首次启动时能够通过寄存器中存储的预设子操作数据表和预设子操作直接命中1个型号的闪存芯片的目的,从而提高了嵌入式系统的启动速度。

附图说明

图1为一个实施例提供的基于固化启动代码的启动方法流程示意图;

图2为另一个实施例提供的基于固化启动代码的启动方法流程示意图;

图3为又一个实施例提供的基于固化启动代码的启动方法流程示意图;

图4为又一个实施例提供的基于固化启动代码的启动方法流程示意图;

图5为又一个实施例提供的基于固化启动代码的启动方法流程示意图;

图6为又一个实施例提供的基于固化启动代码的启动方法流程示意图;

图7为又一个实施例提供的基于固化启动代码的启动方法流程示意图;

图8为一个实施例提供的基于固化启动代码的启动装置示意图;

图9为一个实施例提供的计算机设备的内部结构图。

具体实施方式

目前,消费电子的片上系统可支持多个闪存芯片的型号,为了提高片上系统的启动速度,通常采用boot_select_pin的方式将闪存芯片粗分类型后再根据GPIO pin脚的高低电平区分具体型号,也采用将不同型号的闪存芯片的启动参数表存储在小容量的SPINOR存储器中,先从SPI NOR存储器中读出来后再解析参数进行启动,但boot_select_pin的方式不仅区分程度不高,遍历时间长,而且也需要外设才能实现,使用范围受限;并且SPINOR存储器的成本高,从SPI NOR存储器中读取参数也需要一定时间,从而导致系统的启动速度也很慢。

本申请实施例提供的基于固化启动代码的启动方法、装置、计算机设备和存储介质,当获取到固化启动代码为非首次启动的启动信息时,通过从寄存器中获取1个型号的闪存芯片的预设子操作数据表和预设子操作,获取执行下一级启动代码的启动指令,通过执行所述启动指令对应的启动操作,并输出提示所述1个型号的闪存芯片被命中的提示信息的具体过程,不仅不需要增加外设,也提高了启动速度。

需要说明的是,本申请实施例提供基于固化启动代码的启动方法,其执行主体可以是基于固化启动代码的启动装置,该基于固化启动代码的启动装置可以通过软件、硬件或者软硬件结合的方式实现成为计算机设备的部分或者全部。可选的,该计算机设备可以为个人计算机(Personal Computer,PC)、便携式设备、服务器等具有数据处理功能的电子设备,也可以为嵌入式设备、智能设备等等,比如电视盒子,平板,智能音箱,片上系统,本实施例对计算机设备的具体形式并不做限定。下述方法实施例的执行主体以计算机设备为例来进行说明。

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

图1为一个实施例提供的基于固化启动代码的启动方法流程示意图,本实施例涉及的是计算机设备根据所获取的固化启动代码是否为首次启动的启动信息如何输出提示1个型号的闪存芯片被命中的提示信息的具体过程。如图1所示,该方法包括:

步骤S11、获取固化启动代码是否为首次启动的启动信息。

具体的,计算机设备可以包括片上系统SOC芯片、Nand闪存(Nand Flash)模块、动态随机存储器(Dram)以及其它器件,当计算机设备为平板时其它设备可以是显示模块、摄像头等,当计算机设备时电视盒子时其它设备可以是遥控器、屏幕等;所述片上系统可以包括固化启动代码BOOTROM、实时计时器(Real Time Clock,RTC)模块、处理器以及寄存器,BOOTROM可以是固化在SOC芯片内部不可编程只读存储器ROM中的代码,Dram是与处理器之间直接交换数据的内部存储器。

RTC模块可以用于提供精确的实时时间,一次性可编程存储器(Efuse)可以用于存储Nand闪存芯片对应的操作参数,所述操作参数可以包括读操作参数和写操作参数中的至少一种,Efuse可以独立内置于片上系统中,也可以设置RTC模块内部,当Efuse设置于RTC模块内部时可以用于计算机设备的主电源掉电时外接电池供电。

Nand闪存模块中包括m个型号的Nand闪存芯片,计算机设备接收到启动指令执行启动操作时,BOOTROM也要命中1个型号的Nand闪存芯片以确定该1个型号的Nand闪存芯片能够被兼容,此时计算机设备才能够真正被启动。

因此,为了节省启动时间,当计算机设备接收到开机指令时,首先判断寄存器中存储的标识参数是否满足预设阈值条件,当所述标识参数满足预设阈值条件时,可以确定固化启动代码是非首次启动;当所述标识参数不满足预设阈值条件时,可以确定固化启动代码是首次启动;其中,所述启动信息可以是寄存器中存储的标识参数,所述标识参数可以是一个bit数据,用于验证寄存器中存储的存储数据是否有效;将所述标识参数设置成bit数据可以用于防止其他用户无意或有意修改所述寄存器的位操作,以此确保寄存器的有效性。

步骤S12、当所述启动信息表征所述固化启动代码为非首次启动时,从寄存器中获取1个型号的闪存芯片对应的预设子操作数据表和预设子操作。

具体的,计算机设备的固化启动代码中会预先存储有m个型号的Nand闪存芯片的操作参数,并且在固化启动代码首次启动时,通过从m个型号的Nand闪存芯片的操作参数中选取其中1个型号的Nand闪存芯片的操作参数进行遍历操作,从而得到针对1个型号的Nand闪存芯片的预设子操作数据表和预设子操作,并将该预设子操作数据表和预设子操作存储至寄存器中,以便于固化启动代码非首次启动时直接从寄存器中获取所述预设子操作数据表和预设子操作、而并不需要再去遍历固化启动代码中会预先存储有m个型号的Nand闪存芯片的操作参数,m远远大于1。

在实际处理过程中,所述预设子操作的数量可以为m个,所述预设子操作数据表的数量可以为k个,每个预设子操作可以是编号后的子操作,每个预设子操作数据可以是编号后的子操作数据表,每个子操作分别对应一个型号的闪存芯片的操作参数,所述操作参数可以包括读操作参数和写操作参数中的至少一种,每个预设子操作数据表中包括至少一个预设子操作,k个预设子操作数据表中的所有预设子操作的数量总和为m,并且一个预设子操作至少可以在一个预设子操作表中;其中,k为大于1的整数。

其中,当m个型号的闪存芯片为m个型号的NAND FLASH芯片时,m个型号的NANDFLASH芯片可以包括单个存储单元存储器(Single-Level Cell,SLC)、双存储单元存储器(Multi-Level Cell,MLC)或者多存储单元存储器(Triple-Level Cell,TLC)等。

步骤S13、根据所述预设子操作数据表和预设子操作,获取所述闪存芯片对应启动代码的启动指令。

具体的,计算机设备可以根据所述预设子操作数据表和预设子操作,可以直接获取到其中1个型号的闪存芯片的操作参数,并在获取到所述1个型号的闪存芯片的操作参数时,也可以获取所述闪存芯片对应启动代码的启动指令。

在实际处理过程中,计算机设备的启动流程可以包括BOOTROM-->启动装载程序(Bootloader)-->实时操作系统程序(Kernel)-->应用程序(App)等,其中,-->表示下一级启动对象,Bootloader、Kernel、App等可以组成一个固件包烧写到对应一个型号的闪存芯片中,因此计算机根据所述预设子操作数据表和预设子操作,可以获取闪存芯片中每一级的启动代码的启动指令,比如所述每一级启动代码的启动指令可以包括Bootloader代码的启动指令、Kernel代码的启动指令、App代码的启动指令等;其中,所述闪存芯片对应启动代码的启动指令可以是所述闪存芯片中每一级启动代码的启动指令。

步骤S14、执行所述启动指令对应的启动操作,并输出提示信息;其中,所述提示信息用于提示所述1个型号的闪存芯片被命中。

具体的,计算机设备获取到的所述闪存芯片对应启动代码的启动指令,可以是所述闪存芯片中每一级启动代码的启动指令,当计算机设备获取到所述闪存芯片中每一级启动代码的启动指令时,可以执行所述启动指令对应的启动操作,比如可以依次执行每个闪存芯片中Bootloader代码的启动操作、Kernel代码的启动操作以及App代码的启动操作等。

当计算机设备执行完所述闪存芯片中每一级启动代码的启动指令对应的启动操作时,计算机设备会输出提示所述1个型号的闪存芯片被命中的提示信息,用以说明1个型号的闪存芯片被启动。

在本实施例中,计算机设备首先获取固化启动代码是否为首次启动的启动信息,并且当所述启动信息表征所固化启动代码为非首次启动时,能够直接从寄存器中获取1个型号的闪存芯片对应的预设子操作数据表和预设子操作;以此避免现有方法中只要接收到固化启动代码的启动指令就执行遍历固化启动代码中预先存储的各个型号的闪存芯片的操作参数、且并不涉及是否非首次启动导致的启动速度慢的问题;进一步地,在根据所述预设子操作数据表和预设子操作获取所述闪存芯片对应启动代码的启动指令时,也能够执行所述启动指令对应的启动操作,并输出提示信息。以此实现固化启动代码在非首次启动时能够通过从寄存器中获取的预设子操作数据表和预设子操作直接命中1个型号的闪存芯片的目的,从而提高了嵌入式系统的启动速度。

上述实施例公开了计算机设备根据所获取的固化启动代码是否为首次启动的启动信息如何对所述1个型号的闪存芯片执行启动操作的具体过程,下面通过下述实施例描述当所述启动信息表征所述固化启动代码为首次启动时,计算机设备如何执行启动操作的具体过程。需要说明的是,以下方法仅用于解释本申请而不用于对本申请进行限定。

图2为另一个实施例提供的基于固化启动代码的启动方法流程示意图,本实施例涉及的是当所述启动信息表征所述固化启动代码为首次启动时,计算机设备如何执行启动操作的具体过程。在上述实施例的基础上,可选的,如图2所示,所述方法还包括:

步骤S21、当所述启动信息表征所述固化启动代码为首次启动时,对固化启动代码中预先存储的m个型号的闪存芯片的操作参数进行封装处理,得到m个子操作;其中,所述操作参数包括读操作参数、写操作参数中的至少一种,所述1个型号的闪存芯片的操作参数是从固化启动代码中预先存储的m个型号的闪存芯片的操作参数中选取的,m远远大于1。

具体的,当计算机设备确定所述固化启动代码为首次启动时,可以对该固化启动代码中预先存储的m个型号的闪存芯片的操作参数分别进行封装处理,具体是将该m个型号的闪存芯片的操作参数分别以结构体的方式进行封装,并将封装后的m个结构体形式的操作参数,确定为所述m个子操作。

在实际处理过程中,所述闪存芯片可以为NAND FLASH芯片,并且可以从固化启动代码中会预先存储的m个型号的NAND FLASH芯片的操作参数中选取其中1个型号的NANDFLASH芯片的操作参数,并且对该个型号的NAND FLASH芯片的读操作参数以结构体的方式进行封装后得到的操作体可以如表1所示,以此减小1个操作体的存储空间,提高寄存器的运行速度。

表1

步骤S22、对所述m个子操作进行归类处理,得到k个子操作数据表。

具体的,计算机设备在得到m个子操作后,可以将m个子操作进行归类,比如当m个型号的闪存芯片为m个型号的NAND FLASH芯片时,并且m个型号的NAND FLASH芯片中属于SLC的d个型号的NAND FLASH芯片对应的d个子操作归为SLC类集合、将属于MLC的e个型号的NAND FLASH芯片对应的e个子操作归为MLC类集合、将属于TLC的f个型号的NAND FLASH芯片对应的f个子操作归为TLC类集合等等;其中,所述MLC类集合、所述MLC类集合、所述TLC类集合等k个类集合即为所述k个子操作数据表,d+e+f+……=m。

步骤S23、对所述m个子操作以及所述k个子操作数据表分别依次进行顺序编号,得到编号后的m个子操作和编号后的k个子操作数据表。

具体的,计算机设备在得到所述m个子操作以及所述k个子操作数据表后,可以对其分别依次进行编号处理,可以对m个子操作依次顺序编号为子操作编号1、子操作编号2、……、子操作编号m,可以对k个子操作数据表依次顺序编号为表1、表2、……、表k,以此得到编号后的m个子操作和编号后的k个子操作数据表。

在实际处理过程中,当m个型号的闪存芯片为m个型号的NAND FLASH芯片时,每个子操作对应一个型号的NAND FLASH芯片,并且当编号后的k个子操作数据表包括操作数据表0和操作数据表1、编号后的m个子操作包括子操作编号0、子操作编号1、子操作编号2时,可以生成如表2所示的NAND FLASH读操作数据表;在表2中,每一个子操作对应一个型号的NAND FLASH芯片的读操作参数。

表2

步骤S24、确定所述编号后的m个子操作为所述预设子操作,确定所述编号后的k个子操作数据表为所述预设子操作数据表;其中,m远远大于1,k为大于1的整数。

具体的,计算机设备在得到所述编号后的m个子操作和编号后的k个子操作数据表,可以进一步将所述编号后的m个子操作确定为所述预设子操作,将所述编号后的k个子操作数据表确定为所述子操作数据表,以便于存储后再次启动时可以快速查找以及命中。

步骤S25、根据所述预设子操作数据表和预设子操作,获取所述1个型号的闪存芯片对应启动代码的启动指令。

具体的,计算机设备在得到所述预设子操作数据表和预设子操作后,可以直接获取到其中1个型号的闪存芯片的操作参数,并在获取到所述1个型号的闪存芯片的操作参数时,也可以获取所述1个型号的闪存芯片对应启动代码的启动指令;其中,所述闪存芯片对应启动代码的启动指令可以是所述1个型号的闪存芯片中每一级启动代码的启动指令。

步骤S26、将所述预设子操作和所述预设子操作数据表存储至所述寄存器中,并执行所述启动指令对应的启动操作。

具体的,当计算机设备获取到1个型号的闪存芯片对应启动代码的启动指令时,可以先将所述预设子操作和所述预设子操作数据表存储至寄存器中,也可以将一标识参数存储至寄存器中,然后再执行所述启动指令对应的启动操作;其中,该标识参数可以是一个bit数据,当所述标识参数与预设阈值相同时可以确定寄存器中存储的所述预设子操作和所述预设子操作数据表是有效的。

在实际处理过程中,寄存器可以是掉电保持寄存器、一次性可编程存储器(efuse)或者非易失性存储器等(Non-Volatile Memory,NVM),所述预设子操作、所述预设子操作数据表和所述标识参数可以存放于寄存器的预设存储单元中,所述预设存储单元可以是一个word大小的存储单元。

其中,可以将所述预设子操作和所述预设子操作数据表存储至所述预设存储单元的高wbit、将所述标识参数存储至所述预设存储单元的低vbit,也可以将所述预设子操作和所述预设子操作数据表储至所述预设存储单元的低vbit、将所述预设子操作和所述预设子操作数据表存储至所述预设存储单元的高wbit。

在本实施例中,计算机设备确定获取到的所述启动信息表征所述固化启动代码为首次启动时,通过封装处理m个型号的闪存芯片的操作参数、对封装处理后得到的m个子操作进行归类处理,以及对归类处理后得到的k个子操作数据表和m个子操作进行编号处理,以此确定出所述预设子操作数据表和所述预设子操作后进程存储,以确保计算机设备确定固化启动代码为非首次启动时能够通过查找预设子操作数据表和预设子操作直接获取所述闪存芯片对应启动代码的启动指令,从而提高1个型号的闪存芯片的启动速度。

图3为又一个实施例提供的基于固化启动代码的启动方法流程示意图,本实施例涉及的是计算机设备如何对所述m个子操作进行归类处理,得到k个子操作数据表的具体过程。在上述实施例的基础上,可选的,如图3所示,步骤S22可以通过以下子步骤实现:

步骤S221、获取每个子操作对应的闪存芯片的闪存型号。

具体的,计算机设备在得到m个子操作后,可以对应获取每个子操作对应的闪存芯片的闪存型号,所述闪存型号可以包括对应闪存芯片的存储容量、所属类型、生产厂商以及制造工艺等,所述存储容量可以为512M、2G、8G、32G等等,所述所属类型可以为SLC、MLC、TLC等等,所述生产厂商可以为三星电子(Samsung)、SK海力士(SK Hynix)、东芝半导体(Toshiba)等等,所述制造工艺可以是16纳米、15纳米或者10纳米等等。

步骤S222、确定m个闪存型号中属于相同闪存类别的k个闪存型号集合。

具体的,所述闪存类别可以是存储容量、所属类型、生产厂商或者制造工艺等,计算机设备可以将相同存储容量的闪存型号分别归为一个闪存型号集合,比如计算机设备可以将m个闪存型号中存储容量为512M的对应t

计算机设备也可以将m个闪存型号中所属类型为SLC的对应t

计算机设备也可以将m个闪存型号中制造工艺为16纳米的对应t

其中,第i个闪存型号集合中包括t

步骤S223、确定k个闪存型号集合对应的k个子操作集合,并将所述k个子操作集合确定为所述k个子操作数据表。

具体的,计算机设备在得到k个闪存型号集合时,可以根据闪存型号与子操作之间的一一对应关系,确定出所述k个闪存型号集合对应的k个子操作集合,并将所述k个子操作集合确定为所述k个子操作数据表;其中,第i个子操作数据表中包括t

在本实施例中,计算机设备首先获取m个子操作对应的m个闪存型号,然后进一步确定m个闪存型号中属于相同闪存类别的k个闪存型号集合,以此确定k个闪存型号集合对应的k个子操作集合为所述k个子操作数据表,提高了计算机设备确定k个子操作数据表的灵活性和可靠性。

图4为又一个实施例提供的基于固化启动代码的启动方法流程示意图,本实施例涉及的是计算机设备如何检测寄存器存储的预设子操作数据表和预设子操作是否有效的具体过程。在上述实施例的基础上,可选的,如图4所示,步骤S12中所述检测寄存器中的数据是否有效,并得到检测结果,可以通过以下子步骤实现:

步骤S121、检测寄存器中的标识参数是否与预设阈值相同,所述标识参数用于验证寄存器中存储的所述预设子操作数据表和预设子操作是否有效。

具体的,所述预设阈值可以是验证所述标识参数是否发生变化的基准值;当计算机设备检测到寄存器中的标识参数与所述阈值相同时,说明所述标识参数没有发生变化;反之,当计算机设备检测到寄存器中的标识参数与所述预设阈值不相同时,说明所述标识参数发生了变化。

步骤S122、当所述标识参数与所述预设阈值相同时,确定寄存器中存储的所述预设子操作数据表和预设子操作有效。

具体的,计算机设备确定所述标识参数与所述预设阈值相同时,可以确定所述标识参数没有发生变化,并且固化启动代码是非首次启动,因此可以确定此时寄存器中存储有所述预设子操作数据表和预设子操作,并且所存储的所述预设子操作数据表和预设子操作是有效的;可选的,所述预设阈值可以为0x55aa。

步骤S123、当所述标识参数与所述预设阈值不相同时,输出寄存器存储数据无效的指示信息。

具体的,计算机设备确定所述标识参数与所述预设阈值不相同时,可以确定所述标识参数是出厂时的默认值,此时可以确定固化启动代码是首次启动,并且没有将所述预设子操作数据表和预设子操作存储至寄存器中,因此会输出寄存器无效的指示信息,以使得固化启动代码遍历m个型号的闪存芯片的操作参数后确定出所述预设子操作数据表和预设子操作。

在本实施例中,计算机设备根据寄存器中的标识参数是否与预设阈值相同的检测结果进一步确定寄存器中存储的预设子操作和预设子操作数据表是否有效,以此确保寄存器存储预设子操作和预设子操作数据表的有效性和可靠性,提高了计算机设备的功能多样性。

图5为又一个实施例提供的基于固化启动代码的启动方法流程示意图,本实施例涉及的是计算机设备确定寄存器存储数据无效时如何获取所述闪存芯片中的下一级应用启动指令的具体过程。在上述实施例的基础上,可选的,如图5所示,在步骤S12之后,所述方法还包括:

步骤S31、对固化启动代码中预先存储的所述预设子操作数据表进行遍历操作,得到遍历操作的遍历结果。

具体的,计算机设备确定出寄存器中的标识参数与预设阈值不相同时,可以认为寄存器当前存储的数据是无效的,此时可以对固化启动代码中预先存储的所述预设子操作数据表进行遍历操作。

其中,对所述预设子操作数据表进行遍历操作,可以认为是对至少一个预设子操作数据表依次进行遍历,也即对第1个预设子操作数据表中包括的t

在实际处理过程中,计算机设备确定固化启动代码为首次启动代码时,通过固化启动代码遍历m个型号的闪存芯片的操作参数进行遍历得到所述预设子操作数据表和预设子操作,不仅会将所述预设子操作数据表和预设子操作存储至寄存器,也会将所述预设子操作数据表存储至固化启动代码中。

步骤S32、当所述遍历操作的遍历结果包括所述1个型号的闪存芯片中的下一级应用启动指令时,确定遍历成功。

具体的,计算机设备在对至少一个预设子操作数据表进行遍历操作后,如果得到的遍历结果中包括1个型号的闪存芯片对应启动代码的启动指令时,比如输出的是Bootloader代码的启动指令时,可以说明所执行的遍历操作是成功的。

步骤S33、将所述预设子操作数据表、所述预设子操作以及标识参数存储至所述寄存器中。

具体的,计算机设备确定遍历操作成功后,可以将所述编号后的m个子操作、所述编号后的k个子操作数据表存储于寄存器的预设存储单元的高wbit,将所述标识参数存储于所述预设存储单元的低vbit;也可以将所述标识参数存储于存储于所述预设存储单元的高wbit,将所述编号后的m个子操作、所述编号后的k个子操作数据表存储于存储于所述预设存储单元的低vbit。

其中,所述预设存储单元可以是所述寄存器中一个word大小的存储单元,所述编号后的m个子操作可以是通过m个型号的闪存芯片的操作参数经过封装处理后得到的m个子操作、再依次进行顺序编号后确定的,所述编号后的k个子操作数据表可以是所述m个子操作经过归类处理后得到的k个子操作数据表、再依次进行顺序编号后确定的。

本实施例中,计算机设备在确定出寄存器存储数据无效时通过对固化启动代码中预先存储的预设子操作数据表进行遍历操作,并确定在执行遍历操作后得到的遍历结果中包括所述1个型号的闪存芯片中的下一级应用启动指令时确定遍历成功,以此进一步提高寄存器的灵活性和多样性,然后计算机设备将所述预设子操作数据表、所述预设子操作以及标识参数存储至所述寄存器中,以便于后续再次接收到固化启动代码为非首次启动的启动信息时能够快速命中1个型号的闪存芯片,从而提高了计算机设备的启动速度。

图6为又一个实施例提供的基于固化启动代码的启动方法流程示意图,本实施例涉及的是计算机设备如何根据遍历操作的遍历结果确定遍历成功的具体过程。在上述实施例的基础上,可选的,如图6所示,步骤S32可以通过以下子步骤实现:

步骤S321、确定对第i个子操作数据表中的t

具体的,计算机设备可以遍历第i个子操作数据表中的t

在实际处理过程中,当计算机设备判断t

步骤S322、当所述第j个操作参数有效时,确定遍历成功。

具体的,当计算机设备确定出t

在实际处理过程中,如果计算机设备遍历的是第1个子操作数据表中的t

步骤S323、当所述第j个操作参数无效时,且确定j<t

具体的,计算机设备确定所述第j个操作参数无效时,说明根据所述第j个操作参数不能获取到所述闪存芯片中的下一级应用启动指令,说明遍历操作并没有成功,此时可以令j的值加1后再次进行判断。

在实际处理过程中,如果计算机设备遍历的是第1个子操作数据表中的t

如果t

步骤S324、当t

具体的,当计算机判断t

步骤S325、输出提醒信息,所述提醒信息用于提醒本次启动失败。

具体的,计算机设备遍历完k个预设子操作数据表后确定一个有效的操作参数都不存在,此时说明不止寄存器中的存储数据无效,固化启动代码中预先存储的所述预设子操作数据表也是无效的,此时计算机设备并不能正常用于命中1个型号的闪存芯片的1个操作参数,因此输出本次启动失败的提醒信息。

在本实施例中,计算机设备通过对k个子操作数据表对应的m个操作参数依次进行遍历操作,用以判断是否存在一个有效的操作参数,并且m个操作参数中只要存在一个有效的操作参数时即可确定遍历成功,当m个操作参数都无效时输出本次启动失败的提醒信息,以此提高了计算机设备的灵活性和智能性。

图7为另一个实施例提供的基于固化启动代码的启动方法流程示意图,本实施例涉及的是计算机设备如何基于所述操作参数判断是否能获取到所述1个型号的闪存芯片中的下一级应用启动指令的具体过程。在上述实施例的基础上,可选的,如图7所示,步骤S321中判断所述操作参数是否有效包括基于所述操作参数是否能获取到所述1个型号的闪存芯片对应启动代码的启动指令,可以通过以下子步骤实现:

步骤S3211、根据所述操作参数对应获取下一级应用的启动数据。

具体的,计算机设备的启动流程可以包括BOOTROM-->启动装载程序(Bootloader)-->实时操作系统程序(Kernel)-->应用程序(App)等,其中,-->表示下一级启动对象,并且每一个闪存芯片中都被烧写有Bootloader、Kernel、App等组成的固件包,而且Bootloader、Kernel、App的头文件中分别包括预设校验参数,所述预设校验参数可以包括预设校验位数和预设校验值。

因此,当计算机设备在遍历k个预设子操作数据表中的其中一个预设子操作时,会进一步判断该预设子操作对应的闪存芯片的操作参数是否有效,也即计算机根据所述操作参数可以对应获取所述1个型号的闪存芯片中下一级的启动数据,比如当下一级为Bootloader时,计算机设备可以根据所述操作参数对应获取的启动数据为Bootloader代码。

步骤S3212、根据预设校验参数检验所述启动数据,并判断校验后的启动数据与所述下一级应用启动指令对应的启动数据是否一致。

具体的,所述预设校验参数可以是所述下一级应用启动指令对应的启动数据携带的预设校验位数和预设校验值,比如下一级应用启动指令为Bootloader代码的启动指令时,计算机设备可以根据Bootloader代码中的预设校验参数对所述操作参数对应获取的启动数据进行校验,然后再进一步判断校验后的启动数据与Bootloader代码的启动指令对应的启动数据是否相同,相同时说明校验后的启动数据是正确的,不相同时说明校验后的启动数据是不正确的。

在实际处理过程中,Bootloader代码中的预设校验值可以为magic校验值、crc校验值等,当所述校验后的启动数据与Bootloader代码的启动指令对应的启动数据相同时,说明校验后的启动数据通过了magic和crc校验,此时说明所述操作参数是有效的;反之,当所述校验后的启动数据与Bootloader代码的启动指令对应的启动数据不相同时,说明校验后的启动数据没有通过magic和crc等校验中的至少一个,此时说明所述操作参数是无效的。

步骤S3213、若一致,确定基于所述操作参数能获取到所述1个型号的闪存芯片中的下一级应用启动指令。

具体的,计算机设备确定所述校验后的启动数据与Bootloader代码的启动指令对应的启动数据相同时,可以确定校验后的启动数据通过了Bootloader代码的magic和crc等校验,从而说明所述操作参数是有效的,计算机设备可以根据所述操作参数获取到Bootloader代码的启动指令。

步骤S3214、若不一致,确定基于所述操作参数不能获取到所述1个型号的闪存芯片中的下一级应用启动指令。

具体的,计算机设备确定所述校验后的启动数据与Bootloader代码的启动指令对应的启动数据不相同时,可以确定校验后的启动数据没有通过Bootloader代码的magic和crc等校验中的至少一个,从而说明所述操作参数是无效的,计算机设备不能根据所述操作参数获取到Bootloader代码的启动指令。

在本实施例中,计算机设备在根据所述操作参数获取到下一级应用的启动数据时通过预设校验参数进行检验,并进一步判断校验后的启动参数是否是该下一级应用启动指令对应的启动数据是否一致,以此确定是否根据能够该操作参数获取所述1个型号的闪存芯片中的下一级应用启动指令,从而提高了计算机设备获取1个型号的闪存芯片的下一级应用启动指令的可靠性和灵活性,也提高了电子设备的功能多样性。

应该理解的是,虽然图1-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图8所示,提供了一种基于固化启动代码的启动装置。如图8所示,所述装置包括:第一获取模块11、第二获取模块12、第三获取模块13和执行模块14。

具体的,第一获取模块11,用于获取固化启动代码是否为首次启动的启动信息;第二获取模块12,用于当所述启动信息表征所述固化启动代码为非首次启动时,从寄存器中获取1个型号的闪存芯片对应的预设子操作数据表和预设子操作;第三获取模块13,用于根据所述预设子操作数据表和预设子操作,获取所述闪存芯片对应启动代码的启动指令;执行模块14,用于执行所述启动指令对应的启动操作,并输出提示信息;其中,所述提示信息用于提示所述1个型号的闪存芯片被命中。

所述基于固化启动代码的启动装置,具体还可以包括:封装模块21、第四获取模块22、第五获取模块23、第一确定模块24、第六获取模块25和处理模块26。

具体的,封装模块21,用于当所述启动信息表征所述固化启动代码为首次启动时,对固化启动代码中预先存储的m个型号的闪存芯片的操作参数进行封装处理,得到m个子操作;其中,所述操作参数包括读操作参数、写操作参数中的至少一种,所述1个型号的闪存芯片的操作参数是从固化启动代码中预先存储的m个型号的闪存芯片的操作参数中选取的,m远远大于1;第四获取模块22,用于对所述m个子操作进行归类处理,得到k个子操作数据表;第五获取模块23,用于对所述m个子操作以及所述k个子操作数据表分别依次进行顺序编号,得到编号后的m个子操作和编号后的k个子操作数据表;第一确定模块24,用于确定所述编号后的m个子操作为所述预设子操作,确定所述编号后的k个子操作数据表为所述预设子操作数据表;其中,k为大于1的整数;第六获取模块25,用于根据所述预设子操作数据表和预设子操作,获取所述1个型号的闪存芯片对应启动代码的启动指令;处理模块26,用于将所述预设子操作和所述预设子操作数据表存储至所述寄存器中,并执行所述启动指令对应的启动操作。

所述封装模块21,可以具体用于将每个型号的闪存芯片的操作参数分别以结构体的方式进行封装,并将封装后的m个结构体形式的操作参数,确定为所述m个子操作。

所述第四获取模块22,可以具体包括:获取单元221、第一确定单元222、第二确定单元223。

具体的,获取单元221,用于获取每个子操作对应的闪存芯片的闪存型号;

第一确定单元222,用于确定m个闪存型号中属于相同闪存类别的k个闪存型号集合;第二确定单元223,用于确定k个闪存型号集合对应的k个子操作集合,并将所述k个子操作集合确定为所述k个子操作数据表;其中,第i个闪存型号集合中包括t

所述基于固化启动代码的启动装置还可以具体包括:检测单元121、第一处理单元122和第二处理单元123。

具体的,检测单元121,用于检测寄存器中的标识参数是否与预设阈值相同,所述标识参数用于验证寄存器中存储的所述预设子操作数据表和预设子操作是否有效;第一处理单元122,用于当所述标识参数与所述预设阈值相同时,确定寄存器中存储的所述预设子操作数据表和预设子操作有效;第二处理单元123,用于当所述标识参数与所述预设阈值不相同时,输出寄存器存储数据无效的指示信息。

所述基于嵌入式系统的启动装置,还可以具体包括:遍历模块31、第二确定模块32和存储模块33。

具体的,遍历模块31,用于对固化启动代码中预先存储的所述预设子操作数据表进行遍历操作,得到遍历操作的遍历结果;第二确定模块32,用于当所述遍历操作的遍历结果包括所述1个型号的闪存芯片中的下一级应用启动指令时,确定遍历成功;存储模块33,用于将所述预设子操作数据表、所述预设子操作以及标识参数存储至所述寄存器中。

所述第二确定模块32,还可以具体包括:第一判断单元321、第一确定单元322、第二判断单元323、第三判断单元324、第二确定单元325。

具体的,第一判断单元321,用于确定对第i个子操作数据表中的t

所述第二确定单元325,可以具体用于:根据所述操作参数对应获取下一级应用的启动数据;根据预设校验参数检验所述启动数据,并判断校验后的启动数据与所述下一级应用启动指令对应的启动数据是否一致;若一致,确定基于所述操作参数能获取到所述1个型号的闪存芯片中的下一级应用启动指令;若不一致,确定基于所述操作参数不能获取到所述1个型号的闪存芯片中的下一级应用启动指令。

关于基于固化启动代码的启动装置的具体限定可以参见上文中对于基于固化启动代码的启动方法的限定,在此不再赘述。上述基于固化启动代码的启动装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种考核量化值获取方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

获取固化启动代码是否为首次启动的启动信息;当所述启动信息表征所述固化启动代码为非首次启动时,从寄存器中获取1个型号的闪存芯片对应的预设子操作数据表和预设子操作;根据所述预设子操作数据表和预设子操作,获取所述闪存芯片对应启动代码的启动指令;执行所述启动指令对应的启动操作,并输出提示信息;其中,所述提示信息用于提示所述1个型号的闪存芯片被命中。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

当所述启动信息表征所述固化启动代码为首次启动时,对固化启动代码中预先存储的m个型号的闪存芯片的操作参数进行封装处理,得到m个子操作;其中,所述操作参数包括读操作参数、写操作参数中的至少一种,所述1个型号的闪存芯片的操作参数是从固化启动代码中预先存储的m个型号的闪存芯片的操作参数中选取的,m远远大于1;对所述m个子操作进行归类处理,得到k个子操作数据表;对所述m个子操作以及所述k个子操作数据表分别依次进行顺序编号,得到编号后的m个子操作和编号后的k个子操作数据表;确定所述编号后的m个子操作为所述预设子操作,确定所述编号后的k个子操作数据表为所述预设子操作数据表;其中,k为大于1的整数;根据所述预设子操作数据表和预设子操作,获取所述1个型号的闪存芯片对应启动代码的启动指令;将所述预设子操作和所述预设子操作数据表存储至所述寄存器中,并执行所述启动指令对应的启动操作。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

将每个型号的闪存芯片的操作参数分别以结构体的方式进行封装,并将封装后的m个结构体形式的操作参数,确定为所述m个子操作。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

获取每个子操作对应的闪存芯片的闪存型号;确定m个闪存型号中属于相同闪存类别的k个闪存型号集合;确定k个闪存型号集合对应的k个子操作集合,并将所述k个子操作集合确定为所述k个子操作数据表;其中,第i个闪存型号集合中包括t

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

检测寄存器中的标识参数是否与预设阈值相同,所述标识参数用于验证寄存器中存储的所述预设子操作数据表和预设子操作是否有效;当所述标识参数与所述预设阈值相同时,确定寄存器中存储的所述预设子操作数据表和预设子操作有效;当所述标识参数与所述预设阈值不相同时,输出寄存器存储数据无效的指示信息。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

对固化启动代码中预先存储的所述预设子操作数据表进行遍历操作,得到遍历操作的遍历结果;当所述遍历操作的遍历结果包括所述1个型号的闪存芯片中的下一级应用启动指令时,确定遍历成功;将所述预设子操作数据表、所述预设子操作以及标识参数存储至所述寄存器中。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

确定对第i个子操作数据表中的t

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

根据所述操作参数对应获取下一级应用的启动数据;根据预设校验参数检验所述启动数据,并判断校验后的启动数据与所述下一级应用启动指令对应的启动数据是否一致;若一致,确定基于所述操作参数能获取到所述1个型号的闪存芯片中的下一级应用启动指令;若不一致,确定基于所述操作参数不能获取到所述1个型号的闪存芯片中的下一级应用启动指令。

应当清楚的是,本申请实施例中处理器执行计算机程序的过程,与上述方法中各个步骤的执行过程一致,具体可参见上文中的描述。

在一个实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

获取固化启动代码是否为首次启动的启动信息;当所述启动信息表征所述固化启动代码为非首次启动时,从寄存器中获取1个型号的闪存芯片对应的预设子操作数据表和预设子操作;根据所述预设子操作数据表和预设子操作,获取所述闪存芯片对应启动代码的启动指令;执行所述启动指令对应的启动操作,并输出提示信息;其中,所述提示信息用于提示所述1个型号的闪存芯片被命中。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

当所述启动信息表征所述固化启动代码为首次启动时,对固化启动代码中预先存储的m个型号的闪存芯片的操作参数进行封装处理,得到m个子操作;其中,所述操作参数包括读操作参数、写操作参数中的至少一种,所述1个型号的闪存芯片的操作参数是从固化启动代码中预先存储的m个型号的闪存芯片的操作参数中选取的,m远远大于1;对所述m个子操作进行归类处理,得到k个子操作数据表;对所述m个子操作以及所述k个子操作数据表分别依次进行顺序编号,得到编号后的m个子操作和编号后的k个子操作数据表;确定所述编号后的m个子操作为所述预设子操作,确定所述编号后的k个子操作数据表为所述预设子操作数据表;其中,k为大于1的整数;根据所述预设子操作数据表和预设子操作,获取所述1个型号的闪存芯片对应启动代码的启动指令;将所述预设子操作和所述预设子操作数据表存储至所述寄存器中,并执行所述启动指令对应的启动操作。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

将每个型号的闪存芯片的操作参数分别以结构体的方式进行封装,并将封装后的m个结构体形式的操作参数,确定为所述m个子操作。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

获取每个子操作对应的闪存芯片的闪存型号;确定m个闪存型号中属于相同闪存类别的k个闪存型号集合;确定k个闪存型号集合对应的k个子操作集合,并将所述k个子操作集合确定为所述k个子操作数据表;其中,第i个闪存型号集合中包括t

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

检测寄存器中的标识参数是否与预设阈值相同,所述标识参数用于验证寄存器中存储的所述预设子操作数据表和预设子操作是否有效;当所述标识参数与所述预设阈值相同时,确定寄存器中存储的所述预设子操作数据表和预设子操作有效;当所述标识参数与所述预设阈值不相同时,输出寄存器存储数据无效的指示信息。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

对固化启动代码中预先存储的所述预设子操作数据表进行遍历操作,得到遍历操作的遍历结果;当所述遍历操作的遍历结果包括所述1个型号的闪存芯片中的下一级应用启动指令时,确定遍历成功;将所述预设子操作数据表、所述预设子操作以及标识参数存储至所述寄存器中。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

确定对第i个子操作数据表中的t

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

根据所述操作参数对应获取下一级应用的启动数据;根据预设校验参数检验所述启动数据,并判断校验后的启动数据与所述下一级应用启动指令对应的启动数据是否一致;若一致,确定基于所述操作参数能获取到所述1个型号的闪存芯片中的下一级应用启动指令;若不一致,确定基于所述操作参数不能获取到所述1个型号的闪存芯片中的下一级应用启动指令。

应当清楚的是,本申请实施例中处理器执行计算机程序的过程,与上述方法中各个步骤的执行过程一致,具体可参见上文中的描述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号