一种外设故障原因定位方法、装置、设备及介质制造方法及图纸

技术编号:28146335 阅读:31 留言:0更新日期:2021-04-21 19:31
本公开实施例涉及一种外设故障原因定位方法、装置、设备及介质,其中该方法包括:获取目标外设的设备信息,其中,设备信息包括目标外设所在的域、总线号、设备号和功能号;在用户态下,利用Linux内核导出标准文件系统接口;基于设备信息,在标准文件系统接口下查找目标外设的目标空间文件,其中,目标空间文件包括配置空间文件和/或基址空间文件;基于目标空间文件获取用户态的内存基址;基于内存基址以及预设标准,获取目标外设相关的状态寄存器的寄存器信息;基于寄存器信息定位目标外设的故障原因。采用上述技术方案,不依赖第三方库,解决了硬件架构的兼容性问题,且可快速定位外设故障原因。障原因。障原因。

【技术实现步骤摘要】
一种外设故障原因定位方法、装置、设备及介质


[0001]本公开涉及网络通信
,尤其涉及一种外设故障原因定位方法、装置、设备及介质。

技术介绍

[0002]随着当前CPU性能的逐年提升,传统的低速外设越来越无法满足现实的生产需求。于是并行PCI、PCI

X,到后来的PCIE串行高速总线标准被研发出来。随着技术的持续发展,PCIE总线架构越来越丰富,挂载的PCIE高速外设越来越多,也越来越复杂。由于硬件设计的复杂性以及不合理,可能会导致一般的PCIE外设出现各种异常现象,诸如功能、性能以及稳定性等难以定位的复杂问题。要定位出这些复杂问题,收集PCI/PCIE设备的各种状态寄存器是一种必不可少的调试手段。
[0003]目前,收集PCI/PCIE设备状态寄存器的方法可包括:一、利用lspci工具读取PCI/PCIE协议标准空间内容;二、利用专用的外设的驱动导出专用的调试接口。但是,lspci工具只能读出PCI协议的标准256字节空间,无法读出PCIE扩展的整个4096字节空间;并且lspci工具对X86平台支持较好,对于ARM64、MIPS等其他非X86等嵌入式需要定制编译,并对第三方库有依赖,使用门槛较高,便利性不好。另外,专用PCI/PCIE外设驱动提供专用调试接口,只能特定硬件使用特定驱动,如果需要增加额外接口,需要修改和编译驱动,重复卸载和加载,非常不灵活,而且重新加载驱动,会破坏硬件BUG现场,不能及时获取和定位到硬件异常状态。

技术实现思路

