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

一种快速开机方法及系统与流程

2022-02-20 00:06:51 来源:中国专利 TAG:


1.本发明涉及嵌入式系统领域,尤其涉及一种快速开机方法及系统。


背景技术:

2.嵌入式系统固件由于受到设备存储大小的限制,通常都会将固件进行压缩。所以在嵌入式系统的开启启动过程中是先加载压缩的固件,再进行解压后运行。现有的解压方案是cpu主核加载压缩固件,cpu辅核进行固件解压,解压完成之后再通知cpu主核开始运行解压后的固件。这样存在几个问题:1.辅核需要实现固件解压、控制和通知等功能,各个功能之间互相抢占资源;2.辅核的运行将占用部分硬件和cpu资源,拖慢整体运行速度;3.辅核的解压性能如果快不过主核的运行速度,那么主核将需要等待辅核返回结果,无法最大程度发挥主核的效率,从而拖慢嵌入式系统的开机速度。


技术实现要素:

3.本发明所要解决的技术问题是:提供一种快速开机方法及系统,实现嵌入式系统的快速开机。
4.为了解决上述技术问题,本发明采用的一种技术方案为:
5.一种快速开机方法,包括步骤:
6.cpu加载完成压缩固件后,发送解压指令至硬件解压模块;
7.所述硬件解压模块接收所述cpu的解压指令,所述解压指令包括解压存放地址和所述压缩固件的压缩数据地址;
8.所述硬件解压模块根据所述压缩数据地址获取压缩固件,并将解压后的压缩固件存放到解压存放地址。
9.为了解决上述技术问题,本发明采用的另一种技术方案为:
10.一种快速开机系统,包括cpu和硬件解压模块,所述cpu包括寄存器、算术逻辑单元及存储在所述寄存器上并可在所述算术逻辑单元上运行的第一计算机程序;所述硬件解压模块包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的第二计算机程序;
11.所述算术逻辑单元执行所述第一计算机程序时实现以下步骤:
12.加载完成压缩固件后,发送解压指令至硬件解压模块;
13.所述处理器执行所述第二计算机程序时实现以下步骤:
14.接收所述cpu的解压指令,所述解压指令包括解压存放地址和所述压缩固件的压缩数据地址;
15.根据所述压缩数据地址获取压缩固件,并将解压后的压缩固件存放到解压存放地址。
16.本发明的有益效果在于:设置专门的硬件解压模块,在cpu加载完成压缩固件之后,发送解压指令至硬件解压模块,硬件解压模块根据解压指令中的压缩数据地址获取压
缩固件,进行解压之后将解压完成的压缩固件存放到解压存放地址,设置专门的硬件解压模块不会占用cpu中的资源,实现了压缩固件加载和压缩固件解压之间的完全并行,cpu在加载压缩固件时无需等待上一个固件压缩完成即可直接执行其他步骤,通过并行减少了嵌入式系统启动过程中的用时,实现了嵌入式系统的开机加速。
附图说明
17.图1为本发明实施例的一种快速开机方法的步骤流程图;
18.图2为本发明实施例的一种快速开机系统的结构示意图;
19.图3为本发明实施例的一种快速开机方法应用在linux系统中的流程图;
20.标号说明:
21.1、cpu;11、算术逻辑单元;12、寄存器;2、硬件解压模块;21、处理器;22、存储器;3、一种快速开机系统。
具体实施方式
22.为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
23.请参照图1,一种快速开机方法,包括步骤:
24.cpu加载完成压缩固件后,发送解压指令至硬件解压模块;
25.所述硬件解压模块接收所述cpu的解压指令,所述解压指令包括解压存放地址和所述压缩固件的压缩数据地址;
26.所述硬件解压模块根据所述压缩数据地址获取压缩固件,并将解压后的压缩固件存放到解压存放地址。
27.从上述描述可知,本发明的有益效果在于:设置专门的硬件解压模块,在cpu加载完成压缩固件之后,发送解压指令至硬件解压模块,硬件解压模块根据解压指令中的压缩数据地址获取压缩固件,进行解压之后将解压完成的压缩固件存放到解压存放地址;设置专门的硬件解压模块不会占用cpu中的资源,实现了压缩固件加载和压缩固件解压之间的完全并行,cpu在加载压缩固件时无需等待上一个固件压缩完成即可直接执行其他步骤,通过并行减少了嵌入式系统启动过程中的用时,实现了嵌入式系统的开机加速。
28.进一步地,所述cpu加载完成压缩固件后,发送解压指令至硬件解压模块之后还包括:
29.所述cpu加载下一压缩固件。
30.由上述描述可知,在嵌入式系统的启动过程中通常需要加载不止一个压缩固件,cpu加载完成一个压缩固件之后可以无缝继续加载下一个压缩固件,无需等待加载完成的压缩固件的解压结果反馈,能够最大程度解放cpu的算力,从而进一步加速开机过程。
31.进一步地,所述硬件解压模块根据所述压缩数据地址获取所述压缩固件,并将解压后的所述压缩固件存放到解压存放地址之后包括:
32.所述硬件解压模块将所述压缩固件对应的预设解压标志位修改为预设值;
33.还包括:
34.所述cpu判断待检验压缩固件对应的待检验预设解压标志位是否为所述预设值,
若是,运行所述待检验压缩固件。
35.由上述描述可知,为每个压缩固件设置对应的预设解压标志位,在解压完成之后将对应的预设解压标志位设置为预设值,即预设解压标志位若为预设值表示其对应的压缩固件已经解压完毕,cpu先获取预设解压标志位,若为预设值再运行对应的已解压的压缩固件,获取预设解压标志位所需时间远远小于尝试直接运行压缩固件测试是否能运行的时间,从而进一步提升了嵌入式系统的开机速度。
36.进一步地,所述cpu加载完成压缩固件后,发送解压指令至硬件解压模块包括:
37.所述cpu获取压缩固件顺序表;
38.所述cpu根据所述压缩固件顺序表依次加载所述压缩固件。
39.由上述描述可知,cpu获取压缩固件顺序表,并按照顺序依次加载压缩固件,因嵌入式系统中开机过程中部分固件需要顺序运行,先被cpu加载完成的压缩固件能够先被压缩完成,避免出现步骤在后的压缩固件解压完成,但步骤在前的压缩固件还未解压而需要等待的情况,进一步保证开机效率。
40.进一步地,所述将解压后的所述压缩固件存放到解压存放地址包括:
41.将解压后的所述压缩固件通过直接存储器访问存放到解压存放地址。
42.由上述描述可知,通过直接存储器访问(dma,direct memory access)存放到解压存放地址中,能够实现数据的直接搬移,速度快于cpu内部的数据搬移,能够加快开机过程中压缩固件的传送速度。
43.请参照图2,一种快速开机系统,包括cpu和硬件解压模块,所述cpu包括寄存器、算术逻辑单元及存储在所述寄存器上并可在所述算术逻辑单元上运行的第一计算机程序;所述硬件解压模块包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的第二计算机程序;
44.所述算术逻辑单元执行所述第一计算机程序时实现以下步骤:
45.加载完成压缩固件后,发送解压指令至硬件解压模块;
46.所述处理器执行所述第二计算机程序时实现以下步骤:
47.接收所述cpu的解压指令,所述解压指令包括解压存放地址和所述压缩固件的压缩数据地址;
48.根据所述压缩数据地址获取压缩固件,并将解压后的压缩固件存放到解压存放地址。
49.从上述描述可知,本发明的有益效果在于:设置专门的硬件解压模块,在cpu加载完成压缩固件之后,发送解压指令至硬件解压模块,硬件解压模块根据解压指令中的压缩数据地址获取压缩固件,进行解压之后将解压完成的压缩固件存放到解压存放地址;设置专门的硬件解压模块不会占用cpu中的资源,实现了压缩固件加载和压缩固件解压之间的完全并行,cpu在加载压缩固件时无需等待上一个固件压缩完成即可直接执行其他步骤,通过并行减少了嵌入式系统启动过程中的用时,实现了嵌入式系统的开机加速。
50.进一步地,所述加载完成压缩固件后,发送解压指令至硬件解压模块之后还包括:
51.所述算术逻辑单元执行所述第一计算机程序时加载下一压缩固件。
52.由上述描述可知,在嵌入式系统的启动过程中通常需要加载不止一个压缩固件,cpu加载完成一个压缩固件之后可以无缝继续加载下一个压缩固件,无需等待加载完成的
压缩固件的解压结果反馈,能够最大程度解放cpu的算力,从而进一步加速开机过程。
53.进一步地,所述根据所述压缩数据地址获取所述压缩固件,并将解压后的所述压缩固件存放到解压存放地址之后包括:
54.所述处理器执行所述第二计算机程序时将所述压缩固件对应的预设解压标志位修改为预设值;
55.还包括:
56.所述算术逻辑单元执行所述第一计算机程序时判断待检验压缩固件对应的待检验预设解压标志位是否为所述预设值,若是,运行所述待检验压缩固件。
57.由上述描述可知,为每个压缩固件设置对应的预设解压标志位,在解压完成之后将对应的预设解压标志位设置为预设值,即预设解压标志位若为预设值表示其对应的压缩固件已经解压完毕,cpu先获取预设解压标志位,若为预设值再运行对应的已解压的压缩固件,获取预设解压标志位所需时间远远小于尝试直接运行压缩固件测试是否能运行的时间,从而进一步提升了嵌入式系统的开机速度。
58.进一步地,所述加载完成压缩固件后,发送解压指令至硬件解压模块包括:
59.获取压缩固件顺序表;
60.根据所述压缩固件顺序表依次加载所述压缩固件。
61.由上述描述可知,cpu获取压缩固件顺序表,并按照顺序依次加载压缩固件,因嵌入式系统中开机过程中部分固件需要顺序运行,先被cpu加载完成的压缩固件能够先被压缩完成,避免出现步骤在后的压缩固件解压完成,但步骤在前的压缩固件还未解压而需要等待的情况,进一步保证开机效率。
62.进一步地,所述将解压后的所述压缩固件存放到解压存放地址包括:
63.将解压后的所述压缩固件通过直接存储器访问存放到解压存放地址。
64.由上述描述可知,通过直接存储器访问(dma,direct memory access)存放到解压存放地址中,能够实现数据的直接搬移,速度快于cpu内部的数据搬移,能够加快开机过程中压缩固件的传送速度。
65.请参照图1,本发明的实施例一为:
66.一种快速开机方法,包括步骤:
67.s00、cpu加载完成压缩固件后,发送解压指令至硬件解压模块,所述解压指令包括解压存放地址和所述压缩固件的压缩数据地址;
68.其中,s00前还包括:获取压缩固件顺序表,根据压缩固件顺序表加载首个压缩固件;
69.s01、所述硬件解压模块根据所述压缩数据地址获取所述压缩固件,并将解压后的所述压缩固件存放到解压存放地址;
70.具体的,将解压后的压缩固件通过直接存储访问存放到解压存放地址,所述解压存放地址位于内存中;
71.在一种可选的实施方式中,硬件解压模块可为自研的模块或移植开发完成的封装模块。
72.本发明的实施例二为:
73.一种快速开机方法,其与实施例一的不同之处在于,所述s00之后还包括:
74.s001、所述cpu加载下一压缩固件;具体的,根据固件顺序表加载下一压缩固件;其中,步骤s001与步骤s01是在两个不同的硬件中执行,即步骤s001可以在步骤s01之前、之后或者二者同时,本实施例在此不做限制;并且,s00与s001循环执行,直至所有需加载的压缩固件都被cpu加载完毕;
75.所述s01之后还包括:
76.s011、所述硬件解压模块将所述压缩固件对应的预设解压标志位修改为预设值;
77.s012、所述cpu判断待检验压缩固件对应的待检验预设解压标志位是否为所述预设值,若是,运行所述待检验压缩固件;在一种可选的实施方式中,s012在cpu加载完所有压缩固件后才开始执行;待检验压缩固件按照固件顺序表加载;
78.在一种可选的实施方式中,解压标志位包括0和1,0标识压缩固件未解压完成,1标识压缩固件已解压完成,即1为所述预设值,0为默认值。
79.请参照图3,本发明的实施例三为:
80.将上述的一种快速开机方法用于linux系统的启动过程中:
81.a00、在cpu中启动bootrom并加载bootloader运行;bootloader进行驱动初始化,其中包括cpu中存储模块与硬件解压模块的初始化;
82.a01、在cpu中bootloader读取压缩的kernel(即压缩固件)加载到存储模块,设置压缩数据地址和解压存放地址后,启动硬件解压模块进行解压;
83.a02、在cpu中bootloader继续读取压缩的ramdisk并加载到内存,设置压缩数据地址和解压存放地址后,启动硬件解压模块进行解压;
84.a03、cpu中bootloader判断kernel解压完成标志,若完成则跳转到解压完的kernel运行,kernel进行初始化,然后判断ramdisk解压完成标志,若完成则跳转解压后的ramdisk进行执行。
85.请参照图2,本发明的实施例四为:
86.一种快速开机系统,包括cpu和硬件解压模块,所述cpu包括寄存器、算术逻辑单元及存储在所述寄存器上并可在所述算术逻辑单元上运行的第一计算机程序;所述硬件解压模块包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的第二计算机程序;所述算术逻辑单元执行所述第一计算机程序时实现实施例一、实施例二或实施例三中cpu实现的各个步骤,所述处理器执行所述第二计算机程序时实现实施例一、实施例二或实施例三中硬件解压模块所实现的各个步骤。
87.综上所述,本发明提供了一种快速开机方法及系统,通过设置硬件解压模块,cpu加载完成压缩固件之后,发送解压指令至硬件解压模块,硬件解压模块根据解压指令进行压缩固件的解压,同时cpu可进行下一个压缩固件的加载,实现了压缩固件加载和压缩固件解压的完全并行,解压模块能够进行解压回写的连续操作,并且能够一次性处理多个数据,解压时间大大少于使用cpu进行软件解压所用的解压时间,并且硬件解压模块能够使用dma直接和内存通信,比cpu内主核和副核之间的数据搬运更加快速,且无需cpu参与解压,数据再写回内存更加快速,在cpu中进行下一顺序位的压缩固件读取时,硬件解压模块同时进行上一顺序位的压缩固件的解压,通过缩短压缩固件的解压缩时间缩短了系统的开机时间,特别适用于linux系统的开机过程。
88.以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发
明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

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

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

相关文献