CN110209605B - Pcie总线网卡的寄存器读写方法和计算设备 - Google Patents

Pcie总线网卡的寄存器读写方法和计算设备 Download PDF

Info

Publication number
CN110209605B
CN110209605B CN201910467340.8A CN201910467340A CN110209605B CN 110209605 B CN110209605 B CN 110209605B CN 201910467340 A CN201910467340 A CN 201910467340A CN 110209605 B CN110209605 B CN 110209605B
Authority
CN
China
Prior art keywords
information
pcie bus
address
network card
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910467340.8A
Other languages
English (en)
Other versions
CN110209605A (zh
Inventor
刘亚萍
张硕
胡宁
吴纯青
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou University
Original Assignee
Guangzhou University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou University filed Critical Guangzhou University
Priority to CN201910467340.8A priority Critical patent/CN110209605B/zh
Publication of CN110209605A publication Critical patent/CN110209605A/zh
Application granted granted Critical
Publication of CN110209605B publication Critical patent/CN110209605B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Bus Control (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种PCIE总线网卡的寄存器读写方法和计算设备,读写方法如下:探测挂载在PCIE总线上的设备,供选择;针对于被选择要进行读取或写入操作的设备,提供该设备的设备信息;获取被选择要进行读取或写入操作的设备对应的输入信息;检测输入信息是否符合要求;若符合要求,则调用Linux系统内核的IO操作函数,由IO操作函数根据上述输入的设备信息对PCIE总线网卡的寄存器进行读写操作。本发明方法使得用户在Linux用户空间的操作就能够对PCIE总线网卡的寄存器进行读写操作,满足了Linux平台为PCIE总线网卡编写调试驱动程序时需要针对PCIE总线网卡的寄存器进行读写的需求。

Description

PCIE总线网卡的寄存器读写方法和计算设备
技术领域
本发明涉及计算机技术领域,特别涉及一种PCIE总线网卡的寄存器读写方法和计算设备。
背景技术
PCI-Express(peripheral component interconnect express)是一种高速串行计算机扩展总线标准,它原来的名称为“3GIO”,旨在替代旧的PCI、PCI-X和AGP总线标准。PCIE属于高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽,不共享总线带宽,主要支持主动电源管理、错误报告、端对端的可靠性传输、热插拔以及服务质量(QOS)等功能。
在Linux平台为PCIE总线网卡编写调试驱动程序时,需要读取PCIE总线网卡的寄存器获取网卡的一些硬件参数或者状态,同时也需要写入PCIE总线网卡的寄存器来启动网卡的一些功能。为了方便编写调试网卡驱动程序,就需要一个额外的方法能让用户在Linux的用户空间来读取到PCIE总线网卡的寄存器的内容,并能够在用户空间对PCIE总线网卡的寄存器进行写入操作。
发明内容
本发明的第一目的在于克服现有技术的缺点与不足,提供一种PCIE总线网卡的寄存器读取方法,通过该方法使得用户在Linux用户空间的操作就能够对PCIE总线网卡的寄存器进行读取操作,满足了Linux平台为PCIE总线网卡编写调试驱动程序时或其他原因需要读取PCIE总线网卡的寄存器硬件参数或者状态等的需求。
本发明的第二目的在于提供一种计算设备。
本发明第三目的在于提供一种PCIE总线网卡的寄存器写入方法,通过该方法使得用户在Linux用户空间的操作就能够对PCIE总线网卡的寄存器进行写入操作,满足了Linux平台为PCIE总线网卡编写调试驱动程序时或其他原因需要向PCIE总线网卡的寄存器写入相应内容的需求。
本发明的第四目的在于提供一种计算设备。
本发明的第一目的通过下述技术方案实现:一种PCIE总线网卡的寄存器读取方法,步骤如下:
步骤S1、探测挂载在PCIE总线上的设备,供读取操作的选择;
步骤S2、针对于被选择要进行读取操作的设备,提供该设备的设备信息,包括设备的物理地址信息;
步骤S3、获取被选择要进行读取操作的设备对应的输入信息,包括输入的设备信息;并且检测上述输入信息是否符合要求;
若是,则调用系统内核的IO操作函数,由IO操作函数根据上述输入的设备信息读取PCIE总线网卡的寄存器对应地址的内容。
优选的,步骤S3中获取的输入信息还包括要读取的数据字节数X,X为定值;
步骤S3中,在检测到输入信息符合要求的情况下,调用系统内核的IO操作函数,由IO操作函数根据输入的设备信息读取PCIE总线网卡的寄存器对应地址中X字节的数据。
优选的,步骤S3中检测输入信息是否符合要求的方式如下:检测输入信息是否包括规定的种类信息;规定的种类信息包括物理地址信息;或者规定的种类信息包括物理地址信息和读取的数据字节数信息。
优选的,步骤S3中调用系统内核的IO操作函数实现读取操作的过程如下:
步骤S31、IO操作函数通过虚拟地址映射将输入的设备信息中的物理地址转化为虚拟地址;所述物理地址包括物理的基地址和偏移地址,转换得到的虚拟地址包括虚拟的基地址和偏移地址;
步骤S32、IO操作函数利用虚拟地址中虚拟的基地址和偏移地址找到PCIE总线网卡的寄存器对应到虚拟内存的地址;
步骤S33、IO操作函数在步骤S32所找到的PCIE总线网卡的寄存器虚拟内存的地址中进行读取操作。
本发明的第二目的通过下述技术方案实现:一种计算设备,包括处理器以及用于存储处理器可执行程序的存储器,所述处理器执行存储器存储的程序时,实现本发明第一目的所述的PCIE总线网卡的寄存器读取方法。
本发明的第三目的通过下述技术方案实现:一种PCIE总线网卡的寄存器写入方法,步骤如下:
步骤1、探测挂载在PCIE总线上的设备,供写入操作的选择;
步骤2、针对于被选择要进行写入操作的设备,提供该设备的设备信息,包括设备的物理地址信息;
步骤3、获取被选择要进行写入操作的设备对应的输入信息,包括输入的设备信息以及需要写入到PCIE总线网卡的寄存器的新值;并且检测上述输入的信息是否符合要求;
若是,则调用系统内核模块的IO操作函数,由IO操作函数根据上述输入的设备信息将新值写入到PCIE总线网卡的寄存器对应地址中。
优选的,步骤3中获取的输入的信息还包括要写入的数据字节数Y,Y为定值;
步骤3中,在检测到输入信息符合要求的情况下,调用系统内核的IO操作函数,由IO操作函数根据输入的设备信息将新值中Y字节数据写入到PCIE总线网卡的寄存器对应地址中。
优选的,步骤3中检测输入信息是否符合要求的方式如下:检测输入信息是否包括规定的种类信息;规定的种类信息包括物理地址信息;或者规定的种类信息包括物理地址信息和写入的数据字节数信息。
优选的,步骤S3中调用系统内核的IO操作函数实现写入操作的过程如下:
步骤31、IO操作函数通过虚拟地址映射将输入的设备信息中的物理地址转化为虚拟地址;所述物理地址包括物理的基地址和偏移地址,转换得到的虚拟地址包括虚拟的基地址和偏移地址
步骤32、IO操作函数利用虚拟地址中虚拟的基地址和偏移地址找到PCIE总线网卡的寄存器对应到虚拟内存的地址;
步骤33、IO操作函数在步骤32所找到的PCIE总线网卡的寄存器虚拟内存的地址中进行写入操作,即将输入信息中的写入内容写入。
本发明的第四目的通过下述技术方案实现:一种计算设备,包括处理器以及用于存储处理器可执行程序的存储器,所述处理器执行存储器存储的程序时,实现本发明第三目的所述的PCIE总线网卡的寄存器写入方法。
本发明相对于现有技术具有如下的优点及效果:
(1)本发明PCIE总线网卡的寄存器读取方法中,首先探测挂载在PCIE总线上的设备,供用户进行读取操作的选择;针对于被选择读取的设备,提供该设备的设备信息,包括设备的物理地址信息;用户可以根据提供的设备信息将这些信息进行输入或者直接提取上述提供的设备信息作为输入;针对于输入信息,检测这些信息是否符合要求;若符合要求,则调用Linux系统内核的IO操作函数,由IO操作函数根据上述输入的设备信息读取PCIE总线网卡的寄存器对应地址的内容。通过上述可知,本发明方法通过在Linux用户空间对内核中寄存器读取操作函数的调用来实现对PCIE总线网卡的寄存器进行读取操作,使得用户在Linux用户空间的操作就能够对PCIE总线网卡的寄存器进行读取操作,满足了Linux平台为PCIE总线网卡编写调试驱动程序时或其他原因需要读取PCIE总线网卡的寄存器硬件参数或者状态等的需求。另外,本发明在进行数据读取之前,先针对输入信息检测是否符合要求,再对内核中的IO操作函数进行调用,可以提高对IO操作函数的调用效率,减少不必要的IO操作函数调用和系统运行空间的占用,合理安排IO操作函数对PCIE总线网卡的寄存器进行读取操作,提高了PCIE总线网卡的寄存器读取效率。
(2)本发明PCIE总线网卡的寄存器读取方法中,被选择需要进行读取的设备对应输入信息还包括要读取的数据字节数X,该读取的数据字节数X可以根据实际要求进行设置;本发明方法中,当检测到输入的信息符合要求的情况下,调用系统内核的IO操作函数,由IO操作函数根据输入的设备信息读取PCIE总线网卡的寄存器对应地址中X字节的数据;上述操作使得本发明方法按照预先设定从PCIE总线网卡的寄存器中读取相应大小的数据,避免多读浪费时间以及浪费操作资源。
另外,本发明PCIE总线网卡的寄存器读取方法中,在进行读取之前,首先检测输入的信息所包括的种类,在符合规定的种类情况下,才调用内核的IO操作函数进行后续的读取操作,上述操作能够保证输入信息在完整的情况下才进行后续读取操作,避免因为输入信息不完整调用内核IO操作函数导致读取不成功,浪费系统操作运行空间的情况。
(3)本发明PCIE总线网卡的寄存器写入方法中,首步探测挂载在PCIE总线上的设备,供用户进行写入操作的选择;针对于被选择要进行写入操作的设备,提供该设备的设备信息,包括设备的物理地址信息;获取被选择要进行写入的设备对应的输入信息,包括输入的设备信息以及需要写入到PCIE总线网卡的寄存器的新值;并且检测上述输入信息是否符合要求;在输入信息符合要求的情况下,调用系统内核模块的IO操作函数,由IO操作函数根据上述输入的设备信息将新值写入到PCIE总线网卡的寄存器对应地址中。本发明方法通过在Linux用户空间对内核中寄存器写入操作函数的调用,来实现对PCIE总线网卡的寄存器进行写入操作,使得用户在Linux用户空间的操作就能够对PCIE总线网卡的寄存器进行写入操作,满足了Linux平台为PCIE总线网卡编写调试驱动程序时需要向PCIE总线网卡的寄存器写入相应内容的需求。另外,本发明在进行数据写入操作之前,先针对输入信息检测是否符合要求,再对内核中的IO操作函数进行调用,可以提高对IO操作函数的调用效率,减少不必要的IO操作函数调用和系统运行空间的占用,合理安排IO操作函数对PCIE总线网卡的寄存器进行写入操作,提高了PCIE总线网卡的寄存器写入效率。
(4)本发明PCIE总线网卡的寄存器写入方法中,被选择需要进行操作的设备对应输入信息还包括要写入的数据字节数Y;可以根据实际需求进行设置;在本发明方法中,在检测到输入信息符合要求的情况下,调用系统内核的IO操作函数,由IO操作函数根据输入的设备信息将新值中Y字节数据写入到PCIE总线网卡的寄存器对应地址中,上述操作使得本发明方法按照预先设定向PCIE总线网卡的寄存器中写入相应大小的数据,避免多写浪费时间以及浪费寄存器内存空间。
另外,本发明PCIE总线网卡的寄存器写入方法中,在进行写入之前,首先检测输入的信息所包括的种类,在符合规定的种类情况下,才调用内核的IO操作函数进行后续的写入操作,上述操作能够保证输入信息在完整的情况下才进行后续写入操作,避免因为输入信息不完整调用内核IO操作函数导致写入不成功,浪费系统操作运行空间的情况。
附图说明
图1是本发明PCIE总线网卡的寄存器读取方法流程图。
图2是本发明PCIE总线网卡的寄存器写入方法流程图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例1
本实施例公开了一种PCIE总线网卡的寄存器读取方法,PCIE总线上挂载着多种设备,包括显卡、网卡、视频采集卡等设备,在PCIE总线网卡的寄存器上存储着PCIE总线挂载的各个设备的设备信息,包括设备硬件参数、设备状态、设备厂商号、设备物理地址等设备信息。如图1所示,本实施例中读取方法的具体步骤如下:
步骤S1、探测挂载在PCIE总线上的设备,供读取操作的选择;
步骤S2、针对于被选择要进行读取操作的设备,提供该设备的设备信息,包括设备的物理地址信息;其中,要进行读取操作的设备指的是在PCIE总线网卡的寄存器对应该设备的配置空间中需要进行读取操作的设备,即读取操作是针对PCIE总线网卡的寄存器对应该设备的配置空间进行的。
步骤S3、获取被选择要进行读取操作的设备对应的输入信息,包括输入的设备信息;并且检测上述输入信息是否符合要求;在本实施例中,检测输入信息是否符合要求的方式如下:检测输入信息是否包括规定的种类信息;规定的种类信息可以根据实际情况进行设置,例如规定的种类信息包括物理地址信息;或者包括物理地址信息和读取的数据字节数信息。
若否,重复执行步骤S3。
若是,则调用系统内核的IO操作函数,由内核中IO操作函数根据上述输入的设备信息读取PCIE总线网卡的寄存器对应地址的内容,并且反馈到用户空间;若输入信息中还包括要读取的数据字节数X,X为定值,则在读取时,读取寄存器对应地址中X字节数据。在本实施例中,调用系统内核的IO操作函数实现读取操作的过程如下:
步骤S31、IO操作函数通过虚拟地址映射将输入的设备信息中的物理地址转化为虚拟地址;所述物理地址包括物理的基地址和偏移地址,转换得到的虚拟地址包括虚拟的基地址和偏移地址;
步骤S32、IO操作函数利用虚拟地址中虚拟的基地址和偏移地址找到PCIE总线网卡的寄存器对应到虚拟内存的地址;
步骤S33、IO操作函数在步骤S32所找到的PCIE总线网卡的寄存器虚拟内存的地址中进行读取操作。
在本实施例上述步骤S3中,被选择读取的设备对应的输入设备信息由用户根据提供的设备信息通过人机交互界面直接输入或者也可以是从提供的设备信息中直接提取得到。在步骤S2中针对于被选择要进行读取操作的设备,可以通过人机交互界面直接显示该设备的设备信息,以实现设备信息的提供。
本实施例上述方法中,能够实现先在Linux用户空间实现对内核中寄存器读取操作函数的调用,最后由调用的操作函数实现寄存器的读取工作,满足了Linux平台为PCIE总线网卡编写调试驱动程序时或其他原因需要读取PCIE总线网卡的寄存器硬件参数或者状态等的需求。
本实施例还公开了一种计算设备,包括处理器以及用于存储处理器可执行程序的存储器,处理器执行存储器存储的程序时,实现本实施例上述的PCIE总线网卡的寄存器读取方法,如下:
探测挂载在PCIE总线上的设备,供读取操作的选择。
针对于被选择要进行读取操作的设备,提供该设备的设备信息,包括设备的物理地址信息。
获取被选择读取的设备对应的输入信息,包括输入的设备信息;并且检测上述输入信息是否符合要求;
若是,则调用系统内核的IO操作函数,由内核中IO操作函数根据上述输入的设备信息读取PCIE总线网卡的寄存器对应地址的内容,并且反馈到用户空间;若输入信息中还包括要读取的数据字节数X,则在读取时,读取寄存器对应地址中X字节。
若否,则再次获取被选择读取的设备对应的输入信息,直到获取到的输入信息符合要求,再调用系统内核的IO操作函数。
在本实施例中,上述检测输入信息是否符合要求的方式如下:检测输入信息是否包括规定的种类信息;规定的种类信息可以根据实际情况进行设置;
在本实施例中,计算机设备存储器中存储的程序还执行读取和写入操作选择功能,当选择读取操作功能时,在探测挂载在PCIE总线上的设备后,执行本实施例上述的过程,实现PCIE总线网卡的寄存器中内容的读取。
本实施例中,计算设备可以是台式电脑、笔记本电脑、智能手机、PDA手持终端、平板电脑或其他具有处理器功能的终端设备。该计算设备中安装Linux系统,由Linux的用户空间执行上述内核的IO操作函数调用以及调用前的操作,由Linux的内核IO操作函数实现PCIE总线网卡中寄存器内容的读取。
实施例2
本实施例公开了一种PCIE总线网卡的寄存器写入方法,如图2所示,步骤如下:
步骤1、探测挂载在PCIE总线上的设备,供写入操作的选择;
步骤2、针对于被选择要进行写入操作的设备,提供该设备的设备信息,包括设备的物理地址信息;其中,要进行写入操作的设备指的是在PCIE总线网卡的寄存器对应该设备的配置空间中需要进行写入操作的设备,即写入操作是针对PCIE总线网卡的寄存器对应该设备的配置空间进行的。
步骤3、获取被选择要进行写入操作的设备对应的输入信息,包括输入的设备信息以及需要写入到PCIE总线网卡的寄存器的新值;并且检测上述输入的信息是否符合要求;在本实施例中,检测输入信息是否符合要求的方式可如下:检测输入信息是否包括规定的种类信息;规定的种类信息包括物理地址信息;或者规定的种类信息包括物理地址信息和写入的数据字节数信息。
若否,则再次获取被选择读取的设备对应的输入信息,直到获取到的输入信息符合要求,再调用系统内核的IO操作函数。
若是,则调用系统内核模块的IO操作函数,由IO操作函数根据上述输入的设备信息将新值写入到PCIE总线网卡的寄存器对应地址中。若输入信息中还包括写入的数据字节数Y,Y为定值,则在写入操作时,在寄存器将新值中Y字节数据写入。
在本实施例上述步骤3中,被选择写入操作的设备对应的输入设备信息由用户根据提供的设备信息通过人机交互界面直接输入或者也可以是从提供的设备信息中直接提取得到。
本实施例上述方法中,能够实现先在Linux用户空间实现对内核中寄存器写入操作函数的调用,最后由调用的操作函数实现寄存器的写入操作,满足了Linux平台为PCIE总线网卡编写调试驱动程序时需要向PCIE总线网卡的寄存器写入相应内容的需求。
本实施例还公开了一种计算设备,包括处理器以及用于存储处理器可执行程序的存储器,其特征在于:所述处理器执行存储器存储的程序时,实现上述本实施例的PCIE总线网卡的寄存器写入方法,如下:
探测挂载在PCIE总线上的设备,供写入操作的选择;
针对于被选择要进行写入操作的设备,提供该设备的设备信息,包括设备的物理地址信息。
获取被选择要进行写入的设备对应的输入信息,包括输入的设备信息以及需要写入到PCIE总线网卡的寄存器的新值;检测上述输入的信息是否符合要求;
若否,则重复步骤3;即重新获取输入信息,直到获取到的输入信息符合要求,然后调用系统内核模块的IO操作函数;
若是,则调用系统内核模块的IO操作函数,由IO操作函数根据上述输入的设备信息将新值写入到PCIE总线网卡的寄存器对应地址中。若输入信息中还包括写入的数据字节数Y,则在写入操作时,在寄存器将新值中Y字节数据写入。
在本实施例中,上述检测输入信息是否符合要求的方式可如下:检测输入信息是否包括规定的种类信息;规定的种类信息包括物理地址信息;或者规定的种类信息包括物理地址信息和写入的数据字节数信息。
在本实施例中,计算机设备存储器中存储的程序还执行读取和写入操作选择功能,当选择写入操作功能时,在探测挂载在PCIE总线上的设备后,执行本实施例上述的过程,实现对PCIE总线网卡的寄存器中写入操作。
本实施例中,计算设备可以是台式电脑、笔记本电脑、智能手机、PDA手持终端、平板电脑或其他具有处理器功能的终端设备。该计算设备中安装Linux系统,由Linux的用户空间执行上述内核的IO操作函数调用以及调用前的操作,由Linux的内核IO操作函数实现对PCIE总线网卡的寄存器的写入操作。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (4)

1.一种PCIE总线网卡的寄存器读取方法,其特征在于,步骤如下:
步骤S1、探测挂载在PCIE总线上的设备,供读取操作的选择;
步骤S2、针对于被选择要进行读取操作的设备,提供该设备的设备信息,包括设备的物理地址信息;要进行读取操作的设备指的是在PCIE总线网卡的寄存器对应该设备的配置空间中需要进行读取操作的设备,即读取操作是针对PCIE总线网卡的寄存器对应该设备的配置空间进行的;
步骤S3、获取被选择要进行读取操作的设备对应的输入信息,包括输入的设备信息;并且检测上述输入信息是否符合要求;
若是,则调用系统内核的IO操作函数,由IO操作函数根据上述输入的设备信息读取PCIE总线网卡的寄存器对应地址的内容;
步骤S3中调用系统内核的IO操作函数实现读取操作的过程如下:
步骤S31、IO操作函数通过虚拟地址映射将输入的设备信息中的物理地址转化为虚拟地址;所述物理地址包括物理的基地址和偏移地址,转换得到的虚拟地址包括虚拟的基地址和偏移地址;
步骤S32、IO操作函数利用虚拟地址中虚拟的基地址和偏移地址找到PCIE总线网卡的寄存器对应到虚拟内存的地址;
步骤S33、IO操作函数在步骤S32所找到的PCIE总线网卡的寄存器虚拟内存的地址中进行读取操作;
步骤S3中获取的输入信息还包括要读取的数据字节数X,X为定值;
步骤S3中,在检测到输入信息符合要求的情况下,调用系统内核的IO操作函数,由IO操作函数根据输入的设备信息读取PCIE总线网卡的寄存器对应地址中X字节的数据;
步骤S3中检测输入信息是否符合要求的方式如下:检测输入信息是否包括规定的种类信息;规定的种类信息包括物理地址信息;或者规定的种类信息包括物理地址信息和读取的数据字节数信息。
2.一种计算设备,包括处理器以及用于存储处理器可执行程序的存储器,其特征在于:所述处理器执行存储器存储的程序时,实现权利要求1中所述的PCIE总线网卡的寄存器读取方法。
3.一种PCIE总线网卡的寄存器写入方法,其特征在于,步骤如下:
步骤1、探测挂载在PCIE总线上的设备,供写入操作的选择;
步骤2、针对于被选择要进行写入操作的设备,提供该设备的设备信息,包括设备的物理地址信息;要进行写入操作的设备指的是在PCIE总线网卡的寄存器对应该设备的配置空间中需要进行写入操作的设备,即写入操作是针对PCIE总线网卡的寄存器对应该设备的配置空间进行的;
步骤3、获取被选择要进行写入操作的设备对应的输入信息,包括输入的设备信息以及需要写入到PCIE总线网卡的寄存器的新值;并且检测上述输入的信息是否符合要求;
若是,则调用系统内核模块的IO操作函数,由IO操作函数根据上述输入的设备信息将新值写入到PCIE总线网卡的寄存器对应地址中;
步骤S3中调用系统内核的IO操作函数实现写入操作的过程如下:
步骤31、IO操作函数通过虚拟地址映射将输入的设备信息中的物理地址转化为虚拟地址;所述物理地址包括物理的基地址和偏移地址,转换得到的虚拟地址包括虚拟的基地址和偏移地址
步骤32、IO操作函数利用虚拟地址中虚拟的基地址和偏移地址找到PCIE总线网卡的寄存器对应到虚拟内存的地址;
步骤33、IO操作函数在步骤32所找到的PCIE总线网卡的寄存器虚拟内存的地址中进行写入操作,即将输入信息中的写入内容写入;
步骤3中获取的输入的信息还包括要写入的数据字节数Y,Y为定值;
步骤3中,在检测到输入信息符合要求的情况下,调用系统内核的IO操作函数,由IO操作函数根据输入的设备信息将新值中Y字节数据写入到PCIE总线网卡的寄存器对应地址中;
步骤3中检测输入信息是否符合要求的方式如下:检测输入信息是否包括规定的种类信息;规定的种类信息包括物理地址信息;或者规定的种类信息包括物理地址信息和写入的数据字节数信息。
4.一种计算设备,包括处理器以及用于存储处理器可执行程序的存储器,其特征在于:所述处理器执行存储器存储的程序时,实现权利要求3中所述的PCIE总线网卡的寄存器写入方法。
CN201910467340.8A 2019-05-31 2019-05-31 Pcie总线网卡的寄存器读写方法和计算设备 Active CN110209605B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910467340.8A CN110209605B (zh) 2019-05-31 2019-05-31 Pcie总线网卡的寄存器读写方法和计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910467340.8A CN110209605B (zh) 2019-05-31 2019-05-31 Pcie总线网卡的寄存器读写方法和计算设备

Publications (2)

Publication Number Publication Date
CN110209605A CN110209605A (zh) 2019-09-06
CN110209605B true CN110209605B (zh) 2021-09-07

Family

ID=67789864

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910467340.8A Active CN110209605B (zh) 2019-05-31 2019-05-31 Pcie总线网卡的寄存器读写方法和计算设备

Country Status (1)

Country Link
CN (1) CN110209605B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112445729B (zh) * 2020-11-30 2024-04-16 深圳开立生物医疗科技股份有限公司 操作地址确定方法、PCIe系统、电子设备及存储介质
CN112463662B (zh) * 2020-12-16 2024-04-05 福州创实讯联信息技术有限公司 一种用户态控制i2c设备的方法与终端
CN116821026B (zh) * 2023-08-28 2023-11-24 麒麟软件有限公司 一种arm架构下的lpc总线转并口方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102866966A (zh) * 2012-08-28 2013-01-09 大唐移动通信设备有限公司 一种Linux操作系统的设备驱动控制方法和装置
CN104539632A (zh) * 2015-01-20 2015-04-22 中国人民解放军国防科学技术大学 一种基于虚拟地址空间的可编程网络设备管理控制方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106776382B (zh) * 2016-12-02 2020-03-17 北京东土军悦科技有限公司 一种pcie设备的配置方法及装置
US10521389B2 (en) * 2016-12-23 2019-12-31 Ati Technologies Ulc Method and apparatus for accessing non-volatile memory as byte addressable memory
CN108519947A (zh) * 2018-04-02 2018-09-11 郑州云海信息技术有限公司 一种Linux下读写寄存器的方法及工具

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102866966A (zh) * 2012-08-28 2013-01-09 大唐移动通信设备有限公司 一种Linux操作系统的设备驱动控制方法和装置
CN104539632A (zh) * 2015-01-20 2015-04-22 中国人民解放军国防科学技术大学 一种基于虚拟地址空间的可编程网络设备管理控制方法

Also Published As

Publication number Publication date
CN110209605A (zh) 2019-09-06

Similar Documents

Publication Publication Date Title
CN110209605B (zh) Pcie总线网卡的寄存器读写方法和计算设备
US10089212B2 (en) Memory system, information processing system, and host device outputting debugging information through a host interface
US20170242820A1 (en) Using a proprietary framework on a standards-based embedded device
US11074157B2 (en) Splicing screen debugging method, splicing screen and splicing wall
CN105426265B (zh) 具有虚拟装置的系统和装置以及控制虚拟装置的方法
CN114153779A (zh) 一种i2c通信方法、系统、设备、及存储介质
CN1963785A (zh) 软件测试系统和软件测试方法
CN113485672B (zh) 基于fifo存储器的信息生成方法、装置、设备及介质
CN111124985A (zh) 一种移动终端只读控制方法及装置
CN112417802B (zh) 一种模拟存储芯片的方法、系统、设备及存储介质
CN110765060B (zh) Mdio总线到并行总线转换方法及装置、设备、介质
CN111597137A (zh) 一种基于spi协议的动态调试方法、装置及系统
CN107908418B (zh) 光纤通道节点卡的逻辑程序升级方法及光纤通道总线设备
CN115878327A (zh) 总线预留方法、装置、服务器、电子设备和存储介质
KR20170079368A (ko) 디버그 정보를 수집하기 위한 디버그 로직을 포함하는 cpu 시스템, 이를 포함하는 컴퓨팅 시스템 및 이의 디버깅 방법
US11341076B2 (en) Hot-plugged PCIe device configuration system
CN114765051A (zh) 内存测试方法及装置、可读存储介质、电子设备
CN113031863A (zh) Ssd命令相关性管理方法、装置、计算机设备及存储介质
CN112000591A (zh) 可指定逻辑区块地址的扫描ssd方法、装置、计算机设备及存储介质
CN111726604A (zh) 工作模式数据的设置方法、装置、终端和可读存储介质
CN101562007A (zh) 可自动更新韧件的显示控制装置及其更新方法
CN111459867B (zh) 一种usb转smi方法、装置、转换器及存储介质
CN109032859A (zh) 一种nvme ssd逻辑块检测方法、系统及相关装置
CN113448867B (zh) 一种软件压力测试方法及装置
CN117436405B (zh) 一种仿真验证方法、装置及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant