一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

嵌入式设备的启动方法、装置、嵌入式设备及存储介质与流程

2022-02-22 18:14:50 来源:中国专利 TAG:


1.本发明实施例涉及计算机嵌入式技术,尤其涉及一种嵌入式设备的启动方法、装置、嵌入式设备及存储介质。


背景技术:

2.随着计算机软硬件技术的不断发展,各类嵌入式设备(例如,交换机或者路由器等)的功能也在不断完善。其中,嵌入式系统是指以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
3.现有技术中,一般考虑在嵌入式设备中安装通用计算机操作系统,例如,linux操作系统,以赋予嵌入式设备更加灵活的软件运行环境,避免在嵌入式设备上进行软件的定制化开发,减少嵌入式应用软件的开发成本。
4.发明人在实现本发明的过程中,发现现有技术存在如下缺陷:在嵌入式设备中安装通用计算机操作系统后,无法达到在嵌入式设备中安装嵌入式操作系统时所能达到的开机启动速度,进而上述产品无法应用在对开机启动速度特别严苛的应用场景中。


技术实现要素:

5.本发明实施例提供一种嵌入式设备的启动方法、装置、嵌入式设备及存储介质,以提高安装通用计算机操作系统的嵌入式设备的开机启动速度。
6.第一方面,本发明实施例提供了一种嵌入式设备的启动方法,所述嵌入式设备内置多个cpu核,并安装有嵌入式操作系统和通用计算机操作系统,其中,包括:
7.响应于对嵌入式设备的启动指令,执行对嵌入式操作系统和通用计算机操作系统的并行启动流程;
8.通过嵌入式操作系统在启动完成后,对嵌入式设备中的各硬件进行第一阶段的硬件初始化操作;
9.通过通用计算机操作系统在启动完成后,对嵌入式设备中的各硬件进行第二阶段的硬件初始化,以实现嵌入式设备在通用计算机操作系统中的快速启动。
10.第二方面,本发明实施例还提供了一种嵌入式设备的启动装置,所述嵌入式设备内置多个cpu核,并安装有嵌入式操作系统和通用计算机操作系统,其中,包括:
11.并行启动流程执行模块,用于响应于对嵌入式设备的启动指令,执行对嵌入式操作系统和通用计算机操作系统的并行启动流程;
12.第一阶段的硬件初始化操作模块,用于通过嵌入式操作系统在启动完成后,对嵌入式设备中的各硬件进行第一阶段的硬件初始化操作;
13.第二阶段的硬件初始化操作模块,用于通过通用计算机操作系统在启动完成后,对嵌入式设备中的各硬件进行第二阶段的硬件初始化,以实现嵌入式设备在通用计算机操作系统中的快速启动。
14.第三方面,本发明实施例还提供了一种嵌入式设备,包括存储器、多个cpu核及存
储在存储器上并可在cpu核上运行的计算机程序,在不同的cpu核上分别安装有嵌入式操作系统和通用计算机操作系统,其中,至少一个cpu核执行所述计算机程序时实现如本发明任意实施例所述的嵌入式设备的启动方法。
15.第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,其上存储有计算机程序,其中,该计算机程序被cpu核执行时实现如本发明任意实施例所述的嵌入式设备的启动方法。
16.本发明实施例所提供的技术方案,通过响应于对嵌入式设备的启动指令,执行对嵌入式操作系统和通用计算机操作系统的并行启动流程;通过嵌入式操作系统在启动完成后,对嵌入式设备中的各硬件进行第一阶段的硬件初始化操作;通过通用计算机操作系统在启动完成后,对嵌入式设备中的各硬件进行第二阶段的硬件初始化的方式,使用多cpu核技术,由嵌入式操作系统和通用计算机操作系统配合实现了嵌入式设备中的各硬件的并行初始化,大大提高了安装通用计算机操作系统的嵌入式设备的开机启动速度,满足了特定应用场景对嵌入式设备的快速启动需求。
附图说明
17.图1是本发明实施例一中的一种嵌入式设备的启动方法的流程图;
18.图2a是本发明实施例二中的另一种嵌入式设备的启动方法的流程图;
19.图2b为本发明实施例二的技术方案所适用的一种具体应用场景的示意图;
20.图2c为本发明实施例二的技术方案所适用的另一种具体应用场景的流程图;
21.图3是本发明实施例三中的一种嵌入式设备的启动装置结构示意图;
22.图4是本发明实施例四中的一种嵌入式设备的结构示意图。
具体实施方式
23.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。
24.另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
25.本发明实施例的说明书和权利要求书及附图中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有设定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
26.为了便于理解本发明各实施例的技术方案,首先对本发明的主要构思进行简单表述。
27.首先,嵌入式设备在启动时,需要完成对嵌入式设备中包括的各个硬件(例如,声卡、显卡、键盘以及鼠标等)的初始化操作,并在全部硬件均初始化完成后,该嵌入式设备可
以相应操控各个硬件执行相应的设备功能,进而也就完成了该嵌入式识别的开机启动流程。
28.一般来说,对某一硬件的初始化操作主要包括下述几种方式,一种是仅进行硬件扫描,以检测该硬件的功能是否完好;另一种需要在进行硬件扫描后,针对该硬件去对嵌入式设备中的一个或者多个寄存器进行赋值,进而根据该寄存器的赋值结果,操纵该硬件的正常使用;还有一种是需要在进行硬件扫描后,在内存中建立一个数据结构,并需要对内存中的数据结构进行相应的赋值,进而根据对该数据结构的赋值结果,操纵该硬件的正常使用。
29.相应的,现有技术的缺陷:“在嵌入式设备中安装通用计算机操作系统后,无法达到在嵌入式设备中安装嵌入式操作系统时所能达到的开机启动速度”出现的原因在于,由于所有的硬件在进行初始化操作时,都需要首先进行硬件扫描,而嵌入式操作系统因为和嵌入式设备相适配,其在进行硬件扫描时,速度会明显快于通用计算机操作系统,进而安装嵌入式操作系统的嵌入式设备的开启启动速度会更快。
30.基于上述思考并结合当前迅速发展的多核技术,发明人创造性的提出针对适配多个cpu核的嵌入式设备,可以在该嵌入式设备的两个cpu核中分别安装嵌入式操作系统和通用计算机操作系统,进而,在该嵌入式操作系统的辅助之下,该嵌入式设备可以迅速完成对自身全部硬件的初始化,并最终进入至通用计算机操作系统中,响应用户的操作控制,在大大提高了安装通用计算机操作系统的嵌入式设备的开机启动速度同时,赋予嵌入式设备更加灵活的软件运行环境。
31.实施例一
32.图1为本发明实施例一提供的一种嵌入式设备的启动方法的流程图。本实施例可适用于嵌入式设备在通用计算机操作系统中的快速启动的情况。本实施例的方法可以由嵌入式设备的启动装置执行,该装置可以通过软件和/或硬件的方式实现,该装置可配置于嵌入式设备中,例如,交互机、路由器或者网关设备等。
33.其中,本发明实施例中的嵌入式设备中包括有多个cpu(central processing unit,中央处理器)核,且该嵌入式设备中安装有嵌入式操作系统和通用计算机操作系统。典型的,该嵌入式设备的两个不同的cpu核中,分别安装有嵌入式操作系统和通用计算机操作系统。
34.相应的,该方法具体包括如下步骤:
35.s110、响应于对嵌入式设备的启动指令,执行对嵌入式操作系统和通用计算机操作系统的并行启动流程。
36.其中,嵌入式设备可以主要由嵌入式处理器、相关支撑硬件和嵌入式软件系统组成,它是集软硬件于一体的可独立工作的器件。启动指令可以是告诉嵌入式设备开始运行某一特殊运算的代码的指令。具体的,用户通过点击或者长按嵌入式设备的开机键,可以触发生成该嵌入式设备的启动指令。
37.嵌入式操作系统可以是由硬件和软件组成,是可以独立进行运作的器件。嵌入式操作系统其软件内容可以包括软件运行环境及其操作系统;硬件内容可以包括信号处理器、存储器、通信模块等在内的多方面的内容。相比于一般的计算机处理系统而言,嵌入式操作系统存在较大的差异性,它不能实现大容量的存储功能,因为没有与之相匹配的大容
量介质。通用计算机操作系统可以是管理计算机硬件与软件资源的计算机程序。通用计算机操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备以及操作网络与管理文件系统等基本事务。
38.通用计算机操作系统也提供一个让用户与系统交互的操作界面,可以具体包括:dos操作系统、unix操作系统、linux操作系统以及windows操作系统。
39.在本实施例中,当嵌入式设备接收到启动指令时,则可以触发嵌入式操作系统和通用计算机操作系统的并行启动。所谓并行启动是指该嵌入式操作系统和通用计算机操作系统互不干扰的、相互隔离的执行操作系统的启动流程。
40.示例性的,嵌入式操作系统可以是rtos(real time operating system,实时操作系统),通用计算机操作系统可以是linux操作系统。相应的,该嵌入式设备响应于嵌入式设备的启动指令,可以在不同的cpu核上同时启动linux操作系统和rtos。具体的,相比于linux操作系统,rtos的启动速度较快。
41.s120、通过嵌入式操作系统在启动完成后,对嵌入式设备中的各硬件进行第一阶段的硬件初始化操作。
42.在本实施例中,由于嵌入式操作系统和通用计算机操作系统是相互独立的并行启动,因此,各位在启动完成后,可以执行匹配的硬件初始化操作。也即,通过两个操作系统共同实现对嵌入式设备中包括的全部硬件的初始化过程。
43.其中,针对硬件初始化过程需要对内存中数据结构进行赋值的硬件,所赋值的操作系统必须要求是嵌入式设备最终进入的操作系统,也即,通用计算机操作系统,才能对该硬件进行正常的使用;而硬件初始化过程仅进行硬件扫描的硬件,或者是硬件初始化过程仅需要对寄存机进行赋值的硬件,哪个操作系统对其进行硬件扫描,或者寄存器赋值,均不会影响该硬件的正常使用。
44.基于此,本发明各实施例的技术方案将嵌入式设备所需完整执行的硬件初始化操作预先分为两个阶段(部分),由嵌入式操作系统和通用计算机操作系统共同协作完成。也即,嵌入式操作系统和通用计算机操作系统各自启动,嵌入式操作系统启动完成后,执行预设的第一阶段硬件初始化操作,通用计算机操作系统在启动完成后,执行预设的第二阶段硬件初始化操作。
45.其中,本领域技术人员可以根据前述基本准则对第一阶段硬件初始化操作和第二阶段硬件初始化操作进行预设,本实施例对此并不进行限制。
46.在一个具体的例子中,可以将全部或者部分的硬件的硬件扫描任务均设置为第一阶段初始化任务,将全部硬件的寄存器赋值任务或者内存中设定数据结构的赋值任务均设置为第二阶段初始化任务;或者,考虑到嵌入式操作系统的硬件初始化过程非常迅速,还可以将全部或硬件的硬件扫描任务、寄存器赋值任务、以及在内存中创建数据结构的任务均设置为第一阶段任务,仅将内存中创建好的数据结构中的赋值任务设置为第二阶段任务,以最大程度的利用嵌入式操作系统的快启优势。
47.以嵌入式设备为交换机为例,第一阶段硬件初始化操作可以包括:初始化网卡、网络交换芯片以及spi接口(system packet interface,系统包接口)等等。
48.在本实施例中,当嵌入式操作系统启动完成之后,进一步的可以对嵌入式设备中的各硬件进行第一阶段的硬件初始化的操作,以辅助通用计算机操作系统完成真正意义上
的快速启动。
49.s130、通过通用计算机操作系统在启动完成后,对嵌入式设备中的各硬件进行第二阶段的硬件初始化,以实现嵌入式设备在通用计算机操作系统中的快速启动。
50.在本实施例中,在计算机操作系统在启动完成之后,可以进一步的对嵌入式设备中的各硬件进行第二阶段的硬件初始化操作,这样可以加快嵌入式设备在通用计算机操作系统中的启动速度。
51.需要再次强调的是,第一阶段的硬件初始化操作和第二阶段的硬件初始化操作之间可能具有时序关系,也可能不具有时序关系,例如,当第一阶段的硬件初始化操作中需要对硬件a和硬件b进行硬件扫描,而第二阶段的硬件初始化操作中需要对硬件c进行硬件扫描,此时,上述各阶段的硬件初始化操作可以并行执行,两者之间并不相互响应;但是,当第一阶段的硬件初始化操作中需要对硬件d进行硬件扫描和在内存中创建一个数据结构,而第二阶段的硬件初始化操作中需要对硬件d的数据结构进行赋值,此时,第二阶段的硬件初始化操作需要等待第一阶段的硬件初始化操作执行完后,才能继续执行。
52.可选的,通过通用计算机操作系统在启动完成后,对嵌入式设备中的各硬件进行第二阶段的硬件初始化,包括下述至少一项:
53.通过通用计算机操作系统,针对嵌入式设备中完成第一阶段的硬件初始化的第一类硬件,进行第二阶段的硬件初始化;通过通用计算机操作系统,针对嵌入式设备中未进行第一阶段的硬件初始化的第二类硬件,进行第二阶段的硬件初始化。
54.其中,在通用计算机系统完成第二阶段硬件初始化后,嵌入式设备最终进入通用计算机操作系统,并在通用计算机操作系统内完整对各硬件的操控。
55.相应的,该第二阶段的硬件初始化主要包括:对嵌入式操作系统完成部分硬件初始化操作的第一类硬件,继续进行后续的初始化过程(典型的,内存赋值),以完整实现对该第一类硬件的硬件初始化过程,或者,对嵌入式操作系统未进行过硬件初始化操作的第二类硬件,独立进行整个硬件初始化过程。
56.本实施例中,通过通用计算机操作系统,可以针对嵌入式设备中完成第一阶段的硬件初始化的第一类硬件,进行第二阶段的硬件初始化。具体的,可以包括:通过通用计算机操作系统,可以使用嵌入式设备中完成第一阶段的硬件初始化的第一类硬件,对嵌入式设备中完成第一阶段的硬件初始化的第一类硬件,进行第二阶段的硬件初始化;或者,通过通用计算机操作系统,使用嵌入式设备中完成第一阶段的硬件初始化的第一类硬件,对嵌入式设备中未进行第一阶段的硬件初始化的第二类硬件,进行第二阶段的硬件初始化。
57.这样设置的好处在于:通过通用计算机操作系统,可以针对嵌入式设备中完成第一阶段的硬件初始化的第一类硬件,以及未进行第一阶段的硬件初始化的第二类硬件,进行第二阶段的硬件初始化。这样可以根据任务的要求,灵活的并行使用嵌入式操作系统和通用计算机操作系统进行硬件初始化。进一步的,提高了系统的启动速度,进而提高了工作效率。
58.本发明实施例所提供的技术方案,通过响应于对嵌入式设备的启动指令,执行对嵌入式操作系统和通用计算机操作系统的并行启动流程;通过嵌入式操作系统在启动完成后,对嵌入式设备中的各硬件进行第一阶段的硬件初始化操作;通过通用计算机操作系统在启动完成后,对嵌入式设备中的各硬件进行第二阶段的硬件初始化的方式,使用多cpu核
技术,由嵌入式操作系统和通用计算机操作系统配合实现了嵌入式设备中的各硬件的并行初始化,大大提高了安装通用计算机操作系统的嵌入式设备的开机启动速度,满足了特定应用场景对嵌入式设备的快速启动需求。
59.在本实施例的一个可选的实施方式中,响应于对嵌入式设备的启动指令,执行对嵌入式操作系统和通用计算机操作系统的并行启动流程,可以包括:响应于对嵌入式设备的启动指令,触发执行主核中的引导程序(典型的,grub程序);通过执行所述引导程序,在目标从核中启动执行所述嵌入式操作系统后,在所述主核中启动执行所述通用计算机操作系统;其中,所述目标从核的入口点预先设置为所述嵌入式操作系统的入口地址,且预先在所述引导程序的启动参数中将通用计算机操作系统使用的cpu核与嵌入式操作系统使用的cpu核进行配置隔离。
60.其中,多cpu核系统中一般包括有一个主核,以及至少一个从核。主核可以理解为适配多cpu核的嵌入式设备中的主核。当该嵌入式设备被触发启动时,首先激活主核的运行,并在主核运行后,挂起其余的一个或者多个从核的运行。
61.在一个具体的例子中,该引导grub程序可以为grub(grand unified bootloader)程序,grub程序是一个来自gnu项目的多操作系统启动程序。grub是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。grub可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。入口地址可以是函数指针所指向的地址。启动参数可以是嵌入式设备的启动指令中包含的参变量。配置隔离可以是设置嵌入式操作系统和通用计算机操作系统对应cpu不同的核,从而进行隔离。
62.示例性的,假设一个八核的cpu,其中可以设置四核由嵌入式操作系统来存储调用,另外四核由通用计算机操作系统来存储调用。并且,嵌入式操作系统只可以调用参数配置的四核,不可以调用通用计算机操作系统对应的四核。同理,通用计算机操作系统只可以调用参数配置的四核,不可以调用嵌入式操作系统对应的四核。
63.在本实施例中,通过响应于对嵌入式设备的启动指令,可以进一步的触发执行主核中的引导程序。进一步的,执行引导程序,并且目标从核中启动执行嵌入式操作系统后,可以在主核中启动执行通用计算机操作系统。相应的,嵌入式操作系统的入口地址可以由目标从核的入口点预先设置,并且可以通过使用预先在引导程序的启动参数,能够将通用计算机操作系统使用的cpu核与嵌入式操作系统使用的cpu核进行配置隔离。
64.这样设置的好处在于:通过执行引导程序以及引导程序的启动参数的配置,可以使得嵌入式操作系统和通用计算机操作系统有序的进行并行处理操作,实现了并行初始化外部设备,因此,可以提高了系统快速启动的效率。
65.可选的,通过嵌入式操作系统在启动完成后,对嵌入式设备中的各硬件进行第一阶段的硬件初始化操作,可以进一步包括:通过嵌入式操作系统在启动完成后,调用分配给所述嵌入式操作系统使用的多个cpu核,并行的对嵌入式设备中的各硬件进行第一阶段的硬件初始化操作。
66.在本实施例中,当嵌入式操作系统启动完成之后,可以分配给嵌入式操作系统多个cpu核。示例性的,当计算机的cpu为八核,其中可以设置嵌入式操作系统固定使用其中四核,通用计算机操作系统可以使用另外四核。这样可以使得嵌入式操作系统和通用计算机
操作系统并行进行任务的处理,可以进一步达到系统快速启动的目的。
67.这样设置的好处在于:最大程度的实现了嵌入式设备中多个cpu核的充分利用,基于上述多核cpu,在实现嵌入式操作系统和通用计算机操作系统并行执行匹配的硬件初始化操作的基础上,嵌入式操作系统同样可以使用多个cpu核,并行的执行对各硬件的第一阶段的硬件初始化操作,以进一步提高该嵌入式设备的启动速度。
68.实施例二
69.图2a是本发明实施例二中的另一种嵌入式设备的启动方法的流程图。本实施例以各实施例为基础进行优化,在本实施例中,通过嵌入式操作系统在启动完成后,对嵌入式设备中的各硬件进行第一阶段的硬件初始化操作,需要生成与目标硬件匹配的第一阶段初始化完成通知,进而可以执行与目标硬件匹配的第二阶段的硬件初始化。
70.s210、响应于对嵌入式设备的启动指令,执行对嵌入式操作系统和通用计算机操作系统的并行启动流程。
71.s220、通过嵌入式操作系统,每当完成对嵌入式设备中目标硬件的第一阶段的硬件初始化操作时,生成与目标硬件匹配的第一阶段初始化完成通知。
72.在本实施例中,为了实现嵌入式操作系统和通用计算机操作系统在对全部硬件初始化过程中的协同配合,可以采用现有的消息通知机制,由通用操作系统预先对嵌入式操作系统发送的通知消息进行订阅,并预先规定每当嵌入式操作系统完成对某一个硬件(也即,目标硬件)的第一阶段的硬件初始化操作时,会相应生成匹配的第一阶段初始化完成通知。通过上述设置,可以使得通用计算机操作系统实时获知嵌入式操作系统的初始化进程。
73.具体的,如果嵌入式操作系统可以完整实现对目标硬件的整个初始化操作,可以仅在与目标硬件匹配的第一阶段初始化完成通知中加入该目标硬件的硬件标识,以告知通用计算机操作系统已完成对目标硬件的初始化操作;如果嵌入式操作系统只能部分完成对目标硬件的初始化操作,则可以在与目标硬件匹配的第一阶段初始化完成通知中加入中间数据描述信息,以告知通用计算机系统,嵌入式系统在对该目标硬件进行初始化的过程中,在共享内存中的什么位置存储了中间数据,以使得该通用计算机系统能够准确定位该中间数据,并使用该中间数据继续完成对该目标硬件的初始化操作。
74.需要说明的是,如果嵌入式操作系统针对某一硬件发送了第一阶段初始化完成通知,则相当于释放了对该硬件的使用权,因此,如果嵌入式操作系统在完整某一硬件a的第一阶段初始化之后,还需要继续使用该硬件a执行其他硬件的第一阶段初始化,则可以在嵌入式操作系统使用该硬件a完成所需的全部第一阶段初始化操作后,再发送与该硬件a对应的第一阶段初始化完成通知。
75.相应的,通过嵌入式操作系统,每当完成对嵌入式设备中目标硬件的第一阶段的硬件初始化操作时,生成与目标硬件匹配的第一阶段初始化完成通知,还可以具体包括:
76.通过嵌入式操作系统,如果确定针对目标硬件的第一阶段的硬件初始化操作在共享内存中的目标存储区域内生成了中间数据,则将目标存储区域的索引地址加入至第一阶段初始化完成通知中。
77.其中,共享内存可以是在多个cpu核的计算机系统中,可以被不同cpu核访问的大容量内存。由于多个cpu核需要快速访问存储器,这样就要对存储器进行缓存。任何一个缓存的数据被更新后,由于其他cpu核也可能要存取,共享内存就需要立即更新,否则不同的
cpu核可能用到不同的数据。目标存储区域可以是计算机操作过程中需要将数据临时或长期驻留的物理媒介以及存储地址。中间数据可以是第一阶段的硬件初始化操作在共享内存中的目标存储区域内生成的数据。索引地址可以是索引款目的组成元素,标明索引单元在正文中的分布位置。
78.s230、通过通用计算机操作系统在启动完成后,每当监听到嵌入式操作系统发送的第一阶段初始化完成通知,则识别所述第一阶段初始化完成通知匹配的目标硬件,并执行与所述目标硬件匹配的第二阶段的硬件初始化。
79.如前所述,当通用计算机操作系统监听到嵌入式操作系统发送的第一阶段初始化完成通知时,可以首先在第一阶段初始化完成通知中识别出当前完成第一阶段初始化的目标硬件,并进而可以执行与该目标硬件匹配的第二阶段的硬件初始化。
80.可选的,执行与该目标硬件匹配的第二阶段的硬件初始化可以包括:如果确定嵌入式操作系统执行的,针对该目标硬件的第一阶段初始化已经完成了该目标硬件的完整初始化过程,则可以直接在通用计算机操作系统中,标记该目标硬件的初始化完成状态,进一步的,通用计算机操作系统还可以直接使用该初始化完成的目标硬件,进行对其他硬件的第二阶段的硬件初始化;或者
81.如果确定嵌入式操作系统执行的,针对该目标硬件的第一阶段初始化仅完成了该目标硬件的部分初始化过程,则可以继续对该目标硬件进行第二阶段的硬件初始化。相应的,通过通用计算机操作系统识别所述第一阶段初始化完成通知匹配的目标硬件,并执行与所述目标硬件匹配的第二阶段的硬件初始化,具体包括:
82.通过通用计算机操作系统识别所述第一阶段初始化完成通知匹配的目标硬件和目标存储区域的索引地址,并根据从所述目标存储区域的索引地址获取的所述中间数据,执行与所述目标硬件匹配的第二阶段的硬件初始化。
83.示例性的,嵌入式操作系统可以是rtos,通用计算机操作系统可以是linux操作系统。响应于对嵌入式设备的启动指令,执行对嵌入式操作系统rtos和linux操作系统的并行启动流程。进一步的,通过嵌入式操作系统rtos,每当完成对嵌入式设备中的一个目标硬件的第一阶段的硬件初始化操作时,可以生成与该目标硬件匹配的第一阶段初始化完成通知。相应的,通过嵌入式操作系统rtos,当确定针对目标硬件的第一阶段的硬件初始化操作在共享内存中的目标存储区域内生成了中间数据时,可以将目标存储区域的索引地址加入至第一阶段初始化完成通知中。进一步的,通过linux操作系统在启动完成后,每当监听到嵌入式操作系统rtos发送的第一阶段初始化完成通知,如果识别到该第一阶段初始化完成通知中包括目标硬件和目标存储区域的索引地址,可以根据从目标存储区域的索引地址获取的中间数据,执行与目标硬件匹配的第二阶段的硬件初始化。因此,通过上述操作,可以实现嵌入式设备在通用计算机操作系统中的快速启动。
84.本发明实施例所提供的技术方案,通过响应于对嵌入式设备的启动指令,执行对嵌入式操作系统和通用计算机操作系统的并行启动流程;通过嵌入式操作系统,每当完成对嵌入式设备中目标硬件的第一阶段的硬件初始化操作时,生成与目标硬件匹配的第一阶段初始化完成通知;通过通用计算机操作系统在启动完成后,每当监听到嵌入式操作系统发送的第一阶段初始化完成通知,则识别所述第一阶段初始化完成通知匹配的目标硬件,并执行与所述目标硬件匹配的第二阶段的硬件初始化,使用多cpu核技术,由嵌入式操作系
统和通用计算机操作系统配合实现了嵌入式设备中的各硬件的并行初始化,大大提高了安装通用计算机操作系统的嵌入式设备的开机启动速度,满足了特定应用场景对嵌入式设备的快速启动需求。
85.在上述各实施例的基础上,在通过嵌入式操作系统在启动完成后,对嵌入式设备中的各硬件进行第一阶段的硬件初始化操作之后,还可以包括:
86.在通过嵌入式操作系统,确定完成对快启应用匹配的快启硬件的第一阶段的硬件初始化操作时,在所述嵌入式操作系统中运行所述快启应用;
87.相应的,在通过通用计算机操作系统在启动完成后,对嵌入式设备中的各硬件进行第二阶段的硬件初始化之后,还可以包括:
88.在通过通用计算机操作系统,确定完成对所述快启硬件的第一阶段的硬件初始化操作时,将所述快启应用切换至所述通用计算机操作系统中继续运行。
89.其中,快启应用可以是指预先规定的,需要在嵌入式硬件开机重启后,在一个很短的时间内(例如,1s)被触发启动的应用程序。快启硬件具体是指嵌入式设备中包括的,该快启应用启动时所必须使用的硬件。
90.本领域技术人员可以理解的是,虽然通过多cpu核并行运行嵌入式操作系统和通用计算机操作系统的方式,可以达到对嵌入式设备的快启要求,但是,通用计算机操作系统的启动速度必然会慢于嵌入式操作系统的启动速度,因此,如果用户对一些嵌入式设备中安装的某一应用程序的启动时间要求很高,将该应用程序直接在通用计算机操作系统中启动运行的速度可能无法满足要求。
91.基于此,发明人创造性的提出了一种基于将应用程序的启动时间提前的新方式,也即,嵌入式操作系统在启动后,首先初始化快启应用所需依赖的快启硬件,并在快启硬件完成初始化操作后,首先在嵌入式操作系统中进行启动运行,满足用户对该快启应用的快启需求,之后,当通用计算机操作系统启动完成,并对嵌入式设备中的各硬件均完成第二阶段的硬件初始化后,可以将该快启硬件切换至通用计算机操作系统继续运行,以向用户提供更加丰富的应用功能。
92.示例性的,嵌入式操作系统可以是rtos,通用计算机操作系统可以是linux操作系统。对于快启应用,可以先使用嵌入式操作系统可以是rtos进行应用的启动操作,满足用户要求启动时间短的要求。当linux操作系统启动完成之后,再使用linux操作系统进行快启应用的启动。由于使用嵌入式操作系统可以是rtos启动的快启应用,可能不能满足用户使用快启应用的上层操作,因此,需要将快启应用切换至linux操作系统中继续运行。
93.这样设置的好处在于:对于一些快启应用,用户对其启动速度要求较高。由于嵌入式操作系统相较于通用计算机操作系统来说,运行速度较快。所以,需要采用嵌入式操作系统将快启应用进行快速启动操作。当通用计算机操作系统启动完成之后,需要使用通用计算机操作系统进一步的将快启应用启动,即将快启应用切换至通用计算机操作系统中继续运行。这样能够将快启应用的启动时间点提前,从而满足用户对于快启应用快速启动的要求。
94.具体的应用场景一
95.如图2b为一种嵌入式设备的启动方法中的一种具体应用场景的流程图。其中,在本应用场景中,嵌入式设备具体为交换机,设置的嵌入式操作系统可以是rtos,通用计算机
操作系统可以是linux操作系统。linux操作系统中将嵌入式设备中spi接口驱动编译成模块,注册监听从核事件处理函数。
96.首先,从核启动rtos后,rtos先初始化嵌入式设备中各硬件中的spi接口以及网卡,当spi接口初始化完成后,rtos开始使用spi接口配置初始化网络交换芯片的基本交换功能。之后,嵌入式操作系统rtos发送与spi接口匹配的第一阶段初始化完成通知,以实现对spi控制权的交接。与此同时,主核并行的启动linux操作系统,linux操作系统在启动完成后,挂载从核事件监听函数,并在监听到从核发送的针对spi接口的第一阶段初始化完成任务通知后,加载spi接口驱动的功能,并使用该spi接口,继续完成交换芯片完整功能的配置。
97.具体的应用场景二
98.如图2c为另一种嵌入式设备的启动方法中的一种具体应用场景的示意图。其中,在本应用场景中,嵌入式设备具体为交换机,设置的嵌入式操作系统可以是rtos,通用计算机操作系统可以是linux操作系统。并且cpu0用于linux操作系统的任务处理,cpu1用于rtos的任务处理。其中,该交换机中需要安装有对启动时间要求较高的快启应用,该快启应用在嵌入式操作系统中以应用1形式存在,在通用计算机操作系统中以应用2形式存在。
99.相应的,当用户按下该交换机的开启按钮后,触发生成交换机启动指令,该交换机响应于该交换机启动指令,可以触发执行主核(cpu0)中的引导程序,在目标从核(cpu1)中启动执行rtos后,在主核中启动执行linux操作系统。相应的,并且使用多核启动功能,可以将cpu1的入口点预先设置为嵌入式操作系统rtos的入口地址。启动rtos的cpu1,让rtos开始启动,然后修改引导程序启动linux操作系统参数,并且添加cpu0隔离和内存隔离参数,保证cpu1使用资源不被linux操作系统使用,再从cpu0启动linux操作系统。
100.进一步的,spi接口、网卡和网络交换芯片的初始化工作由cpu1进行,引导程序启动嵌入式操作系统rtos后,嵌入式操作系统rtos快速完成自身启动后,开始初始化spi接口以及网卡,在spi接口初始化完成后,开始使用spi接口配置初始化网络交换芯片。然后嵌入式操作系统rtos不再接管spi接口(通过发送第一阶段初始化完成通知实现),而是交由linux操作系统使用。同时,为了实现对快启应用的快启要求,rtos在释放spi接口的控制权后,在该rtos内首先启动并运行应用1。
101.linux操作系统在cpu0上启动完成后,执行对显卡设备的初始化操作,并在成功接管spi接口后,基于该spi接口完成网络交换芯片的进一步配置工作,可以实现完整的网络交换功能。相应的,在完成对该网络交换芯片的硬件初始化后,可以在linux操作系统中启动应用2,以实现对该快启应用的切换显示。
102.本发明实施例的技术方案,实现了交换机的各硬件在rtos和linux操作系统中并行初始化,缩短网络交换启动时间。本发明实施例中,利用rtos快速启动特点,快速初始化交换机中的各硬件,实现网络的基础交换功能。待linux操作系统完成启动后,切换到linux操作系统上启动应用,实现更加高级的网络交换机功能。
103.实施例三
104.图3是本发明实施例三提供的一种嵌入式设备的启动装置的结构示意图,本实施例所提供的一种嵌入式设备的启动装置可以通过软件和/或硬件来实现,可配置于各种嵌入式设备中来实现本发明实施例中的一种嵌入式设备的启动方法。所述嵌入式设备内置多
个cpu核,并安装有嵌入式操作系统和通用计算机操作系统。
105.如图3所示,该装置具体可包括:并行启动流程执行模块310、第一阶段的硬件初始化操作模块320和第二阶段的硬件初始化操作模块330。
106.其中,并行启动流程执行模块310,用于响应于对嵌入式设备的启动指令,执行对嵌入式操作系统和通用计算机操作系统的并行启动流程;
107.第一阶段的硬件初始化操作模块320,用于通过嵌入式操作系统在启动完成后,对嵌入式设备中的各硬件进行第一阶段的硬件初始化操作;
108.第二阶段的硬件初始化操作模块330,用于通过通用计算机操作系统在启动完成后,对嵌入式设备中的各硬件进行第二阶段的硬件初始化,以实现嵌入式设备在通用计算机操作系统中的快速启动。
109.本发明实施例所提供的技术方案,通过响应于对嵌入式设备的启动指令,执行对嵌入式操作系统和通用计算机操作系统的并行启动流程;通过嵌入式操作系统在启动完成后,对嵌入式设备中的各硬件进行第一阶段的硬件初始化操作;通过通用计算机操作系统在启动完成后,对嵌入式设备中的各硬件进行第二阶段的硬件初始化的方式,使用多cpu核技术,由嵌入式操作系统和通用计算机操作系统配合实现了嵌入式设备中的各硬件的并行初始化,大大提高了安装通用计算机操作系统的嵌入式设备的开机启动速度,满足了特定应用场景对嵌入式设备的快速启动需求。
110.在上述各实施例的基础上,并行启动流程执行模块310可以具体用于:响应于对嵌入式设备的启动指令,触发执行主核中的引导程序;通过执行所述引导程序,在目标从核中启动执行所述嵌入式操作系统后,在所述主核中启动执行所述通用计算机操作系统;其中,所述目标从核的入口点预先设置为所述嵌入式操作系统的入口地址,且预先在所述引导程序的启动参数中将通用计算机操作系统使用的cpu核与嵌入式操作系统使用的cpu核进行配置隔离。
111.在上述各实施例的基础上,第二阶段的硬件初始化操作模块330可以具体用于下述至少一项:通过通用计算机操作系统,针对嵌入式设备中完成第一阶段的硬件初始化的第一类硬件,进行第二阶段的硬件初始化;通过通用计算机操作系统,针对嵌入式设备中未进行第一阶段的硬件初始化的第二类硬件,进行第二阶段的硬件初始化。
112.在上述各实施例的基础上,第一阶段的硬件初始化操作模块320可以具体包括:第一阶段初始化完成通知子单元,用于通过嵌入式操作系统,每当完成对嵌入式设备中目标硬件的第一阶段的硬件初始化操作时,生成与目标硬件匹配的第一阶段初始化完成通知;第二阶段的硬件初始化操作模块330,可以具体包括:目标硬件识别子单元,用于通过通用计算机操作系统在启动完成后,每当监听到嵌入式操作系统发送的第一阶段初始化完成通知,则识别所述第一阶段初始化完成通知匹配的目标硬件,并执行与所述目标硬件匹配的第二阶段的硬件初始化。
113.在上述各实施例的基础上,第一阶段初始化完成通知子单元,还可以用于:通过嵌入式操作系统,如果确定针对目标硬件的第一阶段的硬件初始化操作在共享内存中的目标存储区域内生成了中间数据,则将目标存储区域的索引地址加入至第一阶段初始化完成通知中;目标硬件识别子单元,可以具体用于:通过通用计算机操作系统识别所述第一阶段初始化完成通知匹配的目标硬件和目标存储区域的索引地址,并根据从所述目标存储区域的
索引地址获取的所述中间数据,执行与所述目标硬件匹配的第二阶段的硬件初始化。
114.在上述各实施例的基础上,第二阶段的硬件初始化操作模块330,可以具体用于:通过嵌入式操作系统在启动完成后,调用分配给所述嵌入式操作系统使用的多个cpu核,并行的对嵌入式设备中的各硬件进行第一阶段的硬件初始化操作。
115.在上述各实施例的基础上,还可以包括,快启应用模块,用于:在通过嵌入式操作系统在启动完成后,对嵌入式设备中的各硬件进行第一阶段的硬件初始化操作之后,还可以用于:在通过嵌入式操作系统,确定完成对快启应用匹配的快启硬件的第一阶段的硬件初始化操作时,在所述嵌入式操作系统中运行所述快启应用;还可以包括,快启应用切换模块,用于:在通过通用计算机操作系统在启动完成后,对嵌入式设备中的各硬件进行第二阶段的硬件初始化之后,还可以用于:在通过通用计算机操作系统,确定完成对所述快启硬件的第一阶段的硬件初始化操作时,将所述快启应用切换至所述通用计算机操作系统中继续运行。
116.上述嵌入式设备的启动装置可执行本发明任意实施例所提供的嵌入式设备的启动方法,具备执行方法相应的功能模块和有益效果。
117.实施例四
118.图4是本发明实施例四提供的一种嵌入式设备的结构示意图。如图4所示,该设备包括cpu核410、存储器420、输入装置430和输出装置440;设备中cpu核410的数量可以是多个,图4中以多个cpu核410为例;设备中的cpu核410、存储器420、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线连接为例。
119.存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的嵌入式设备的启动方法对应的程序指令/模块(例如,并行启动流程执行模块310、第一阶段的硬件初始化操作模块320和第二阶段的硬件初始化操作模块330)。cpu核410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的嵌入式设备的启动方法,该方法包括:
120.响应于对嵌入式设备的启动指令,执行对嵌入式操作系统和通用计算机操作系统的并行启动流程;通过嵌入式操作系统在启动完成后,对嵌入式设备中的各硬件进行第一阶段的硬件初始化操作;通过通用计算机操作系统在启动完成后,对嵌入式设备中的各硬件进行第二阶段的硬件初始化,以实现嵌入式设备在通用计算机操作系统中的快速启动。
121.存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于cpu核410远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
122.输入装置430可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。
123.实施例五
124.本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种嵌入式设备的启动方法,该方法包括:响应
于对嵌入式设备的启动指令,执行对嵌入式操作系统和通用计算机操作系统的并行启动流程;通过嵌入式操作系统在启动完成后,对嵌入式设备中的各硬件进行第一阶段的硬件初始化操作;通过通用计算机操作系统在启动完成后,对嵌入式设备中的各硬件进行第二阶段的硬件初始化,以实现嵌入式设备在通用计算机操作系统中的快速启动。
125.当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的嵌入式设备的启动方法中的相关操作。
126.通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
127.值得注意的是,上述嵌入式设备的启动装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
128.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献