一种嵌入式操作系统的快速启动方法及其装置的制造方法_2

文档序号:8457165阅读:来源:国知局
包括显示器11、主控装置12、存储装置13以及输入装置14。
[0046]参看图2,本申请所述方法包括:
[0047]S1、将分别保存在至少两个可断电保存介质中的切分映像文件并行加载到内存,所述切分映像文件为根据可断电保存介质数量切分的操作系统映像文件。
[0048]具体地,所述嵌入式装置上电启动,即电源为MCU芯片供电,各电路板进行复位等。本申请将至少两个可断电保存介质中保存的映像文件(OS Image),并行加载到内存。所述可断电保存介质为eMMC、NAND Flash、SPI Flash中至少一种。
[0049]目前操作系统启动都是通过eMMC、NAND Flash、SPI Flash等慢速可掉电保存的设备中启动,以常见的eMMC 4.1启动,时钟频率为501,读取速度为5011 bytes/s,大的android操作系统的显示界面需要300M,读取时间近6S。而操作系统启动的映像文件通常都较大,因此,本申请将一个映像文件分成至少两个切分映像文件,设计至少两个相同或者不同的可断电保存介质分别存储所分成的至少两个切分映像文件。例如,采用一 eMMC和一NAND Flash共同存储一映像文件。从而,并行的从多个相同或者不同的可断电保存介质存储复制映像文件,以增加操作启动时向内存加载映像文件的带宽。本申请加载过程可以通过DMA(直接内存存取)完成,设定多个DMA对应多个相同或者不同的可断电保存介质,或者设定多个DMA对应同一个可断电保存介质。其中,设定DMA中的burst值为并行操作的关键。
[0050]S2、将无依赖关系的硬件初始化操作分成至少两个作业,提交到加载工具中。
[0051]由于硬件初始化操作都是I/O密集型的作业,所谓的I/O密集型是指需要等待I/O操作完成,因此在硬件初始化操作过程中的很多时间是在等待中。
[0052]所述无依赖关系的硬件初始化操作是指其运行彼此没有影响的操作,例如USB接口的wifi模组,wifi模组需要等待USB协议栈初始化完成后再初始化。因此USB协议栈初始化和wifi模组初始化为具有依赖关系的硬件初始化操作。再例如,触摸屏(TouchPannel)的初始化,由于其使用了 I2C接口,需要等待I2C接口初始化完成后方可进行初始化。因此触摸屏初始化和I2C接口初始化为具有依赖关系的硬件初始化操作。而USB接口初始化和I2C接口初始化则为无依赖关系的硬件初始化操作。
[0053]对于嵌入式装置中的很多硬件可以同时执行初始化的操作,因此本申请分析系统中的硬件的关系,将无依赖关系的硬件初始化操作分成至少两个作业(Job)。硬件初始化操作的依赖关系是指需要等待前一个硬件完成初始化后才能够进行下一个硬件的初始化操作。本申请将分成的作业提交到加载工具(loader)中。
[0054]S3、所述加载工具并行处理所述至少两个作业的初始化操作。
[0055]加载工具(loader)并行执行(Mult1-thread)所述至少两个作业的初始化操作,从而减少了各无依赖关系的硬件完成初始化操作的时间,减少了等待时间。
[0056]S4、运行所述映像文件,完成启动程序。
[0057]本申请将分别保存在至少两个可断电保存介质中的切分映像文件并行加载到内存。所述切分映像文件为根据可断电保存介质数量切分的操作系统映像文件。从而,避免了由于映像文件过大造成的映像文件的加载速度慢,提高了映像文件加载到内存的速度。同时,本申请将无依赖关系的硬件初始化操作分成至少两个作业,提交到加载工具中,所述加载工具并行处理所述至少两个作业的初始化操作。这种硬件初始化的并行处理,进一步加快了硬件初始化的速度,从而实现嵌入式操作系统的快速启动,其实现简单,成本低廉。
[0058]在本申请另一具体实现中,所述方法包括上述步骤SI—一S4,所述步骤SI中所述将至少两个可断电保存介质中保存的切分映像文件并行加载到内存的内存布局同所述步骤S3中加载工具并行处理所述至少两个作业的初始化操作的内存布局不重叠。
[0059]由于本申请保存的OS映像文件为由一个映像文件切分成的至少两个切分文件,而加载映像文件到内存,也是I/o密集型的操作,主要是受可断电保存介质的输出带宽的影响。而将切分映像文件加载到内存,也受目标地址的一些限制。因此,将至少两个可断电保存介质中保存的切分映像文件并行加载到内存与加载工具并行处理所述至少两个作业的初始化操作的目标地址不可相互重叠,否则后面执行的作业可能会覆盖前面的执行的作业。
[0060]在本申请另一具体实现中,所述方法包括上述步骤SI—一S4,参看图3,所述步骤SI之前还包括步骤:
[0061]S0、关机前将内存中的操作系统映像文件根据可断电保存介质的数量切分成切分映像文件,并将所述切分映像文件复制到至少两个可断电保存介质中保存为映像文件。
[0062]具体地,本申请嵌入式装置关机前将内存中的一个OS映像文件切分成至少两个切分映像文件,复制到至少两个可断电保存介质作为映像文件进行保存,用于后续的快速启动。
[0063]在本申请另一具体实现中,所述方法包括上述步骤SI一一S4,所述步骤SO还包括:
[0064]将切分映像文件进行压缩,并将压缩后的切分映像文件复制到至少两个可断电保存介质中保存。
[0065]所述步骤SI还包括:
[0066]对加载的所述切分映像文件进行解压缩。
[0067]本申请通过对切分映像文件进行压缩,进一步提高复制速度以及并行处理能力,进一步提高了嵌入式操作系统的启动速度。
[0068]对应于上述方法,本申请提供一种嵌入式操作系统的快速启动装置,应用于嵌入式装置,比如车载终端、TV、STB等。参看图1,所述嵌入式装置I,在硬件上通常包括显示器
11、主控装置12、存储装置13以及输入装置14。
[0069]参看图4,本申请所述装置包括:
[0070]文件加载模块41,用于将分别保存在至少两个可断电保存介质中的切分映像文件并行加载到内存,所述切分映像文件为根据可断电保存介质数量切分的操作系统映像文件。
[0071]作业分配模块42,用于将无依赖关系的硬件初始化操作分成至少两个作业,提交到加载工具中。
[0072]操作处理模块43,用于利用所述加载工具并行处理所述至少两个作业的初始化操作。
[0073]文件运行模块44,用于运行所述映像文件,完成启动程序。
[0074]具体地,所述嵌入式装置上电启动,即电源为MCU芯片供电,各电路板进行复位等。本申请将至少两个可断电保存介质中保存的映像文件(OS Image),并行加载到内存。所述可断电保存介质为eMMC、NAND Flash、SPI Flash中至少一种。
[0075]目前操作系统启动都是通过eMMC、NAND Flash、SPI Flash等慢速可掉电保存的设备中启动,以常见的eMMC 4.1启动,时钟频率为501,读取速度为5011 bytes/s,大的android操作系统的显示界面需要300M,读取时间近6S。而操作系统启动的映像文件通常都较大,因此,本申请将一个映像文件分成至少两个切分映像文件,设计至少两个相同或者不同的可断电保存介质分别存储所分成的至少两个切分映像文件。例如,采用一 eMMC和一NAND Flash共同存储一映像文件。从而,并行的从多个相同或者不同的可断电保存介质存储复制映像文件,以增加操作启动时向内存加载映像文件的带宽。本申请加载过程可以通过DMA(直接内存存取)完成,设定多个DMA对应多个相同或者不同的可断电保存介质,或者设定多个DMA对应同一个可断电保存介质。其中,设定DMA中的burst值为并行操作的关键。
[0076]由于硬件初始化操作都是I/O密集型的作业,所谓的I/O密集型是指需要等待I/O操作完成,因此在硬件初始化操作过程中的很多时间是在等待中。
[0077]所述无依赖关系的硬件初始化操作是指其运行彼此没有影响的操作,例如USB接口的wifi模组,wifi模组需要等待USB协议栈初始化完成后再初始化。因此USB协议栈初始化和wifi模组初始化为具有依赖关系的硬件初始化操作。再例如,触摸屏(TouchPannel)的初始化,由于其使用了 I2C接口,需要等待I2C接口初始化完成后方可进行初始化。因此触摸屏初始化和I2C接口初始化为具有依赖关系的硬件初始化操作。而USB接口初始化和I2C接口初始化则为无依赖关系的硬件初始化操作。
[0078]对于嵌入式装置中的很多硬件可以同时执行初始化的操作,因此本申请分析系统中的硬件的关系,将无依赖关系的硬件初始化操作分成至少两个作业(Job)。硬件初始化操作的依赖关系是指需要等待前一个硬件完成初始化后才能够进行下一个硬件的初始化操作。本申请将分成的作业提交到加载工具(loader)中。
[0079]加载工具
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1