嵌入式引导程序硬件抽象接口访问控制方法与流程

摘要: 本技术涉及嵌入式系统软件架构,尤其涉及一种嵌入式引导程序硬件抽象接口访问控制方法。背景技术:1、嵌入式引导程序通常用于在系统上电、复位或升级过程中完成基础硬件初...
嵌入式引导程序硬件抽象接口访问控制方法与流程

本技术涉及嵌入式系统软件架构,尤其涉及一种嵌入式引导程序硬件抽象接口访问控制方法。

背景技术:

1、嵌入式引导程序通常用于在系统上电、复位或升级过程中完成基础硬件初始化、固件加载、异常恢复以及外设访问控制等操作。为了降低业务模块与底层硬件驱动之间的耦合度,引导程序中通常设置硬件抽象接口,使业务模块能够通过统一接口调用存储器、通信接口、定时器、看门狗、时钟以及安全运算等底层驱动功能。现有嵌入式引导程序中的硬件抽象接口通常采用运行期初始化的接口句柄、固定地址的只读接口表或者只读函数指针配置集等方式实现。其中,运行期初始化的接口句柄通常需要依赖随机存取存储器中的全局变量或运行期填充数据,在随机存取存储器发生数据翻转、局部损坏或上电状态不稳定时,容易影响硬件抽象接口的取得过程。固定地址的只读接口表和只读函数指针配置集虽然能够减少对随机存取存储器的依赖,但通常仅设置单一接口副本,当其所在只读存储区域发生局部数据异常时,业务模块仍可能取得已经异常的接口内容,导致嵌入式引导程序硬件抽象接口在存储异常场景下的访问可靠性欠佳。因此,如何提升嵌入式引导程序硬件抽象接口的访问可靠性成为一个亟待解决的技术问题。

技术实现思路

1、本技术的主要目的在于提供了一种嵌入式引导程序硬件抽象接口访问控制方法,旨在解决如何提升嵌入式引导程序硬件抽象接口的访问可靠性的技术问题。

2、为实现上述目的,本技术提供了一种嵌入式引导程序硬件抽象接口访问控制方法,所述方法包括以下步骤:

3、基于引导程序对应的链接产物,对硬件抽象接口访问入口及关联调用链进行存储访问依赖校验,得到访问入口校验结果;

4、在所述访问入口校验结果满足预设构建条件的情况下,基于所述引导程序对应的只读存储布局信息,确定第一接口副本和第二接口副本对应的副本定位信息,并根据所述副本定位信息配置对应的区段访问约束,所述第一接口副本和所述第二接口副本分别包括硬件抽象接口指向信息、结构识别信息、边界校验信息和内容校验信息;

5、响应于业务模块发起的接口取得请求,基于所述副本定位信息和所述区段访问约束访问所述第一接口副本,并根据所述第一接口副本中的边界校验信息和内容校验信息对所述第一接口副本进行完整性校验,得到第一副本校验结果;

6、在所述第一副本校验结果不满足预设有效条件的情况下,基于所述副本定位信息和所述区段访问约束访问所述第二接口副本,并根据所述第二接口副本中的边界校验信息和内容校验信息对所述第二接口副本进行完整性校验,得到第二副本校验结果;

7、基于所述第一副本校验结果和所述第二副本校验结果,从所述第一接口副本和所述第二接口副本中确定目标接口副本,或者生成降级处理控制信息,并基于所述目标接口副本向所述业务模块返回所述硬件抽象接口指向信息,或者基于所述降级处理控制信息执行预设故障处理过程。

8、在一实施例中,所述基于引导程序对应的链接产物,对硬件抽象接口访问入口及关联调用链进行存储访问依赖校验,得到访问入口校验结果的步骤,包括:

9、对所述链接产物中的符号信息和链接映射信息进行解析,确定所述硬件抽象接口访问入口对应的入口符号、入口地址以及与所述入口符号关联的调用关系,得到所述硬件抽象接口访问入口对应的调用链描述数据;

10、基于所述调用链描述数据,对所述硬件抽象接口访问入口及关联调用链中的存储访问行为进行提取,确定所述硬件抽象接口访问入口及关联调用链对应的读取访问目标、写入访问目标以及栈空间占用表征信息;

11、基于所述读取访问目标、所述写入访问目标以及所述栈空间占用表征信息,对所述硬件抽象接口访问入口及关联调用链进行存储区段匹配校验和栈空间约束校验,得到所述访问入口校验结果。

12、在一实施例中,所述在所述访问入口校验结果满足预设构建条件的情况下,基于所述引导程序对应的只读存储布局信息,确定第一接口副本和第二接口副本对应的副本定位信息,并根据所述副本定位信息配置对应的区段访问约束的步骤,包括:

