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

BootLoader启动流程的监控方法、装置及存储介质与流程

2021-11-22 12:53:00 来源:中国专利 TAG:

bootloader启动流程的监控方法、装置及存储介质
技术领域
1.本技术涉及嵌入式设备领域,尤其涉及一种bootloader启动流程的监控方法、装置及存储介质。


背景技术:

2.bootloader是在嵌入式设备的操作系统运行之前执行的一段引导程序,通过执行bootloader可以初始化硬件设备,建立内存空间的映射表,从而建立适当的系统软硬件环境,为嵌入式设备的处理器最终调用操作系统内核做好准备。
3.通常来说,bootloader的启动过程包括两大阶段,每一阶段又包括多个子阶段。然而,现有技术中并没有任何有效的方式能够实现统计bootloader各个阶段(或子阶段)的执行耗时,也没有任何有效的方法能够实现在bootloader启动失败的情况下,针对bootloader的启动过程中涉及的多个阶段(或子阶段)进行故障定位。


技术实现要素:

4.为了解决上述技术问题或者至少部分地解决上述技术问题,本技术提供了一种bootloader启动流程的监控方法、装置及存储介质。
5.第一方面,本技术提供了一种bootloader启动流程的监控方法,所述方法包括:
6.在bootloader启动过程中,获取所述bootloader包含的目标功能模块的执行过程信息;
7.当检测到所述bootloader的触发信号时,根据已获取的所述目标功能模块的执行过程信息确定所述目标功能模块的执行状态。
8.可选的,所述执行过程信息包括:开始执行时间、结束执行时间;
9.所述获取所述bootloader包含的目标功能模块的执行过程信息,包括:
10.在所述bootloader包含的目标功能模块开始执行时,获取系统当前时间作为所述目标功能模块的开始执行时间;
11.在所述bootloader包含的目标功能模块成功执行完成时,获取系统当前时间作为所述目标功能模块的结束执行时间。
12.可选的,所述执行过程信息包括:执行耗时;
13.所述获取所述bootloader包含的目标功能模块的执行过程信息,包括:
14.在所述bootloader包含的目标功能模块开始执行时,将系统计时器归零并启动所述系统计时器;
15.在所述bootloader包含的目标功能模块成功执行完成时,获取所述系统计时器的当前计时作为所述目标功能模块的执行耗时。
16.可选的,所述触发信号用于指示所述bootloader成功启动完成,所述根据已获取的所述目标功能模块的执行过程信息确定所述目标功能模块的执行状态,包括:
17.根据已获取的所述目标功能模块的执行过程信息确定所述目标功能模块的执行
耗时;
18.比较所述执行耗时与所述目标功能模块对应的超时阈值;
19.在比较得出所述执行耗时与所述超时阈值之间的大小关系满足第一预置条件时,确定所述目标功能模块的执行状态为正常执行;在比较得出所述执行耗时与所述超时阈值之间的大小关系满足第二预置条件时,则确定所述目标功能模块的执行状态为超时执行。
20.可选的,所述触发信号用于指示所述bootloader启动失败,所述根据已获取的所述目标功能模块的执行过程信息确定所述目标功能模块的执行状态,包括:
21.生成用于指示所述bootloader启动失败的指示消息,将所述指示消息发送至外部设备;
22.接收所述外部设备基于所述指示消息发送的数据读取请求,将已获取的所述目标功能模块的执行过程信息发送至所述外部设备,以使所述外部设备根据接收到的所述执行过程信息确定所述目标功能模块的执行状态。
23.第二方面,本技术提供了一种bootloader启动流程的监控装置,所述装置包括:
24.信息获取模块,用于在bootloader启动过程中,获取所述bootloader包含的目标功能模块的执行过程信息;
25.状态确定模块,用于当检测到所述bootloader的触发信号时,根据已获取的所述目标功能模块的执行过程信息确定所述目标功能模块的执行状态。
26.可选的,所述执行过程信息包括:开始执行时间、结束执行时间;
27.所述信息获取模块包括:
28.第一信息获取子模块,用于在所述bootloader包含的目标功能模块开始执行时,获取系统当前时间作为所述目标功能模块的开始执行时间;
29.第二信息获取子模块,用于在所述bootloader包含的目标功能模块成功执行完成时,获取系统当前时间作为所述目标功能模块的结束执行时间。
30.可选的,所述执行过程信息包括:执行耗时;
31.所述信息获取模块包括:
32.计时器启动子模块,用于在所述bootloader包含的目标功能模块开始执行时,将系统计时器归零并启动所述系统计时器;
33.第三信息获取子模块,用于在所述bootloader包含的目标功能模块成功执行完成时,获取所述系统计时器的当前计时作为所述目标功能模块的执行耗时。
34.第三方面,提供了一种嵌入式设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
35.存储器,用于存放计算机程序;
36.处理器,用于执行存储器上所存放的程序时,实现第一方面任一项实施例所述的bootloader启动流程的监控方法的步骤。
37.第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项实施例所述的bootloader启动流程的监控方法的步骤。
38.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:
39.本技术实施例提供的该方法,通过在bootloader启动过程中,获取bootloader包
含的目标功能模块的执行过程信息,当检测到bootloader的触发信号时,根据已获取的目标功能模块的执行过程信息确定目标功能模块的执行状态,实现了获取bootloader启动过程中,bootloader包含的各个目标功能模块,也即各个阶段的执行过程信息,这能够实现以bootloader启动流程所包含的各个阶段为粒度,有针对性地对bootloader的启动流程进行优化,从而为提升嵌入式设备的开机速度提供了有效信息;进一步的,即使bootloader启动失败,也能够已获取的执行过程信息确定bootloader启动过程中,出现异常的阶段,从而为故障定位提供有效信息。
附图说明
40.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
41.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
42.图1为本技术实施例提供的一种bootloader启动流程的监控方法的流程示意图;
43.图2为本技术实施例提供的另一种bootloader启动流程的监控方法的流程示意图;
44.图3为本技术实施例提供的再一种bootloader启动流程的监控方法的流程示意图;
45.图4为本技术实施例提供的一种emmc中新增分区的示意图;
46.图5为本技术实施例提供的一种bootloader启动流程的监控装置的流程示意图;
47.图6为本技术实施例提供的一种嵌入式设备的结构示意图。
具体实施方式
48.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
49.图1为本技术实施例提供的一种bootloader启动流程的监控方法的流程示意图。作为一个实施例,可方法可应用于嵌入式设备,比如智能电视上,如图1所示,包括以下步骤:
50.步骤101、在bootloader启动过程中,获取bootloader包含的目标功能模块的执行过程信息。
51.通常情况下,bootloader的启动过程包括两个阶段,其中,第一阶段通常包括以下子阶段:硬件设备初始化、为加载bootloader的第二阶段准备ram空间、拷贝bootloader的第二阶段到ram空间中、设置堆栈、跳转到第二阶段的入口点;第二阶段通常包括以下子阶段:初始化本阶段要使用到的硬件设备、检测系统内存映射、将kernel映像和根文件系统映像从flash中读到ram空间、为内核设置启动参数、调用内核。进一步的,每一子阶段又可被划分为多个子单元阶段,比如硬件设备初始化包括:控制器初始化、寄存器初始化等。由此
可见,bootloader的启动过程包括多个阶段,每一阶段可包括多个子阶段,每一子阶段又可包括多个子单元阶段。
52.在应用中,可将bootloader启动过程中的每一个子单元阶段封装为一个功能模块,如此,bootloader则包含多个功能模块,bootloader的启动流程则是指每一个功能模块按照顺序启动的过程。
53.进一步的,本技术实施例中,可从bootloader包含的多个功能模块中确定一个或多个目标功能模块,在bootloader启动过程中,获取该一个或多个目标功能模块中每个目标功能模块的执行过程信息。可选的,可由用户事先将bootloader包含的每一功能模块或者部分功能模块设置为目标功能模块。此外,用户还可根据实际业务需求,动态设置目标功能模块,这也就意味着,目标功能模块是可变的,是可以根据用户需求进行设置的。在同一bootloader,不同次的启动过程中,目标功能模块可以是不同的,本技术实施例对此不做限制。
54.作为一个可选的实施例,目标功能模块的执行过程信息可以包括:目标功能模块的开始执行时间和结束执行时间。至于是如何实现在bootloader启动过程中,获取bootloader包含的目标功能模块的开始执行时间和结束执行时间的,在下文中通过图2所示实施例进行说明,这里先不做详述。
55.作为另一个可选的实施例,目标功能模块的执行过程信息可以包括:目标功能模块的执行耗时。至于是如何实现在bootloader启动过程中,获取bootloader包含的目标功能模块的执行耗时的,在下文中通过图3所示实施例进行说明,这里先不做详述。
56.本技术实施例中,在获取bootloader包含的目标功能模块的执行过程信息后,可将获取到的执行过程信息写入指定存储介质。可选的,指定存储介质可以为嵌入式设备的emmc(embedded multi media card,内嵌式多媒体存储器)中的一个分区。例如,如图4所示,为本技术实施例提供的一种emmc中新增分区的示意图。emmc中包含用户分区(user partition)、系统分区(system partition)、引导分区(boot partition)等分区,特别地,本技术实施例中在emmc中新增了一个分区,启动日志分区(bootlog partition),专用于存储bootloader包含的目标功能模块的执行过程信息。可以理解的是,emmc具有容量大、读写速度快、兼容性好等优点,因此,将获取到的执行过程信息写入嵌入式设备的emmc,可以提高执行过程信息存储的稳定性,并提高后续从emmc中获取执行过程信息的速度。
57.步骤102、当检测到bootloader的触发信号时,根据已获取的目标功能模块的执行过程信息确定目标功能模块的执行状态。
58.作为一个可选的实施例,上述触发信号可以用于指示bootloader成功启动。在bootloader成功启动的情况下,系统也将正常启动,基于此,在步骤102中,当检测到bootloader成功启动时,可获取指定存储介质中已存储的各个目标功能模块的执行过程信息,进一步的,根据各个目标功能模块的执行过程信息确定各个目标功能模块的执行状态。具体的,可以通过通过嵌入式设备中已安装的应用程序进行获取。
59.具体的,若执行过程信息包括目标功能模块的开始执行时间和结束执行时间,则针对每一目标功能模块,通过下述公式(一)确定该目标功能模块的执行耗时:
60.t=t1‑
t2ꢀꢀꢀ
公式(一)
61.其中,t表示执行耗时,t1表示结束执行时间,t2表示开始执行时间。
62.然后,针对每一目标功能模块,比较该目标功能模块的执行耗时与该目标功能模块对应的超时阈值,在比较得出执行耗时与超时阈值之间的大小关系满足第一预置条件,例如执行耗时小于等于超时阈值时,则意味着该目标功能模块的执行耗时在预期范围内,因此可确定该目标功能模块的执行状态为正常执行;反之,在比较得出执行耗时与超时阈值之间的大小关系满足第二预置条件,例如执行耗时大于超时阈值时,则意味着该目标功能模块的执行耗时超出了预期范围,因此可确定该功能模块的执行状态为超时执行。需要说明的是,在应用中,可根据实际情况为不同的目标功能模块设置不同的超时阈值。
63.若执行过程信息包括目标功能模块的执行耗时,则可直接针对每一目标功能模块,通过比较该目标功能模块的执行耗时与该目标功能模块对应的超时阈值来确定该目标功能模块的执行状态。
64.此外,在应用中,嵌入式设备还可通过应用程序将获取到的bootloader包含的各个目标功能模块的执行过程信息发送给外部设备,比如应用程序对应的云平台,由该外部设备根据接收到的bootloader包含的各个目标功能模块的执行过程信息确定各目标功能模块的执行状态。
65.作为另一个可选的实施例,上述触发信号用于指示bootloader启动失败。在bootloader启动失败的情况下,系统将无法正常启动,此时,则无法按照上述实施例中的描述,通过嵌入式设备中已安装的应用程序获取指定存储介质中已存储的各个目标功能模块的执行状态信息。此时,可借助外部的诊断工具来获取指定存储介质中存储的执行过程信息。需要说明的是,由于bootloader启动失败,因此,指定存储介质中存储的有可能是bootloader包含的部分目标功能模块的执行过程信息。
66.具体的,在步骤102中,在检测到bootloader启动失败时,生成用于指示bootloader启动失败的指示消息,并将该指示消息发送给外部设备。
67.作为一个可选的实现方式,外部设备在接收到指示消息后,可自动调用诊断工具向嵌入式设备发送数据读取请求;作为另一个可选的实现方式,外部设备在接收到指示消息后,可向用户发送对应的提醒消息,以通知用户bootloader启动失败,进而由用户手动操控外部设备调用诊断工具向嵌入式设备发送数据读取请求。可选的,上述提醒消息的形式包括但不限于:声音信号、光信号、手机短信、电子邮件等。
68.嵌入式设备接收到上述数据读取请求后,将指定存储介质中已存储的执行过程信息发送至外部设备,以使外部设备根据接收到的执行过程信息确定bootloader包含的各个目标功能模块的执行状态。
69.作为一个可选的实现方式,外部设备可首先根据接收到的执行过程信息确定各个目标功能模块的执行状态是执行成功还是执行错误,其中,若外部设备接收到某一目标功能模块的执行过程信息,则可确定该目标功能模块的执行状态是执行成功;反之,若外部设备未接收到某一目标功能模块的执行过程信息,则可确定该目标功能模块的执行状态是执行错误。
70.进一步的,外部设备可针对执行成功的目标功能模块,根据接收到的该目标功能模块的执行过程信息确定该目标功能模块是否超时执行,具体是如何根据接收到的该目标功能模块的执行过程信息确定该目标功能模块是否超时执行的,可参见上述相关描述,这里不再赘述。
71.本发明实施例提供的技术方案,通过在bootloader启动过程中,获取bootloader包含的目标功能模块的执行过程信息,当检测到bootloader的触发信号时,根据已获取的目标功能模块的执行过程信息确定目标功能模块的执行状态,实现了获取bootloader启动过程中,bootloader包含的各个目标功能模块,也即各个阶段的执行过程信息,这能够实现以bootloader启动流程所包含的各个阶段为粒度,有针对性地对bootloader的启动流程进行优化,从而为提升嵌入式设备的开机速度提供了有效信息;进一步的,即使bootloader启动失败,也能够已获取的执行过程信息确定bootloader启动过程中,出现异常的阶段,从而为故障定位提供有效信息。
72.由上述描述可知,作为一个实施例,上述执行过程信息可包括:开始执行时间、结束执行时间。以下则对该实施例的具体实现进行说明:
73.在该实施例中,可预先在每一目标功能模块的代码行开始位置处插入第一定制代码,该第一定制代码用于指示获取系统当前时间,并将获取到的系统当前时间作为该目标功能模块的开始执行时间写入指定存储介质,以及在每一目标功能模块的代码行结束位置处插入第二定制代码,该第二定制代码用于指示获取系统当前时间,并将获取到的系统当前时间作为该目标功能模块的结束执行时间写入指定存储介质。
74.基于此,在上述步骤101中,如图2所示,在bootloader包含的每一个目标功能模块启动过程中,将首先执行插入至该目标功能模块的代码行开始位置处的第一定制代码,以实现获取系统当前时间,并将获取到的系统当前时间作为该目标功能模块的开始执行时间写入指定存储介质。
75.可以理解的是,在正常情况下,执行完第一定制代码后,将继续执行该目标功能模块中原本的功能代码,直至执行完原本的功能代码后,将执行插入至该目标功能模块的代码行结束位置处的第二定制代码,以实现获取系统当前时间,并将获取到的系统当前时间作为该目标功能模块的结束执行时间写入指定存储介质。
76.此外,如图2所示,若某一目标功能模块无法正常启动,则结束bootloader启动流程,bootloader启动失败,此时将不会执行插入至该目标功能模块的代码行结束位置处的第二定制代码,从而也就无法将该目标功能模块的结束执行时间写入指定存储介质。
77.在本技术实施例中,若无法将目标功能模块的结束执行时间写入指定存储介质,意味着无法获取该目标功能模块的执行过程信息。
78.通过图2所示实施例,实现了获取bootloader启动过程中,各个阶段的开始执行时间和结束执行时间,这能够为优化bootloader的启动过程,优化嵌入式设备的开机速度提供有效信息。
79.由上述描述可知,作为另一个实施例,上述执行过程信息可包括:执行耗时。以下则对该实施例的具体实现进行说明:
80.在该实施例中,可预先在每一目标功能模块的代码行开始位置处插入第三定制代码,该第三定制代码用于指示将计时器归零并启动计时器,以及预先在每一目标功能模块的代码行结束位置处插入第四定制代码,该第四定制代码用于指示获取计时器的当前计时,并将获取到的当前计时作为该目标功能模块的执行耗时写入指定存储介质。
81.基于此,在步骤101中,如图3所示,在bootloader包含的每一个目标功能模块启动过程中,将首先执行插入至该目标功能模块的代码行开始位置处的第三定制代码,以实现
将计时器归零并启动计时器。
82.可以理解的是,在正常情况下,执行完第三定制代码后,将继续执行该目标功能模块中原本的功能代码,直至执行完原本的功能代码后,将执行插入至该目标功能模块的代码行结束位置处的第四定制代码,以实现获取计时器的当前计时,并将获取到的当前计时作为该目标功能模块的执行耗时写入指定存储介质。
83.此外,如图3所示,若某一目标功能模块无法正常启动,则结束bootloader启动流程,bootloader启动失败,此时将不会执行插入至该目标功能模块的代码行结束位置处的第四定制代码,从而也就无法将该目标功能模块的执行耗时写入指定存储介质。
84.通过图3所示流程,实现了获取bootloader启动过程中,各个阶段的执行耗时,这能够为优化bootloader的启动过程,优化嵌入式设备的开机速度提供有效信息。
85.图5为本技术实施例提供的一种bootloader启动流程的监控装置的流程示意图。如图5所示,包括:信息获取模块51、状态确定模块52。
86.其中,信息获取模块51,用于在bootloader启动过程中,获取所述bootloader包含的目标功能模块的执行过程信息;
87.状态确定模块52,用于当检测到所述bootloader的触发信号时,根据已获取的所述目标功能模块的执行过程信息确定所述目标功能模块的执行状态。
88.可选的,所述执行过程信息包括:开始执行时间、结束执行时间;
89.所述信息获取模块51包括(图中未示出):
90.第一信息获取子模块,用于在所述bootloader包含的目标功能模块开始执行时,获取系统当前时间作为所述目标功能模块的开始执行时间;
91.第二信息获取子模块,用于在所述bootloader包含的目标功能模块成功执行完成时,获取系统当前时间作为所述目标功能模块的结束执行时间。
92.可选的,所述执行过程信息包括:执行耗时;
93.所述信息获取模块51包括(图中未示出):
94.计时器启动子模块,用于在所述bootloader包含的目标功能模块开始执行时,将系统计时器归零并启动所述系统计时器;
95.第三信息获取子模块,用于在所述bootloader包含的目标功能模块成功执行完成时,获取所述系统计时器的当前计时作为所述目标功能模块的执行耗时。
96.可选的,所述状态确定模块52包括(图中未示出):
97.耗时确定子模块,用于在所述触发信息用于指示所述bootloader成功启动完成时,根据已获取的所述目标功能模块的执行过程信息确定所述目标功能模块的执行耗时;
98.第一比较子模块,用于比较所述执行耗时与所述目标功能模块对应的超时阈值;
99.第一确定子模块,用于在比较得出所述执行耗时与所述超时阈值之间的大小关系满足第一预置条件时,确定所述目标功能模块的执行状态为正常执行;在比较得出所述执行耗时与所述超时阈值之间的大小关系满足第二预置条件时,则确定所述目标功能模块的执行状态为超时执行。
100.可选的,所述状态确定模块52包括(图中未示出):
101.消息生成子模块,用于在所述触发信号用于指示所述bootloader启动失败时,生成用于指示所述bootloader启动失败的指示消息;
102.消息发送子模块,用于将所述指示消息发送至外部设备;
103.请求接收子模块,用于接收所述外部设备基于所述指示消息发送的数据读取请求;
104.信息发送子模块,用于将已获取的所述目标功能模块的执行过程信息发送至所述外部设备,以使所述外部设备根据接收到的所述执行过程信息确定所述目标功能模块的执行状态。
105.如图6所示,本技术实施例提供提供了一种嵌入式设备,包括处理器611、通信接口612、存储器613和通信总线614,其中,处理器611,通信接口612,存储器613通过通信总线614完成相互间的通信,
106.存储器613,用于存放计算机程序;
107.在本技术一个实施例中,处理器611,用于执行存储器613上所存放的程序时,实现前述任意一个方法实施例提供的一种bootloader启动流程的监控方法,包括:
108.在bootloader启动过程中,获取所述bootloader包含的目标功能模块的执行过程信息;
109.当检测到所述bootloader的触发信号时,根据已获取的所述目标功能模块的执行过程信息确定所述目标功能模块的执行状态。
110.本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述任意一个方法实施例提供的一种bootloader启动流程的监控方法的步骤。
111.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
112.以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
再多了解一些

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

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

相关文献