[0004]为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种外设故障原因定位方法、装置、设备及介质。
[0005]本公开实施例提供了一种外设故障原因定位方法,包括:
[0006]获取目标外设的设备信息,其中,所述目标外设包括报错的PCI设备、PCIE设备和桥设备,所述设备信息包括所述目标外设所在的域、总线号、设备号和功能号;
[0007]在用户态下,利用Linux内核导出标准文件系统接口;
[0008]基于所述设备信息,在所述标准文件系统接口下查找所述目标外设的目标空间文件,其中,所述目标空间文件包括配置空间文件和/或基址空间文件;
[0009]基于所述目标空间文件获取用户态的内存基址;
[0010]基于所述内存基址以及预设标准,获取所述目标外设相关的状态寄存器的寄存器信息;
[0011]基于所述寄存器信息定位所述目标外设的故障原因。
[0012]可选的,基于所述目标空间文件获取用户态的内存基址,包括:
[0013]针对所述目标空间文件,调用用户态标准的open库函数,以获得一个文件句柄;
[0014]以所述文件句柄和所述目标空间文件的大小为参数,调用mmap操作,以获取用户
态的内存基址。
[0015]可选的,所述目标空间文件包括配置空间文件,基于所述内存基址以及预设标准,获取所述目标外设相关的状态寄存器的寄存器信息,包括:
[0016]基于所述内存基址查询状态寄存器;
[0017]基于PCIE总线规范读取所有PCI/PCIE标准的状态寄存器的寄存器信息。
[0018]可选的,所述目标空间文件包括基址空间文件,基于所述内存基址以及预设标准,获取所述目标外设相关的状态寄存器的寄存器信息,包括:
[0019]基于所述内存基址查询状态寄存器;
[0020]基于PCI/PCIE设备的数据手册读取外设功能相关的状态寄存器的寄存器信息。
[0021]本公开实施例还提供了一种外设故障原因定位装置,包括:
[0022]设备信息获取模块,用于获取目标外设的设备信息,其中,所述目标外设包括报错的PCI设备、PCIE设备和桥设备,所述设备信息包括所述目标外设所在的域、总线号、设备号和功能号;
[0023]接口导出模块,用于在用户态下,利用Linux内核导出标准文件系统接口;
[0024]空间文件查找模块,用于基于所述设备信息,在所述标准文件系统接口下查找所述目标外设的目标空间文件,其中,所述目标空间文件包括配置空间文件和/或基址空间文件;
[0025]内存基址获取模块,用于基于所述目标空间文件获取用户态的内存基址;
[0026]寄存器信息获取模块,用于基于所述内存基址以及预设标准,获取所述目标外设相关的状态寄存器的寄存器信息;
[0027]故障原因定位模块,用于基于所述寄存器信息定位所述目标外设的故障原因。
[0028]可选的,所述内存基址获取模块包括:
[0029]文件句柄获取单元,用于针对所述目标空间文件,调用用户态标准的open库函数,以获得一个文件句柄;
[0030]内存基址获取单元,用于以所述文件句柄和所述目标空间文件的大小为参数,调用mmap操作,以获取用户态的内存基址。
[0031]可选的,所述目标空间文件包括配置空间文件,所述寄存器信息获取模块包括:
[0032]寄存器查询单元,用于基于所述内存基址查询状态寄存器;
[0033]寄存器读取单元,用于基于PCIE总线规范读取所有PCI/PCIE标准的状态寄存器的寄存器信息。
[0034]可选的,所述目标空间文件包括基址空间文件,所述寄存器信息获取模块包括:
[0035]寄存器查询单元,用于基于所述内存基址查询状态寄存器;
[0036]寄存器读取单元,用于基于PCI/PCIE设备的数据手册读取外设功能相关的状态寄存器的寄存器信息。
[0037]本公开实施例还提供了一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现如本公开实施例提供的外设故障原因定位方法。
[0038]本公开实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行如本公开实施例提供的外设故障原因定位方法。
[0039]本公开实施例提供的技术方案与现有技术相比具有如下优点:本公开实施例提供的外设故障原因定位方法,直接利用Linux内核导出标准文件系统接口,在标准文件系统接口下查找目标外设的目标空间文件,基于目标空间文件获取用户态的内存基址,基于内存基址以及预设标准,获取目标外设相关的状态寄存器的寄存器信息,不依赖于任何第三方库程序和功能,使用门槛低,便利性好;同时,无需外设驱动,避免了对驱动的修改和编译,以及重复卸载和加载,提高了灵活性,实现了对外设故障原因的快速定位;而且,上述外设故障原因定位方法运行在用户态,解决了硬件架构的兼容性问题,不存在内核版本的依赖问题。
附图说明
[0040]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0041]为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种外设故障原因定位方法,其特征在于,包括:获取目标外设的设备信息,其中,所述目标外设包括报错的PCI设备、PCIE设备和桥设备,所述设备信息包括所述目标外设所在的域、总线号、设备号和功能号;在用户态下,利用Linux内核导出标准文件系统接口;基于所述设备信息,在所述标准文件系统接口下查找所述目标外设的目标空间文件,其中,所述目标空间文件包括配置空间文件和/或基址空间文件;基于所述目标空间文件获取用户态的内存基址;基于所述内存基址以及预设标准,获取所述目标外设相关的状态寄存器的寄存器信息;基于所述寄存器信息定位所述目标外设的故障原因。2.根据权利要求1所述的外设故障原因定位方法,其特征在于,基于所述目标空间文件获取用户态的内存基址,包括:针对所述目标空间文件,调用用户态标准的open库函数,以获得一个文件句柄;以所述文件句柄和所述目标空间文件的大小为参数,调用mmap操作,以获取用户态的内存基址。3.根据权利要求1所述的外设故障原因定位方法,其特征在于,所述目标空间文件包括配置空间文件,基于所述内存基址以及预设标准,获取所述目标外设相关的状态寄存器的寄存器信息,包括:基于所述内存基址查询状态寄存器;基于PCIE总线规范读取所有PCI/PCIE标准的状态寄存器的寄存器信息。4.根据权利要求1所述的外设故障原因定位方法,其特征在于,所述目标空间文件包括基址空间文件,基于所述内存基址以及预设标准,获取所述目标外设相关的状态寄存器的寄存器信息,包括:基于所述内存基址查询状态寄存器;基于PCI/PCIE设备的数据手册读取外设功能相关的状态寄存器的寄存器信息。5.一种外设故障原因定位装置,其特征在于,包括:设备信息获取模块,用于获取目标外设的设备信息,其中,所述目标外设包括报错的PCI设备、PCIE设备和桥设备,所述设备信息包括所述目标外设所在的域、总线号、设备号和功能号;接口导出模块,用于在用户态下,利用Linux内核导出标准文件系统接...

【专利技术属性】
技术研发人员:余建明
申请(专利权)人:北京天融信科技有限公司北京天融信软件有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1