本申请涉及计算机,尤其涉及一种地址转换方法、装置、电子设备及存储介质。
背景技术:
1、错误注入(error injection,einj)是一种用于内存错误注入的机制,通常用于测试和验证系统的错误处理能力。通过einj,用户可以模拟内存中的硬件错误,以测试系统的错误检测、纠正和处理机制是否有效。
2、当基于einj对采用pcie协议的设备进行地址转换时,首先获取该设备的端点(endpoint)地址,再获取它的根端口(root port)地址,然后将该根端口地址进行手动计算具体的转换结果,再将其进行注入。然而,这种地址转换方式,随着注入地址量的增加,会增加人工的计算量,且手动计算具体的转换结果,该转换结果可能会存在计算错误,整个过程繁琐且不准确。
技术实现思路
1、本申请提供了一种地址转换方法,用以提高地址转换的效率与准确性。
2、第一方面,提供一种地址转换方法,包括:
3、获取目标设备的原始根端口地址,并将所述原始根端口地址按照设定格式转换,得到转换后的第一根端口地址;
4、将所述第一根端口地址按照地址转换规则进行转换,得到所述第一根端口地址的n个部分地址;其中,所述n为大于1的整数;
5、将所述n个部分地址按照设定进制转换,得到待注入的目标根端口地址。
6、本申请实施例中,首先,获取目标设备的原始根端口地址,并将原始根端口地址按照设定格式转换,得到转换后的第一根端口地址,以保证转换后的第一根端口地址与pcie协议相匹配;然后,将第一根端口地址按照地址转换规则进行转换,得到该第一根端口地址的n个部分地址;最后,将n个部分地址按照设定进制转换,得到待注入的目标根端口地址,以保证该目标根端口地址的有效性,相较于现有技术,采用人工计算方式进行地址转换,本申请通过编写的脚本能够自动且快速完成的地址转换,可用性和易用性强,提高了地址转换的效率以及准确性,同时也降低了人工的工作量和工作难度。
7、在一些实施例中,所述获取目标设备的原始根端口地址,并将所述原始根端口地址按照设定格式转换,得到转换后的第一根端口地址,包括:
8、根据所述目标设备的设备信息,获取所述目标设备的原始根端口地址;其中,所述设备信息包括所述目标设备的设备类型、设备型号、设备位置、设备厂商中至少一种;
9、将所述原始根端口地址进行二进制转换,并将所述原始根端口地址中的点字符替换成预设字符,得到转换后的第一根端口地址。
10、通过上述方式,以使转换后的第一根端口地址,与pcie协议定义的标准格式匹配,以便于后续在进行地址转换时,保证其计算的准确性。
11、在一些实施例中,所述将所述第一根端口地址按照地址转换规则进行转换,得到所述第一根端口地址的n个部分地址,包括:
12、基于地址划分规则,将所述第一根端口地址划分成m个部分地址;其中,所述m等于所述n;
13、将所述m个部分地址按照各自的地址转换规则进行转换;
14、判断转换后的m个部分地址是否满足各自的设定位数;
15、若是,则得到所述第一根端口地址的n个部分地址;
16、若否,则按照各自的设定位数,对所述m个部分地址执行补零操作,得到所述第一根端口地址的n个部分地址。
17、通过上述方式,先按照地址划分规则将第一根端口地址划分成m个部分地址,以保证每部分地址可针对性的进行地址转换,还对转换后的m个部分地址进行设定位数判断,可对不满足要求的部分地址执行补零操作,以使n个部分地址均有效可用。
18、在一些实施例中,所述m个部分地址各自的设定位数不相等。
19、通过设定m个部分地址各自的设定位数不相等,以使每部分地址与pcie协议规定的相匹配,也保证最后生成的目标根端口地址不会存在错位问题。
20、在一些实施例中,所述将所述第一根端口地址按照地址转换规则进行转换,得到所述第一根端口地址的n个部分地址之前,还包括:
21、对所述第一根端口地址进行格式校验;
22、若检验出所述第一根端口地址的格式不准确,则输出提示信息;其中,所述提示信息至少包括所述第一根端口地址的格式异常原因以及异常字符。
23、通过上述方式,可再一次对转换后的第一根端口地址进行格式校验,进一步保证该第一根端口地址转换过程中计算的准确性,且在格式不准确的情况下,还可输出提示信息进行提醒,便于用户采取相应的措施进行解决。
24、在一些实施例中,所述地址转换规则是基于所述目标设备的总线号、设备号、功能号中至少一项编写的。
25、通过上述方式,以保证与pcie协议相匹配,以使转换后的每部分地址均有效可用。
26、第二方面,提供一种地址转换装置,包括:
27、格式转换模块,用于获取目标设备的原始根端口地址,并将所述原始根端口地址按照设定格式转换,得到转换后的第一根端口地址;
28、地址转换模块,用于将所述第一根端口地址按照地址转换规则进行转换,得到所述第一根端口地址的n个部分地址;以及用于将所述n个部分地址按照设定进制转换,得到待注入的目标根端口地址。
29、在一些实施例中,所述格式转换模块,具体用于:
30、根据所述目标设备的设备信息,获取所述目标设备的原始根端口地址;其中,所述设备信息包括所述目标设备的设备类型、设备型号、设备位置、设备厂商中至少一种;
31、将所述原始根端口地址进行二进制转换,并将所述原始根端口地址中的点字符替换成预设字符,得到转换后的第一根端口地址。
32、第三方面,提供一种电子设备,包括:
33、存储器,用于存放计算机程序;处理器,用于执行所述存储器上所存放的计算机程序时,实现第一方面中任一项所述的方法步骤。
34、第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中任一项所述的方法步骤。
35、上述第二方面至第四方面中的各个方面以及各个方面可能达到的技术效果请参照上述针对第一方面或第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。
1.一种地址转换方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述获取目标设备的原始根端口地址,并将所述原始根端口地址按照设定格式转换,得到转换后的第一根端口地址,包括:
3.如权利要求1所述的方法,其特征在于,所述将所述第一根端口地址按照地址转换规则进行转换,得到所述第一根端口地址的n个部分地址,包括:
4.如权利要求3所述的方法,其特征在于,所述m个部分地址各自的设定位数不相等。
5.如权利要求1所述的方法,其特征在于,所述将所述第一根端口地址按照地址转换规则进行转换,得到所述第一根端口地址的n个部分地址之前,还包括:
6.如权利要求1-5任一项所述的方法,其特征在于,所述地址转换规则是基于所述目标设备的总线号、设备号、功能号中至少一项编写的。
7.一种地址转换装置,其特征在于,包括:
8.如权利要求7所述的装置,其特征在于,所述格式转换模块,具体用于:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6中任一项所述的方法。