13、在所述访问入口校验结果满足预设构建条件的情况下,对所述引导程序对应的只读存储布局信息进行区段解析,确定用于存放硬件抽象接口副本的第一只读存储区段和第二只读存储区段;

14、基于所述第一只读存储区段和所述第二只读存储区段,分别确定所述第一接口副本和所述第二接口副本对应的存储地址信息、区段归属信息和副本对应关系,得到所述第一接口副本和所述第二接口副本对应的副本定位信息,其中,所述第一接口副本和所述第二接口副本分别关联有所述硬件抽象接口指向信息、所述结构识别信息、所述边界校验信息和所述内容校验信息;

15、基于所述副本定位信息,对所述第一只读存储区段和所述第二只读存储区段进行访问属性配置,确定与所述第一接口副本和所述第二接口副本对应的只读访问约束、执行限制约束和缓存访问约束,得到与所述副本定位信息对应的区段访问约束。

16、在一实施例中,所述响应于业务模块发起的接口取得请求,基于所述副本定位信息和所述区段访问约束访问所述第一接口副本,并根据所述第一接口副本中的边界校验信息和内容校验信息对所述第一接口副本进行完整性校验,得到第一副本校验结果的步骤,包括:

17、响应于所述业务模块发起的接口取得请求,调用所述硬件抽象接口访问入口,并基于所述副本定位信息确定所述第一接口副本对应的存储地址信息和区段归属信息;

18、基于所述存储地址信息、所述区段归属信息以及所述区段访问约束,对所述第一接口副本进行读取访问,并对读取到的所述第一接口副本中的边界校验信息进行匹配校验,得到第一边界校验结果;

19、在所述第一边界校验结果满足预设边界条件的情况下,基于所述第一接口副本中的硬件抽象接口指向信息和结构识别信息生成待比对内容校验信息,并将所述待比对内容校验信息与所述第一接口副本中的内容校验信息进行匹配校验,得到所述第一副本校验结果。

20、在一实施例中,所述在所述第一副本校验结果不满足预设有效条件的情况下,基于所述副本定位信息和所述区段访问约束访问所述第二接口副本,并根据所述第二接口副本中的边界校验信息和内容校验信息对所述第二接口副本进行完整性校验,得到第二副本校验结果的步骤,包括:

21、在所述第一副本校验结果不满足预设有效条件的情况下,基于所述第一副本校验结果生成副本回退触发信息,并根据所述副本回退触发信息和所述副本定位信息确定所述第二接口副本对应的存储地址信息和区段归属信息;

22、基于所述第二接口副本对应的存储地址信息、区段归属信息以及所述区段访问约束,对所述第二接口副本进行读取访问,并对读取到的所述第二接口副本中的边界校验信息进行匹配校验,得到第二边界校验结果;

23、在所述第二边界校验结果满足预设边界条件的情况下,基于所述第二接口副本中的硬件抽象接口指向信息和结构识别信息生成备选待比对内容校验信息,并将所述备选待比对内容校验信息与所述第二接口副本中的内容校验信息进行匹配校验,得到所述第二副本校验结果。

24、在一实施例中,所述基于所述第一副本校验结果和所述第二副本校验结果,从所述第一接口副本和所述第二接口副本中确定目标接口副本,或者生成降级处理控制信息,并基于所述目标接口副本向所述业务模块返回所述硬件抽象接口指向信息,或者基于所述降级处理控制信息执行预设故障处理过程的步骤,包括:

25、对所述第一副本校验结果和所述第二副本校验结果进行有效性判定,得到副本有效性判定结果,并基于所述副本有效性判定结果确定所述第一接口副本和所述第二接口副本对应的可用状态;

26、在所述可用状态表征所述第一接口副本或所述第二接口副本满足预设有效条件的情况下,将满足所述预设有效条件的接口副本确定为所述目标接口副本;在所述可用状态表征所述第一接口副本和所述第二接口副本均不满足所述预设有效条件的情况下,生成所述降级处理控制信息;

27、基于所述目标接口副本,提取所述目标接口副本中的硬件抽象接口指向信息,并将所述硬件抽象接口指向信息返回至所述业务模块;或者基于所述降级处理控制信息,调用不依赖所述硬件抽象接口的预设故障输出路径和复位控制路径,以执行所述预设故障处理过程。

28、此外,为实现上述目的,本技术还提出一种嵌入式引导程序硬件抽象接口访问控制装置,所述嵌入式引导程序硬件抽象接口访问控制装置包括:

29、依赖校验模块,用于基于引导程序对应的链接产物,对硬件抽象接口访问入口及关联调用链进行存储访问依赖校验,得到访问入口校验结果;

30、约束配置模块,用于在所述访问入口校验结果满足预设构建条件的情况下,基于所述引导程序对应的只读存储布局信息,确定第一接口副本和第二接口副本对应的副本定位信息,并根据所述副本定位信息配置对应的区段访问约束,所述第一接口副本和所述第二接口副本分别包括硬件抽象接口指向信息、结构识别信息、边界校验信息和内容校验信息;

31、第一校验模块,用于响应于业务模块发起的接口取得请求,基于所述副本定位信息和所述区段访问约束访问所述第一接口副本,并根据所述第一接口副本中的边界校验信息和内容校验信息对所述第一接口副本进行完整性校验,得到第一副本校验结果;

32、第二校验模块,用于在所述第一副本校验结果不满足预设有效条件的情况下,基于所述副本定位信息和所述区段访问约束访问所述第二接口副本,并根据所述第二接口副本中的边界校验信息和内容校验信息对所述第二接口副本进行完整性校验,得到第二副本校验结果;

33、目标处理模块,用于基于所述第一副本校验结果和所述第二副本校验结果,从所述第一接口副本和所述第二接口副本中确定目标接口副本,或者生成降级处理控制信息,并基于所述目标接口副本向所述业务模块返回所述硬件抽象接口指向信息,或者基于所述降级处理控制信息执行预设故障处理过程。

34、此外,为实现上述目的,本技术还提出一种嵌入式引导程序硬件抽象接口访问控制设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的嵌入式引导程序硬件抽象接口访问控制程序,所述嵌入式引导程序硬件抽象接口访问控制程序配置为实现如上文所述的嵌入式引导程序硬件抽象接口访问控制方法的步骤。

35、此外,为实现上述目的,本技术还提出一种存储介质,所述存储介质上存储有嵌入式引导程序硬件抽象接口访问控制程序,所述嵌入式引导程序硬件抽象接口访问控制程序被处理器执行时实现如上文所述的嵌入式引导程序硬件抽象接口访问控制方法的步骤。

36、此外,为实现上述目的,本技术还提出一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如上文所述的嵌入式引导程序硬件抽象接口访问控制方法的步骤。

37、本技术通过基于引导程序对应的链接产物,对硬件抽象接口访问入口及关联调用链进行存储访问依赖校验,得到访问入口校验结果;在访问入口校验结果满足预设构建条件的情况下,基于引导程序对应的只读存储布局信息,确定第一接口副本和第二接口副本对应的副本定位信息,并根据副本定位信息配置对应的区段访问约束,第一接口副本和第二接口副本分别包括硬件抽象接口指向信息、结构识别信息、边界校验信息和内容校验信息;响应于业务模块发起的接口取得请求,基于副本定位信息和区段访问约束访问第一接口副本,并根据第一接口副本中的边界校验信息和内容校验信息对第一接口副本进行完整性校验,得到第一副本校验结果;在第一副本校验结果不满足预设有效条件的情况下,基于副本定位信息和区段访问约束访问第二接口副本,并根据第二接口副本中的边界校验信息和内容校验信息对第二接口副本进行完整性校验,得到第二副本校验结果;基于第一副本校验结果和第二副本校验结果,从第一接口副本和第二接口副本中确定目标接口副本,或者生成降级处理控制信息,并基于目标接口副本向业务模块返回硬件抽象接口指向信息,或者基于降级处理控制信息执行预设故障处理过程。本技术通过先对引导程序对应的链接产物进行存储访问依赖校验,使硬件抽象接口访问入口及关联调用链在满足预设构建条件后才参与后续接口取得过程,从源头降低不符合要求的存储访问依赖对接口访问的影响;在此基础上,基于只读存储布局信息确定第一接口副本和第二接口副本的副本定位信息,并配置对应的区段访问约束,使业务模块的接口取得过程能够按照确定的副本位置和访问约束执行;当业务模块发起接口取得请求时,先对第一接口副本的边界校验信息和内容校验信息进行完整性校验,在第一副本校验结果不满足预设有效条件时,再对第二接口副本进行完整性校验,从而形成接口副本的有效性判定和回退访问机制;最后根据第一副本校验结果和第二副本校验结果确定目标接口副本并返回硬件抽象接口指向信息,或者在无法确定有效接口副本时生成降级处理控制信息并执行预设故障处理过程,由此避免未经校验或校验异常的接口副本被直接返回至业务模块,降低单一接口副本异常对接口取得过程的影响,进而提升嵌入式引导程序硬件抽象接口的访问可靠性。