1.本发明涉及光电技术领域,更具体地,涉及一种用于激光雷达的启动系 统的多重启动方法、该启动系统以及该激光雷达。
背景技术:2.在车联网环境中,车辆的数据安全、通信安全和功能安全至关重要,关键 数据的泄露、通信被窃取、甚至车辆功能被黑客恶意控制将会造成严重的安全 事故。随着无人驾驶的发展,激光雷达作为车辆重要的探测传感器,在车联网 系统中具有重要意义。为了防止黑客入侵车辆的激光雷达系统,造成激光雷达 点云数据紊乱或者其它恶意篡改等危险行为,破坏车辆行驶安全,应当为激光 雷达的软件系统设计严格的安全方案。
3.然而,当前对于激光雷达的研究主要集中于如何将激光雷达用于外围探测 感知,尚未提出针对激光雷达的软件系统,尤其是激光雷达的启动系统的安全 方案。
技术实现要素:4.针对以上问题,本发明提出了一种用于激光雷达的启动系统的多重启动 方案,其中对于激光雷达的启动过程中的每个启动阶段分别提供多个相应的启 动文件作为备份,以确保激光雷达的启动过程的安全性。此外,根据本发明的 一些方面的方案还能够保证雷达系统的通信安全、升级安全、数据传输安全等。
5.根据本发明的一个方面,提供了激光雷达的启动系统的多重启动方法。 其中该启动系统采用多个启动阶段,每个启动阶段对应于多个启动文件。该多 重启动方法包括,对于每个启动阶段:从该多个启动文件中选择一个启动文件; 对所选择的启动文件进行验证;如果所选择的启动文件没有通过验证,则从该 多个启动文件中重新选择另一个启动文件并对所选择的启动文件进行验证。
6.根据本发明的另一个方面,提供了一种激光雷达的启动系统。该启动系统 包括:存储器,其中存储有机器可执行的程序代码;以及处理器,其被配置为 运行所述机器可执行的程序代码,以执行如上所述的多重启动方法。
7.根据本发明的又一个方面,提供了一种激光雷达,其使用如上所述的启动 系统来启动。
8.利用本发明的方案,可以实现激光雷达的启动安全,保证激光雷达在 启动流程中,逐级验证系统部件的完整性、安全性,保证了激光雷达的系 统的鲁棒性,通过构建多重启动方法实现激光雷达系统的稳定性和可靠性。 此外,在一些方面还实现了激光雷达的升级安全,保证激光雷达在版本升 级时,能够验证升级包的正确性,确保升级的可靠性和稳定性。
附图说明
9.图1示出了激光雷达的启动系统的一种示例性启动过程的示意图;
10.图2示出了执行图1所示的启动过程的启动系统的文件结构图;
11.图3示出了根据本发明的实施例的激光雷达的启动系统的多重启动方 法的流程图;
12.图4示出了根据本发明的实施例的安全信息存储结构的示意图;以及
13.图5示出了可以用来实施本发明的实施例的示例设备的示意性框图。
具体实施方式
14.以下将结合附图对本发明的各实施例进行详细说明,以便更清楚理解 本发明的目的、特点和优点。应理解的是,附图所示的实施例并不是对本 发明范围的限制,而只是为了说明本发明技术方案的实质精神。
15.在下文的描述中,出于说明各种公开的实施例的目的阐述了某些具体 细节以提供对各种公开实施例的透彻理解。但是,相关领域技术人员将认 识到可在无这些具体细节中的一个或多个细节的情况来实践实施例。在其 它情形下,与本技术相关联的熟知的装置、结构和技术可能并未详细地示 出或描述从而避免不必要地混淆实施例的描述。
16.除非语境有其它需要,在整个说明书和权利要求中,词语“包括”和 其变型,诸如“包含”和“具有”应被理解为开放的、包含的含义,即应 解释为“包括,但不限于”。
17.在整个说明书中对“一个实施例”或“一些实施例”的提及表示结合 实施例所描述的特定特点、结构或特征包括于至少一个实施例中。因此, 在整个说明书的各个位置“在一个实施例中”或“在一些实施例”中的出 现无需全都指相同实施例。另外,特定特点、结构或特征可在一个或多个 实施例中以任何方式组合。
18.如该说明书和所附权利要求中所用的单数形式“一”和“所述”包括 复数指代物,除非文中清楚地另外规定。应当指出的是术语“或”通常以 其包括“和/或”的含义使用,除非文中清楚地另外规定。
19.在本发明的方案中,通过为雷达系统的启动系统的每个启动阶段所需 的启动文件准备多个备份,使得整个启动系统能够实现多系统备份、还原 和恢复。此外,通过对每个启动阶段所使用的启动文件执行多重验证,进 一步确保了激光雷达的启动的安全性。
20.图1示出了激光雷达的启动系统的一种示例性启动过程100的示意图。 图2示出了执行图1所示的启动过程100的启动系统的文件结构图。
21.如图1和图2所示,当前的激光雷达的启动系统的完整启动过程100 可以包括三个启动阶段,即第一启动阶段110、第二启动阶段120和第三启 动阶段130,每个启动阶段对应着多个启动文件。每个启动阶段对应的启动 文件具有相同的内容和作用,因此可以视为互为备份。
22.在一种实施例中,第一启动阶段110可以称为引导文件启动阶段。其 对,应于多个引导文件,如图2中所示的boot1、boot2等。
23.第二启动阶段120可以称为系统文件启动阶段,其对应于多个系统文 件,如图2中所示的sys1、sys2和sys3。这里,sys是用于形成系统的 文档体系等。在一种实施例中,每个系统文件是经过系统文件加密的文件 信息。
24.第三启动阶段130可以称为应用层文件启动阶段,其对应于多个应用 层文件,如图2中所示的app1、app2。
25.系统正常的启动顺序为:寻找有效的启动文件,随后启动诸如fpga 等相应的文件,随后加载需要的文件,引导内核启动,挂载文件系统。因 此当系统中的文件被恶意替换、篡改时,系统将无法诊断,导致激光雷达 进入恶意系统中。
26.为了保证启动链路的安全性,需要对各个文件进行签名或者加密的操 作。但是,简单的一次加密对于
27.这里,虽然图1和图2中以启动过程100包含三个启动阶段为例进行 了描述,然而本领域技术人员可以理解,本发明的多重启动方案可以包括 更多或更少的启动阶段。此外,虽然图2中以第一启动阶段110对应于两 个引导文件boot1、boot2,第二启动阶段120对应于三个系统文件sys1、 sys2和sys3,第三启动阶段130对应于两个应用层文件app1、app2为 例进行了描述,但是本领域技术人员可以理解,每个启动阶段可以对应于 更多或更少的启动文件。
28.由于每个启动阶段对应于多个启动文件,因此对于每个启动阶段来说, 可以设计根据本发明的多重启动方法,以提高启动的成功率和安全性。
29.图3示出了根据本发明的实施例的激光雷达的启动系统的多重启动方 法300的流程图。方法300可以分别用于如图1所示的启动过程100的多 个启动阶段110、120和130中的至少一个启动阶段。
30.方法300包括步骤310,其中从多个启动文件中选择一个启动文件。
31.对于第一启动阶段110,从多个启动文件中选择一个启动文件包括:从 多个引导文件中选择一个引导文件boot1或boot2。
32.对于第二启动阶段120,从多个启动文件中选择一个启动文件包括:从 多个系统文件中选择一个系统文件sys1、sys2或sys3。
33.对于第三启动阶段130,从多个启动文件中选择一个启动文件包括:从 多个应用层文件中选择一个应用层文件app1或app2。
34.这里,从多个启动文件中选择一个启动文件的方法可以是多样的。在 一种实施例中,在步骤310中可以按照预定顺序从多个启动文件中选择一 个启动文件。
35.该预定顺序可以是为多个启动文件设置的固定的优先级顺序。
36.例如预先设置boot1的优先级大于boot2,则每次启动时都优先选 择boot1作为启动文件。然而,在这种情况下,总是优先选择优先级最高 的启动文件(如boot1),因此有可能不能及时发现其他启动文件(如 boot2)的故障,从而失去了boot2与boot1互为备份的优点。
37.为此,在另一种实施例中,可以将该预定顺序设计成为多个启动文件 设置的轮换顺序,例如预先设置三个系统文件sys1、sys2和sys3的轮 换顺序是sys2
→
sys1
→
sys2
→
sys1
……→
sys3
→
sys3。这样,在第一 次系统启动时,在第二启动阶段120优先选择sys2作为启动文件;在第 二次系统启动时,在第二启动阶段120优先选择sys1作为启动文件
……ꢀ
这样,能够及时发现是否每个启动文件都正常工作。
38.此外,在一些实施例中,该预定顺序还可以是固定优先级顺序和轮换 顺序的组合。例如,假设将三个系统文件sys1、sys2和sys3中的一个 (如sys3)指定为在启动时从网络侧发起的系统文件,则可以将该系统文 件的优先级设置为最低,并将其他系统文件的启动顺序设置为轮换。在这 种情况下,在启动系统文件时,总是从sys1或sys2开始尝试,只有
sys1 和sys2的启动都不成功时,才尝试从sys3开始启动。
39.在另一些实施例中,在步骤310中可以按照随机顺序从多个启动文件 中选择一个启动文件。这同样避免了上述固定优先级顺序的缺点。然而, 在这种方式中,为了使得系统能够知道有启动文件发生了故障,需要一些 额外的措施,如下所述。
40.接下来,在步骤320,对步骤310中选择的启动文件进行验证并且在步 骤330确定验证是否通过。这里,对所选择的启动文件进行验证主要是为 了验证该启动文件是否是安全的启动文件。为了保证安全性,步骤320优 选地采用多级验证。
41.在一种实施例中,该多级验证包括至少两级验证,称为初级验证和终 极验证。在初级验证中,可以利用一次性可编程存储器中的固定验证信息, 来验证初级验证信息。在终极验证中,可以获取终极验证信息并基于该终 极验证信息来对启动文件进行验证。在多级验证仅包括两级验证的情况下, 初级验证信息即为终极验证信息。此外,在一些实施例中,初级验证和终 极验证之间还可以包括至少一级中间验证,其可以获取中间验证信息,以 对终极验证信息进行验证,从而获得该终极验证信息。其中,中间验证信 息可以基于初级验证信息来获得验证。
42.对于第一启动阶段110,步骤320可以包括根据一次性可编程存储器中 存储的初级验证信息,来验证所存储的待验证信息,并利用经过验证后的 待验证信息,对后续的其他文件和/或待验证信息做进一步验证。
43.对于第二启动阶段120,步骤320可以包括利用与系统文件对应的待验 证信息(如私钥或签名信息等),以及相应的验证信息(如公钥等),对 系统文件进行验证。
44.对于第三启动阶段130,步骤320可以包括对步骤310所选择的应用层 文件,利用与其对应的待验证信息和验证信息进行验证。
45.图4示出了根据本发明的实施例的安全信息存储结构的示意图。如图4 中所示,第一一次性可编程存储器410和第二一次性可编程存储器420中 存储有启动系统的固定验证信息。一次性可编程存储器是指仅能写入一次 的存储器,如efuse。
46.具体地,根据本发明所述的加密方式,包括但不限于采用诸如非对称 加密算法(rsa)、对称加密算法(aes,advanced encryption standard)、以 及哈希运算消息认证码(hmac,hash-based message authentication code 等等相关的加密或验证算法和方式,用于对各阶段的启动文件进行加密, 以确定启动文件的保密性和完整性。
47.这种一次性可编程存储器的设置,由于仅能进行一次性编程,因而从 硬件上保证了初级验证信息的不可修改性,确保整体验证链的可靠性。
48.在另一些实施例中,该一次性可编程存储器可包括两个区域诸如存储 区域410和存储区域420等。用于分别存储针对不同验证对象的初级验证 信息。
49.更优选地,不同的存储区域所存储的初级验证信息还可采用不同的加 密方式来获得。
50.参考图4,图4示意出了一种用于实现验证信息的存储结构。
51.根据图4进行说明,其中,一次性可编程存储器410中存储了用于验 证启动文件的相关公钥的初级验证信息,而在存储器430中存储了待验证 的初级公钥431,二级公钥432,公钥签名信息433,以及对应的启动文件 信息。在验证过程中,先用初级验证信息来验证该初级公钥431,如果验证 通过,则采用该初级公钥431解码公钥签名信息432,进而验证二级
公钥 433,如果验证成功,则根据二级公钥432来对所需要的启动文件进行验证, 并在验证成功后,用该启动文件434执行启动操作。
52.需要说明的是,此处所述初级验证信息、一级公钥信息、二级公钥信 息、公钥签名信息等仅为举例,实践中,可以根据实际采用的签名或加密 方式,对所存储的验证信息进行调整。例如,可以在一次性可编程存储410 中存储公钥签名本身,以验证存储器430中存储的公钥本身;又例如,一 次性可编程存储410中存储公钥签名的加密信息,以验证存储器430中存 储的公钥签名等。
53.并且,本领域技术人员可以理解,图4所示的存储器430中的各个项 的存储顺序仅仅是示意性的,并不用于限制本发明的范围。在不同的实施 环境中,这些项可以以不同的顺序存储,甚至存储于不同的存储器中或同 一存储器的不同存储分区中。
54.根据本发明的一个优选实施例,以第一启动阶段110为例,假设在步 骤310选择了引导文件boot1。随后,由cpu执行相应的验证指令操作, 对第二阶段的系统文件sys进行验证;验证完后,基于系统文件sys的引 导,继续对应用层文件进行验证。
55.优选地,在执行验证过程中,在每一启动阶段,可能存在多个待验证 的文件或信息(如公钥、签名、加密信息等),此时,各个待验证文件可 能分别对应不同的验证信息,例如,对于同一启动阶段中需要被验证的多 种文件,可分别对应多个不同的中间级别的验证信息。
56.而更优选地,该多个不同的中间级别验证信息,均可被存储于一次性 可编程存储器的初级验证信息实现初次验证。
57.随后,如果所有验证过程都成功,则采用当前的启动文件执行启动过 程。
58.如前所述,在激光雷达中,为了存储系统的重要信息,例如mac地址、 硬件信息、参数配置文件、通信证书、升级证书等,引入了配置信息存储 器来存储这些信息。在这种情况下,启动系统的存储器430中还可以存储 有与配置信息存储器的加密信息(如私钥)对应的验证信息(如公钥)。 因此,在一些实施例中,执行验证的过程中,还可包括利用与配置信息存 储器的私钥对应的公钥,对配置信息存储器中存储的数据的正确性进行验 证的过程。
59.通过这种多级验证,能够确保所采用的公钥和文件都是正确的,不会 因为公钥和文件同时被修改而产生安全问题。
60.返回图3,如果步骤330判断为“否”,则方法300进入步骤340,从 多个启动文件中重新选择另一启动文件并对该启动文件执行步骤320的验 证过程。例如,如果如上所述在子步骤328确定所选择的引导文件boot1 没有通过验证,则在步骤340可以选择引导文件boot2并对其执行如上所 述的验证过程。
61.取决于选择启动文件的规则,步骤340所示的重新选择也可以有不同 的实现方式。例如,步骤340中可以与步骤310中类似地按照预定顺序或 者随机顺序从多个启动文件中重新选择另一启动文件。不同之处在于,在 按照随机顺序选择启动文件时,步骤340还包括设置验证标志位以指示存 在着启动文件故障。
62.根据本发明的启动过程100(或者多重启动方法300)还可以包括启动 文件恢复过程。更具体地,在一种实施例中,在启动系统启动之后,确定 所使用的启动文件是否是按照预定顺序确定的预期启动文件;并且如果确 定所使用的启动文件不是该预期启动文件,则利用所使用的启动文件恢复 预期启动文件,即将所使用的启动文件拷贝至预期启动文件。
63.如上所述,在步骤310中,启动系统可以根据预定顺序选择一个启动 文件。当系统启动之后,可以根据该预定顺序确定所使用的启动文件是否 是步骤310中根据预定顺序确定的启动文件。例如,在该预定顺序是固定 的优先级顺序的情况下,如boot1优先级大于boot2,则在启动文件恢 复过程中,启动系统可以确定启动所使用的引导文件是boot1还是 boot2。如果所使用的启动文件是boot1,则表明所使用的启动文件 boot1没有故障。反之,如果所使用的启动文件是boot2,则表明boot1 发生了故障,此时可以利用boot2来恢复boot1。又例如,在该预定顺 序是轮换顺序的情况下,如三个系统文件的轮换顺序是sys2
→
sys1
→ꢀ
sys2
→
sys1
……→
sys3
→
sys3,则在启动文件恢复过程中,启动系统可 以确定根据该轮换顺序确定的预期系统文件sysi(i=1、2、3)和此次启动 所使用的实际系统文件sysj(j=1、2、3)是否一致。在不一致的情况下, 可以利用sysj来恢复sysi。此外,在如上所述的使用轮换顺序与固定优 先级顺序的组合的方式中,如果确定此次启动所使用的系统文件是网络系 统文件sys3,则代表sys1和sys2都发生了故障,此时可利用网络sys3 来恢复sys1和sys2。在启动文件恢复过程的另一种实施例中,在启动系 统启动之后,确定验证标志位是否被设置为指示存在启动文件故障;并且 如果确定存在启动文件故障,则利用所使用的启动文件恢复多个启动文件 中除了所使用的启动文件之外的其他启动文件。如上所述,在步骤310中, 启动系统可以根据随机顺序选择一个启动文件。并且如果所选择的启动文 件没有通过验证,在步骤340中可以重新选择另一启动文件,并且设置验 证标志位以指示存在启动文件故障。在这种情况下,在启动文件恢复过程 中,可以根据该验证标志位来直接确定是否存在启动文件故障,因此在存 在故障的情况下,可以利用本次启动使用的启动文件对除其之外的所有其 他启动文件都进行恢复。
64.注意,该启动文件恢复过程可以在第一启动阶段110、第二启动阶段 120、第三启动阶段130中的任一个之后执行,以对相应的启动阶段中所使 用的启动文件,如引导文件、系统文件、应用层文件,进行恢复。或者, 该启动文件恢复过程也可以在整个启动过程100完成之后执行。在这种情 况下,可以为每个启动阶段分别设置启动文件选择顺序或者验证标志位, 也可以为整个启动过程100设置统一的启动文件选择顺序或者验证标志位。
65.根据本发明的启动过程100(或者多重启动方法300)还可以包括启动 文件升级过程。如上所述,在激光雷达启动过程中可以验证配置信息存储 器是安全的,而在配置信息存储器中存储着通信证书和升级证书。其中通 信证书用于安全传输层协议(tls)的验证,诸如双端验证或单端验证,用 于激光雷达与客户端之间进行验证,确保激光雷达对于客户端是可信的, 同时客户端对于激光雷达也是可信任的。如使用双端验证,则激光雷达与 客户端的连接阶段,双方均需要发送自己的证书给对方验证,这防止了恶 意的客户端与激光雷达通信。为了确保激光雷达的访问安全,设置相应的 访问协议来限制外部客户端的访问。升级证书用于升级过程中的安全防护, 以确认升级包的安全性。升级证书用于实现安全升级,需要确认升级包的 安全性。
66.其中,需要说明的是,此处所述配置信息存储器用于指示存储配置文 件信息的存储区域。在一些实施例中,不同的配置信息可集中存储于一存 储区域中,然而,在另一些实施例中,不同的配置信息可能存储于不同区 域,甚至,部分用于存储配置信息的区域可能与存储其他信息的区域重合。 例如,通信证书存储于配置信息存储器中,而升级证书存储在sys文件中 等。本领域技术人员应可理解,信息存储区域可能存在多种可能,但不影 响
本方案的实现。
67.常规的启动文件升级过程为:1)首先在内存中读取升级证书(此时sys 文件已经展开为文件系统并存储在内存中),对升级包进行认证,确认升 级包是否被正确签名;2)利用配置信息存储器中存储的硬件信息对升级包 中存储的信息进行校验,检查是否是对应机型所匹配的软件版本;3)若步 骤1)和2)均成功,则升级对应的升级包,若失败,则报告错误,不允许 升级该升级包。
68.然而,利用这种常规的启动文件升级过程,在升级之后可能会出现硬 件问题导致升级包在写入存储器时出现问题,导致升级包无法正常启动, 进而导致激光雷达系统崩溃。
69.对于本发明的多重启动方法300来说,可以设计新的启动文件升级过 程以解决上述问题。
70.具体地,当接收到升级启动文件的指令时,例如接收到新的升级包时, 启动系统确定最近一次启动所使用的启动文件(称为第一启动文件)。然 后从多个启动文件中选择除了所使用的第一启动文件之外的第二启动文 件,并且对该第二启动文件进行升级。优选地,所选择的第二启动文件存 储于和第一启动文件不同的存储器或存储分区中。也就是说,启动系统在 需要升级启动文件时,不是更新一个固定的启动文件,而是对上一次所使 用的启动文件之外的启动文件进行更新。
71.之后,在下一次系统启动时,利用升级后的第二启动文件启动该启动 系统;如果启动成功,则利用该升级后的第二启动文件升级多个启动文件 中的其他启动文件。反之,如果启动不成功(例如根据图3的多重启动方 法300中对升级后的第二启动文件的验证没有通过),则利用最近一次启 动该启动系统所使用的第一启动文件来恢复该升级后的第二启动文件,或 者回滚该第二启动文件。通过这种方式,能够使得升级过程具有更强的容 错性和自我纠正能力。
72.例如,假设上一次启动时所使用的引导文件是boot1,则在要对引导 文件进行升级时,选择boot2进行升级,并且在下一次启动时,在执行多 重启动方法300时在步骤310中选择升级后的boot2。如果升级后的 boot2的验证通过,则利用升级后的boot2进行启动并且利用升级后的 boot2来更新boot1。反之,如果升级后的boot2的验证没有通过,则 重新选择boot1进行启动并且利用boot1对升级后的boot2进行恢复。
73.这里,启动文件升级过程可以针对第一启动阶段110、第二启动阶段 120或第三启动阶段130中的任一个的启动文件进行升级,也可以对整个启 动过程所涉及的启动文件都进行升级。更优选地,当第三启动阶段130的 启动文件已包含于第二启动阶段120的启动文件中时,启动文件升级过程 可以针对第一启动阶段110、第二启动阶段120中的任一个的启动文件进行 升级。因此,无需单独对于第三启动阶段130的启动文件进行升级。
74.利用上述启动文件升级过程,通过增加升级包启动验证环节,充分利 用了多启动文件的特性,即使在升级不成功的情况下,至少仍然能够保持 系统的正常启动,使得系统整体具有更好的鲁棒性。亦即不仅保证了系统 的安全性,而且确保系统的鲁棒性。
75.根据本发明的启动过程100(或者多重启动方法300)还可以包括救援 模式(rescue mode)过程。救援模式过程可以在第一启动阶段110之后或 者第二启动阶段120之后执行。具体地,在第一启动阶段110之后,启动 系统首先判断第二启动阶段120所使用的
系统文件对应的硬件存储器是否 完好,若发现有损坏,则重启系统。并且,在重启多次(例如3次)均失 败的情况下,触发启动系统进入救援模式。
76.作为一个可选方案,在第一启动阶段110之后,启动系统还可以认证 其他信息,诸如配置信息存储器的数据是否完好。若配置信息存储器损坏, 则启动系统进入救援模式。
77.作为一个可选方案,在第二启动阶段120,如果所有的系统文件(如 sys1、sys2和网络sys3)的验证都没有通过,则启动系统可以进入救援 模式。
78.在救援模式中,可提供以下至少任一种方式,来对系统故障进行处理:
79.1)报错操作;
80.2)上传故障信息;
81.3)格式化分区;
82.4)重新升级系统,等等。
83.这样,救援模式提供了硬件故障或者所有启动文件都不正确的情况下 的救济措施。
84.图5示出了可以用来实施本发明的实施例的示例设备600的示意性框 图。设备600例如可以是台式电脑或便携式电脑等。如图所示,设备600 可以包括一个或多个中央处理单元(cpu)610(图中仅示意性地示出了一 个),其可以根据存储在只读存储器(rom)620中的计算机程序指令或 者从存储单元680加载到随机访问存储器(ram)630中的计算机程序指 令,来执行各种适当的动作和处理。在ram 630中,还可存储设备600操 作所需的各种程序和数据。cpu 610、rom 620以及ram 630通过总线640 彼此相连。输入/输出(i/o)接口650也连接至总线640。
85.设备600中的多个部件连接至i/o接口650,包括:输入单元660,例 如键盘、鼠标等;输出单元670,例如各种类型的显示器、扬声器等;存储 单元680,例如磁盘、光盘等;以及通信单元690,例如网卡、调制解调器、 无线通信收发机等。通信单元690允许设备600通过诸如因特网的计算机 网络和/或各种电信网络与其他设备交换信息/数据。
86.上文所描述的方法100例如可由设备600的处理单元610执行。例如, 在一些实施例中,方法100可被实现为计算机软件程序,其被有形地包含 于机器可读介质,例如存储单元680。在一些实施例中,计算机程序的部分 或者全部可以经由rom 620和/或通信单元690而被载入和/或安装到设备 600上。当计算机程序被加载到ram 630并由cpu 610执行时,可以执行 上文描述的方法100的一个或多个操作。此外,通信单元690可以支持有 线或无线通信功能。
87.以上结合附图对根据本发明的激光雷达启动过程100、多重启动方法 300和设备600进行了描述。然而本领域技术人员可以理解,设备600并不 必须包含图5中所示的所有组件,其可以仅仅包含执行本发明中所述的功 能所必须的其中一些组件,并且这些组件的连接方式也不局限于图中所示 的形式。例如,在设备600是诸如手机之类的便携式设备的情况下,设备 600可以具有与图5中相比不同的结构。
88.此外,本发明可以实现为方法、如上所述的设备、芯片电路和/或计算 机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用 于执行本发明的各个方面的计算机可读程序指令。芯片电路可以包括用于 执行本发明的各个方面的电路单元。
89.计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指 令的有形
设备。计算机可读存储介质例如可以是――但不限于――电存储 设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上 述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列 表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储 器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存 取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能 盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔 卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机 可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播 的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆 的光脉冲)、或者通过电线传输的电信号。
90.这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到 各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无 线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤 传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。 每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程 序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中 的计算机可读存储介质中。
91.用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构 (isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数 据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所 述编程语言包括面向对象的编程语言-诸如smalltalk、c++等,以及常规的 过程式编程语言-诸如"c"语言或类似的编程语言。计算机可读程序指令可 以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独 立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完 全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算 机可以通过任意种类的网络-包括局域网(lan)或广域网(wan)-连接到用 户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来 通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状 态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列 (fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程 序指令,从而实现本发明的各个方面。
92.这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品 的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图 的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程 序指令实现。
93.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它 可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在 通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流 程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这 些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算 机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指 令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的 一个或多个方框中规定的功能/动作的各个方面的指令。
94.也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装 置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备 上执行一系列操作步骤,以
产生计算机实现的过程,从而使得在计算机、 其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图 中的一个或多个方框中规定的功能/动作。
95.附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法 和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程 图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述 模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的 可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不 同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并 行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。 也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的 方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实 现,或者可以用专用硬件与计算机指令的组合来实现。
96.以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽 性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范 围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更 都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原 理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术 人员能理解本文披露的各实施例。