基于多核处理器的双系统启动方法
技术领域
本申请实施例涉及系统运行
技术领域
,尤其涉及基于多核处理器的双系统启动方法。背景技术
随着先进驾驶辅助系统(Advanced Driver Assistance System)的发展,以及车载传感器数量的不断增加,算法空间复杂度和时间复杂度的增大,软件对硬件平台的要求越来越高,在同等硬件平台下,提高软件对硬件的利用率,可以让系统更好的运行。
Cortex-R5处理器为汽车市场上的实时应用提供高性能解决方案,车用微控制器采用双核Cortex-R5,能够降低原料采购和开发成本,增强系统级实时行为,提高系统安全性。车用zynqmp芯片包括两个异构的Cortex-R5内核硬件上支持VxWorks操作系统的AMP(asymmetric multi-processing,非对称多进程处理)模式,但是目前VxWorks系统仅能在Cortex-R5上单核运行,造成了硬件资源的浪费。
发明内容
本申请实施例提供基于多核处理器的双系统启动方法,可以实现在多核处理器上同时独立的运行两个系统,从而提高硬件资源的利用率,提高系统系性能。
第一方面,本申请实施例提供了基于多核处理器的双系统启动方法,所述方法包括:
响应于系统启动指令,根据系统标识和系统镜像启动地址的关联关系,在嵌入式框架中的系统工程中确定系统镜像启动地址,并将所述系统镜像分别加载至所述处理器的各核中;
调用引导程序分别对处理器的各核以及所述处理器的紧耦合内存进行初始化,并关闭所述处理器的内存刷新操作和处理器重置操作;
根据设备树文件,将所述处理器的外设资源分配给所述处理器的各核,并在所述处理器的各核上分别运行系统。
第二方面,本申请实施例提供了基于多核处理器的双系统启动装置,所述装置包括:
系统镜像确定模块,用于响应于系统启动指令,根据系统标识和系统镜像启动地址的关联关系,在嵌入式框架中的系统工程中确定系统镜像启动地址,并将所述系统镜像分别加载至所述处理器的各核中;
初始化模块,用于调用引导程序分别对处理器的各核以及所述处理器的紧耦合内存进行初始化,并关闭所述处理器的内存刷新操作和处理器重置操作;
外设资源分配模块,用于根据设备树文件,将所述处理器的外设资源分配给所述处理器的各核,并在所述处理器的各核上分别运行系统。
第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的基于多核处理器的双系统启动方法。
第四方面,本申请实施例提供了一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例所述的基于多核处理器的双系统启动方法。
本申请实施例所提供的技术方案,响应于系统启动指令,根据系统标识和系统镜像启动地址的关联关系,在嵌入式框架中的系统工程中确定系统镜像启动地址,并将所述系统镜像分别加载至所述处理器的各核中,调用引导程序分别对处理器的各核以及所述处理器的紧耦合内存进行初始化,并关闭所述处理器的内存刷新操作和处理器重置操作,根据设备树文件,将所述处理器的外设资源分配给所述处理器的各核,并在所述处理器的各核上分别运行系统。本申请实施例通过为处理器的各核分别配置操作系统,分别对操作系统进行引导,并为操作系统配置外设资源,实现了在多核处理器上同时独立的运行两个系统,从而提高硬件资源的利用率,提高系统系性能。
附图说明
图1是本申请实施例一提供的基于多核处理器的双系统启动方法的流程图;
图2是本申请实施例二提供的基于多核处理器的双系统启动方法的流程图;
图3是本申请实施例三提供的基于多核处理器的双系统启动装置的结构示意图;
图4是本申请实施例五提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1是本申请实施例一提供的基于多核处理器的双系统启动方法的流程图,本实施例可适用于在双核处理器的各核上运行分别运行操作系统的情况。该方法可以由本申请实施例所提供的基于多核处理器的双系统启动装置执行,该装置可以由软件和/或硬件的方式来实现,并可集成于运行此系统的电子设备中。
如图1所示,所述基于多核处理器的双系统启动方法包括:
S110、响应于系统启动指令,根据系统标识和系统镜像启动地址的关联关系,在嵌入式框架中的系统工程中确定系统镜像启动地址,并将所述系统镜像分别加载至所述处理器的各核中。
其中,系统启动指令是指用于指触发操作系统启动的指令,可选的,系统启动指令是处理器上电或者复位完成的信号。其中,系统标识是指可以唯一标识一个操作系统的信息,利用系统标识区别不同操作系统,可选的,系统标识包括:系统类型、版本号、系统名称和系统存储信息。其中,系统镜像是指将特定的一系列文件按照一定的格式制作成单一的文件,以方便用户下载和使用,系统可以被特定的软件识别,系统镜像包括:系统文件、引导文件、分区表信息等信息。系统镜像启动地址是指读取系统镜像启动代码的入口地址。
每个系统都存在与之对应的系统镜像,系统标识和系统镜像启动地址之间存在关联关系,即在已知系统标识或者系统镜像启动地址的任一方信息的情况下,可以确定另一方的信息。
在一个可选的实施例中,根据系统标识和系统镜像启动地址的关联关系,在嵌入式框架中的系统工程中确定系统镜像启动地址,并将所述系统镜像分别加载至所述处理器的各核中,包括:在所述嵌入式架构的系统工程中确定与第一系统关联的第一系统镜像启动地址,并将第一系统镜像加载至所述处理器的第一个核中;在所述嵌入式架构的系统工程中确定与第二系统关联的第二系统镜像启动地址,并将第二系统镜像加载至所述处理器的第二个核中;其中,第一系统镜像启动地址与第二系统镜像启动地址不同。
建立系统标识和系统镜像启动地址的关联关系,具体的,可以在workbench IDE环境为每个操作系统建立对应嵌入式架构的系统工程,系统工程中包括系统镜像,系统工程存在对应的镜像启动地址。在一个可选的实施例中,第一系统和第二系统均为VxWorks系统,处理器为双核Cortex-R5。其中,VxWorks是一种嵌入式实时操作系统,是嵌入式开发环境的关键组成部分。具备良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中。
示例性的,在双核Cortex-R5处理器运行VxWorks,为方便表述,分别称双核Cortex-R5处理器的两个核为核1与核2,具体的,在核1与核2分别运行VxWorks系统,两个操作系统称为第一系统和第二系统,第一系统和第二系统分别对应着第一系统镜像启动地址和第二系统镜像启动地址,第一系统镜像启动地址与第二系统镜像启动地址不同,根据第一系统镜像启动地址和第二系统镜像启动地址分别将第一系统镜像和第一系统镜像加载至核1与核2中。值得注意的是,上述示例性的内容仅作为解释本发明实施例使用,并不会对本发明实施例造成限定,第一系统和第二系统可以为任一可以在嵌入式设备上运行的操作系统如Linux系统,具体可以依据实际情况确定,在这里不作限定。同理,多核处理器也不限于双核Cortex-R5处理器。
S120、调用引导程序分别对处理器的各核以及所述处理器的紧耦合内存进行初始化,并关闭所述处理器的内存刷新操作和处理器重置操作。
系统镜像中包括有引导程序,引导程序是指用于引导操作系统的程序。引导是计算机开始输入时采用的一种手段,引导过程是指计算机启动后,由设备来实现少量指令和数据的输入,然后由它们再输入其他程序的过程。可选的,引导程序为U-Boot(UniversalBoot Loader),U-Boot是一种普遍用于嵌入式系统中的Bootloader,Bootloader是在操作系统运行之前执行的一段程序,通过Bootloader可以初始化硬件设备、建立内存空间的映射表,从而建立适当的软硬件环境,为最终调用操作系统内核做准备。U-Boot不仅可以支持多种嵌入式操作系统内核,可以支持多个处理器系列,具有较高的可靠性和稳定性。
在AMP模式下运行操作系统,需要利用引导程序分别去引导处理器中每一个核上运行的操作系统。因此,在操作系统启动时需要为多核处理器上运行的每个操作系统设置相应的引导程序,引导程序包括初始化代码和引导代码,调用引导程序分别对处理器的各核以及处理器的紧耦合内存进行初始化。
当多核处理器为Cortex-R5双核处理器的情况下,由于官方发布的U-Boot默认仅能引导一个R5核,并不支持的多个R5核引导。因此,需要在官方发布的U-Boot中为Cortex-R5处理器另外一个R5核添加相应的初始化代码和引导代码,以完成对Cortex-R5处理器双核的初始化。
由于,操作系统的运行必须要借助于处理器的外设资源,由于处理器的各核所拥有的外设资源是相同且固定的,在双操作系统启动运行过程中,出现资源冲突的概率很高,紧耦合内存(TCM,Tightly Coupled Memory)是指片上快速存储区,与片上缓存具有同等的性能。但是TCM可以完全由程序控制,相较于统计复用的缓存有更好的可预测性。在多核处理器运行双系统的情况下,TCM是一种十分重要外设资源。因此,在对处理器的各核进行初始化的同时还需要对TCM进行初始化。由于U-Boot引导程序中并不包括对处理器的紧耦合内存(TCM,Tightly Coupled Memory)进行初始化的相关代码,因此,需要在U-Boot中添加用于对TCM进行初始化的代码。此外,为保证双系统可以正常启动并运行避免系统重置,处理器的内存刷新操作(Dcache flush)和处理器重置(R5 cpu reset)操作。
S130、根据设备树文件,将所述处理器的外设资源分配给所述处理器的各核,并在所述处理器的各核上分别运行系统。
由于在AMP模式下,多核处理器的两个核上的操作系统是分别独立地运行,但在一个处理器里面两个核所拥有的外设资源是相同且固定的,为了避免两个操作系统之间发生资源冲突,因此,在需要对处理器的外设资源进行合理分配。其中,外设资源包括:处理器、控制器、存取存储器、紧耦合内存、串行通信口和集成电路总线等资源。在对处理器的外设资源进行分配时,可以将一部分外设资源如共享内存和双倍数据速率存取存储器等资源作为各核共同使用的资源,其余的如控制器、串行通信口和集成电路总线等资源作为分别独立使用的资源。
根据设备树文件,将处理器的外设资源分配给处理器的各核,具体的,可以分别修改两个系统的设备树文件,实现对处理器的各核可使用的外设资源进行分配。其中,设备树保留着存在于系统中的设备信息,当引导时,操作系统通过使用驱动程序和其他组件获得的信息建立此树,并且当添加或删除设备时更新此树。
本申请实施例所提供的技术方案,响应于系统启动指令,根据系统标识和系统镜像启动地址的关联关系,在嵌入式框架中的系统工程中确定系统镜像启动地址,并将所述系统镜像分别加载至所述处理器的各核中,调用引导程序分别对处理器的各核以及所述处理器的紧耦合内存进行初始化,并关闭所述处理器的内存刷新操作和处理器重置操作,根据设备树文件,将所述处理器的外设资源分配给所述处理器的各核,并在所述处理器的各核上分别运行系统。本申请实施例通过为处理器的各核分别配置操作系统,分别对操作系统进行引导,并为操作系统配置外设资源,实现了在多核处理器上同时独立的运行两个系统,从而提高硬件资源的利用率,提高系统系性能。
实施例二
图2是本申请实施例二提供的基于多核处理器的双系统启动方法的流程图。本实施例在上述实施例的基础上进行进一步地优化。具体优化为,根据设备树文件,将所述处理器的外设资源分配给所述处理器的各核,包括:根据所述设备树文件的中断控制器分配信息,将中断控制器作为所述处理器各核共同使用的外设资源;根据所述设备树文件的紧耦合内存分配信息,将紧耦合内存作为所述处理器各核独立使用的外设资源。
如图2所示,所述基于多核处理器的双系统启动方法包括:
S210、响应于系统启动指令,根据系统标识和系统镜像启动地址的关联关系,在嵌入式框架中的系统工程中确定系统镜像启动地址,并将所述系统镜像分别加载至所述处理器的各核中。
S220、调用引导程序分别对处理器的各核以及所述处理器的紧耦合内存进行初始化,并关闭所述处理器的内存刷新操作和处理器重置操作。
S230、根据所述设备树文件的中断控制器分配信息,将中断控制器作为所述处理器各核共同使用的外设资源。
设备树文件包括中断控制器(GIC)的分配信息,通过修改设备树文件可以修改中断控制器分配情况。由于GIC在处理器上电以后只能初始化一次,将GIC作为处理器各核共同使用的外设资源,在处理器上电以后,在处理器各核中任选一个核初始化GIC,因为处理器的任意一个核均可以初始化GIC,所以GIC为处理器各核共同使用的外设资源。
在一个可选的实施例中,在所述将中断控制器作为所述处理器各核共同使用的外设资源以后,所述方法还包括:根据所述设备树文件中预设的中断控制器初始化主体信息,在所述处理器中确定目标核,并利用所述目标核初始化所述中断控制器,以供所述中断控制器将产生的中断号发送至所述目标核;其中,所述目标核为所述处理器的一个核。
其中,中断控制器初始化主体信息是指在处理器上电后中确定本次对GIC进行初始化核的信息。中断控制器初始化主体信息是相关技术人员根据实际情况确定,并预先写入设备树文件中的,在这里不作限定。根据中断控制器初始化主体信息,在处理器中确定目标核,利用目标核完成本次初始化中断控制器的工作。在指定设备产生的中断号后由中断控制器将该中断号发送至本次对其初始化的目标核。
示例性的,在双核Cortex-R5处理器的两个核即核1与核2中选择核1作为目标核,GIC在处理器上电以后只能初始化一次,若存在核2初始化GIC的代码,需要将其删除。
为了解决双系统启动运行过程中,中断向量表地址冲突的问题,在一个可选的实施例中,所述紧耦合内存中还存储有处理器各核的中断向量表。由于VxWorks系统默认是将中断向量表放在双核Cortex-R5两个核共同使用的共享内存(OCM,On Chip Memory)内存里面,这样的就会造成两个系统的中断向量表地址使用发生冲突,即一个系统的中断向量表会被另一个系统的中断向量表覆盖,通过将中断向量表放TCM内存可以解决这一问题,TCM是两个Cortex-R5内核分别独立使用的内存空间,不会造成一个表会被另一个表覆盖的情况。
S240、根据所述设备树文件的紧耦合内存分配信息,将紧耦合内存作为所述处理器各核独立使用的外设资源。
为了提高处理器的工作效率,提高系统运行的稳定性,在系统运行的过程中,多核处理器上两个独立运行的系统,可以进行核间通信。在一个可选的实施例中,所述第一系统和所述第二系统采用OpenAMP架构或者共享内存机制进行核间通信。其中,OpenAMP架构是一种事件型通信机制,占用系统资源少,相应的,这种机制的数据吞吐量较小;共享内存机制是一种轮询的通信机制,数据吞吐量大,但占用系统资源量较大,两种核间通信方式,可以根据实际情况进行选择,在这里不作限定。
本申请实施例通过根据设备树文件的中断控制器分配信息,将中断控制器作为处理器各核共同使用的外设资源,并将中断向量表存储在紧耦合内存中将多核处理器的外设资源合理地分配给处理器的各核,保证了双系统的正常启动和运行,避免了两个系统产生资源冲突,实现了在多核处理器上同时独立的运行两个系统,从而提高硬件资源的利用率,提高系统系性能。
实施例三
图3是本申请实施例三提供的基于多核处理器的双系统启动装置,本实施例可适用于在双核处理器的各核上运行分别运行操作系统的情况。所述装置可由软件和/或硬件实现,并可集成于智能终端等电子设备中。
如图3所示,该装置可以包括:系统镜像确定模块310、初始化模块320和外设资源分配模块330。
系统镜像确定模块310,用于响应于系统启动指令,根据系统标识和系统镜像启动地址的关联关系,在嵌入式框架中的系统工程中确定系统镜像启动地址,并将所述系统镜像分别加载至所述处理器的各核中;
初始化模块320,用于调用引导程序分别对处理器的各核以及所述处理器的紧耦合内存进行初始化,并关闭所述处理器的内存刷新操作和处理器重置操作;
外设资源分配模块330,用于根据设备树文件,将所述处理器的外设资源分配给所述处理器的各核,并在所述处理器的各核上分别运行系统。
本申请实施例所提供的技术方案,响应于系统启动指令,根据系统标识和系统镜像启动地址的关联关系,在嵌入式框架中的系统工程中确定系统镜像启动地址,并将所述系统镜像分别加载至所述处理器的各核中,调用引导程序分别对处理器的各核以及所述处理器的紧耦合内存进行初始化,并关闭所述处理器的内存刷新操作和处理器重置操作,根据设备树文件,将所述处理器的外设资源分配给所述处理器的各核,并在所述处理器的各核上分别运行系统。本申请实施例通过为处理器的各核分别配置操作系统,分别对操作系统进行引导,并为操作系统配置外设资源,实现了在多核处理器上同时独立的运行两个系统,从而提高硬件资源的利用率,提高系统系性能。
可选的,系统镜像确定模块310,包括:
第一系统镜像启动地址确定子模块,用于在所述嵌入式架构的系统工程中确定与第一系统关联的第一系统镜像启动地址,并将第一系统镜像加载至所述处理器的第一个核中;
第二系统镜像启动地址确定子模块,在所述嵌入式架构的系统工程中确定与第二系统关联的第二系统镜像启动地址,并将第二系统镜像加载至所述处理器的第二个核中;其中,第一系统镜像启动地址与第二系统镜像启动地址不同。
可选的,外设资源分配模块330,包括:第一外设资源分配子模块,用于根据所述设备树文件的中断控制器分配信息,将中断控制器作为所述处理器各核共同使用的外设资源;
第二外设资源分配子模块,用于根据所述设备树文件的紧耦合内存分配信息,将紧耦合内存作为所述处理器各核独立使用的外设资源。
可选的,所述装置还包括:中断控制器初始化模块,具体用于在所述将中断控制器作为所述处理器各核共同使用的外设资源以后,根据所述设备树文件中预设的中断控制器初始化主体信息,在所述处理器中确定目标核,并利用所述目标核初始化所述中断控制器,以供所述中断控制器将产生的中断号发送至所述目标核;其中,所述目标核为所述处理器的一个核。
可选的,所述紧耦合内存中还存储有处理器各核的中断向量表。
可选的,所述第一系统和所述第二系统采用OpenAMP架构或者共享内存机制进行核间通信。
可选的,所述第一系统和所述第二系统均为VxWorks系统,所述处理器为双核Cortex-R5。
本发明实施例所提供的基于多核处理器的双系统启动装置可执行本发明任意实施例所提供的基于多核处理器的双系统启动方法,具备执行基于多核处理器的双系统启动方法相应的功能模块和有益效果。
实施例四
本申请实施例四还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行基于多核处理器的双系统启动方法,该方法包括:
响应于系统启动指令,根据系统标识和系统镜像启动地址的关联关系,在嵌入式框架中的系统工程中确定系统镜像启动地址,并将所述系统镜像分别加载至所述处理器的各核中;
调用引导程序分别对处理器的各核以及所述处理器的紧耦合内存进行初始化,并关闭所述处理器的内存刷新操作和处理器重置操作;
根据设备树文件,将所述处理器的外设资源分配给所述处理器的各核,并在所述处理器的各核上分别运行系统。
存储介质是指任何的各种类型的存储器电子设备或存储电子设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到计算机系统。第二计算机系统可以提供程序指令给计算机用于执行。术语“存储介质”可以包括可以驻留在不同未知中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的基于多核处理器的双系统启动操作,还可以执行本申请任意实施例所提供的基于多核处理器的双系统启动方法中的相关操作。
实施例五
本申请实施例五提供了一种电子设备,该电子设备中可集成本申请实施例提供的基于多核处理器的双系统启动装置,该电子设备可以是配置于系统内的,也可以是执行系统内的部分或者全部功能的设备。图4是本申请实施例五提供的一种电子设备的结构示意图。如图4所示,本实施例提供了一种电子设备400,其包括:一个或多个处理器420;存储装置410,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器420执行,使得所述一个或多个处理器420实现本申请实施例所提供的基于多核处理器的双系统启动方法,该方法包括:
响应于系统启动指令,根据系统标识和系统镜像启动地址的关联关系,在嵌入式框架中的系统工程中确定系统镜像启动地址,并将所述系统镜像分别加载至所述处理器的各核中;
调用引导程序分别对处理器的各核以及所述处理器的紧耦合内存进行初始化,并关闭所述处理器的内存刷新操作和处理器重置操作;
根据设备树文件,将所述处理器的外设资源分配给所述处理器的各核,并在所述处理器的各核上分别运行系统。
当然,本领域技术人员可以理解,处理器420还实现本申请任意实施例所提供的基于多核处理器的双系统启动方法的技术方案。
图4显示的电子设备400仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图4所示,该电子设备400包括处理器420、存储装置410、输入装置430和输出装置440;电子设备中处理器420的数量可以是一个或多个,图4中以一个处理器420为例;电子设备中的处理器420、存储装置410、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线450连接为例。
存储装置410作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块单元,如本申请实施例中的基于多核处理器的双系统启动方法对应的程序指令。
存储装置410可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置410可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置410可进一步包括相对于处理器420远程设置的存储器,这些远程存储器可以通过网络连接。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的数字、字符信息或语音信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏、扬声器等电子设备。
上述实施例中提供的基于多核处理器的双系统启动装置、介质及电子设备可执行本申请任意实施例所提供的基于多核处理器的双系统启动方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的基于多核处理器的双系统启动方法。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。