当前位置: 首页 > news >正文

【PCIE配置空间】

1 PCIE配置空间

1.1 软件如何知道PCIE设备是Swith,RC还是EP?

–软件通过读取寄存器信息。

PCIE配置空间• PCIE寄存器;--PCIE配置协议规定必须实现的空间。--PCIE存在两种配置空间Type0/Type1;--Type0配置空间EP设备必须实现;--Type1配置空间RC/Switch设备必须实现;• PCIE配置空间具体大小 --1DW = 4Byte 

图–:
在这里插入图片描述

		• PCIE每个设备都有4KB的配置空间• 4KB配置空间前64DW(即256Byte)与PCI兼容保持一致;• 960DW为PCIE扩展寄存器空间;

PCIE兼容配置空间:

	1.PCIE兼容配置空间包含PCI Header--64Byte空间和Capability--192Byte空间;2.Header空间分为Type0和Type1两种:Type0配置空间EP设备必须实现;Type1配置空间RC/Switch设备必须实现;3.Capalitiy空间--以链表形式组织的扩展功能寄存器:能力寄存器空间,实现可选择实现的寄存器;但如下寄存器必须实现:PCIE Capality; Power Management; MSI/MSIX;4.能力寄存器采用链表结构;```c//==这是从0到大进行排列;Offset 0x40: | Cap ID (8b) | Next Ptr (8b) | Cap Data (16b) |  → 4字节对齐Offset 0x80: | Cap ID (8b) | Next Ptr (8b) | Cap Data (16b) |  → 下一个对齐项```ID:表示能力A寄存器的类型<什么寄存器>;Pointer表示下一个能力寄存器地址B_addr;其图如下所示:

在这里插入图片描述

例如:PCIE能力寄存器中的PM/MSI寄存器,软件如何进行获取呢?

		Steps:1.系统软件发起addr:0x34的读请求,访问PCI header Capalibity point寄存器(起始是固定的);2.系统软件读取addr:0x34 pointer:0x40,返回结果表示PCIE下一组寄存器的地址为0x40;3.系统软件发起addr:0x40的读请求;4.系统软件读取:addr:0x40, data:{0x50,0x1};ID:0x1表示类型为PM寄存器;Next Pointer: 0x50表示访问下一个能力寄存器的地址位0x50;5.系统软件再进一步读取0x50地址,读取数据{0x70,0x05};ID:0x5表示位MS寄存器;NextPointer: 0x70表示访问下一个能力寄存器的地址为0x70;6.通过查手册可知:取addr:0x54,0x55,0x56分别配置MSI中断地址和数据;0x54:表示Message lower address;  0x58: Message upper address;0xC0:表示Message data;

步骤图如下:
在这里插入图片描述

	 小结:链表是单链表结构,就是软件的数据结构,只能进行便来访问,不能通过index索引来访问;

相关文章:

【PCIE配置空间】

1 PCIE配置空间 1.1 软件如何知道PCIE设备是Swith&#xff0c;RC还是EP&#xff1f; –软件通过读取寄存器信息。 PCIE配置空间• PCIE寄存器&#xff1b;--PCIE配置协议规定必须实现的空间。--PCIE存在两种配置空间Type0/Type1;--Type0配置空间EP设备必须实现&#xff1b;-…...

Python爬虫实战:获取网易新闻数据

一、引言 随着互联网的飞速发展,网络上蕴含着海量的信息资源。新闻数据作为其中的重要组成部分,对于舆情分析、市场研究、信息传播等多个领域具有重要价值。网易新闻作为国内知名的新闻平台,拥有丰富多样的新闻内容。使用 Python 的 Scrapy 框架进行网易新闻数据的爬取,可…...

哲学家就餐问题(避免死锁)

解决方案&#xff1a; 策略&#xff1a;奇偶哲学家拿筷子顺序不同&#xff0c;破坏循环等待。 流程&#xff1a; 偶数哲学家先左后右。 奇数哲学家先右后左。 分析&#xff1a; 无死锁&#xff0c;哲学家交替进餐&#xff0c;不同拿筷顺序避免循环等待。 实验总结 遇到的…...

下采样(Downsampling)

目录 1. 下采样的定义与作用​​ ​​2. 常见下采样方法​​ ​​(1) 池化&#xff08;Pooling&#xff09;​​ ​​(2) 跨步卷积&#xff08;Strided Convolution&#xff09;​​ ​​(3) 空间金字塔池化&#xff08;SPP&#xff09;​​ ​​3. PyTorch 实现示例​​ …...

OrbisGIS:基于Java开发的开源GIS软件

大家好&#xff0c;今天为大家介绍的软件是OrbisGIS&#xff1a;一款基于JAVA开发的开源的地理信息系统软件。下面&#xff0c;我们将从软件的主要功能、支持的系统、软件官网等方面对其进行简单的介绍。 OrbisGIS官网网址为&#xff1a;http://orbisgis.org/&#xff0c;Orbis…...

linux socket编程之udp(实现客户端和服务端消息的发送和接收)

目录 一.创建socket套接字(服务器端) 二.bind将prot与端口号进行绑定(服务器端) 2.1填充sockaddr_in结构 2.2bind绑定端口 三.直接通信(服务器端) 3.1接收客户端发送的消息 3.2给客户端发送消息 四.客户端通信 4.1创建socket套接字 4.2客户端bind问题 4.3直接通信即可…...

八大排序之直接插入排序

今天我们来学习八大排序中的直接插入排序。话不多说&#xff0c;直接上动图。 直接插入排序的主要思想是&#xff1a;当数组只有一个元素的时候&#xff0c;我们可以认为该数组是有序的。所以我们可以选择一个元素放进数组&#xff08;一般为待排数据的第一个元素&#xff09;…...

二级评论列表-Java实现

二级评论列表是很常见的功能&#xff0c;文章记录了新手用Java实现的具体逻辑。 整体实现逻辑是先用2个sql&#xff0c;分别查出两层数据。然后用java在service中实现数据组装&#xff0c;返给前端。这种实现思路好处是SQL简洁&#xff0c;逻辑分明&#xff0c;便于维护。 一…...

如何基于区块链进行虚拟电厂运营平台建设?

本项目旨在基于区块链技术建设虚拟电厂运营平台&#xff0c;以提升省内大用户及工业企业和工业园区的需求响应能力&#xff0c;优化能源结构配置&#xff0c;并推动能源交易、需求响应和现货交易等新型业态的发展。通过建设虚拟电厂&#xff0c;项目将实现工业企业及园区各供用…...

大学英语四级选词填空练习题解析

一、引言 大学英语四级考试中的选词填空部分&#xff0c;一直是不少同学的 “拦路虎”。它不仅要求我们有扎实的词汇基础&#xff0c;还需要具备良好的语境分析能力。今天&#xff0c;我们就通过一道练习题来深入剖析这类题型的解题思路。 二、题目内容 Leisure activities …...

基于控制台的小车导航游戏开发详解(C++实现)

本文将详细讲解一个基于C控制台的小车导航游戏项目。通过该项目可以学习二维数组操作、队列数据结构应用以及游戏循环控制等核心编程概念&#xff0c;特别适合刚接触游戏开发的初学者学习。 一、项目概述 1.1 游戏规则 玩家可创建多辆具有不同初始位置和移动速度的小车 每辆…...

详讲Linux下进程等待

3.进程等待 引言&#xff1a;什么是进程等待 想象有两个小伙伴&#xff0c;一个是 “大强”&#xff08;父进程 &#xff09;&#xff0c;一个是 “小强”&#xff08;子进程 &#xff09;。大强给小强安排了任务&#xff0c;比如去收集一些石头。 …...

数字孪生火星探测车,星际探索可视化

运用图扑构建数字孪生火星探测车&#xff0c;高精度还原外观与内部构造。实时映射探测车在火星表面的移动、探测作业及设备状态&#xff0c;助力科研人员远程监测、分析数据&#xff0c;为火星探索任务提供可视化决策支持。...

《JVM考古现场(二十三):归零者·重启奇点的终极奥义》

目录 楔子&#xff1a;归零者文明觉醒 上卷十维弦理论破译 第一章&#xff1a;JVM弦论代码考古 第二章&#xff1a;超膜引用解析算法 第三章&#xff1a;量子真空涨落监控 中卷归零者心法实战 第四章&#xff1a;宇宙重启倒计时引擎 第五章&#xff1a;内存奇点锻造术 第…...

设计测试用例模板

面试时问你一个场景&#xff0c;要你设计测试用例&#xff0c;你会怎么回答&#xff1f; 面试官让你设计一个功能的测试用例&#xff0c;比如“上传文件功能”&#xff0c;其实就是想考你&#xff1a; 思维是否全面能不能抓住重点会不会分类和使用测试方法有没有考虑异常情况…...

java怎么找bug?Arthas原理与实战指南

Arthas原理与实战指南 1. Arthas简介 Arthas是阿里巴巴开源的Java诊断工具&#xff0c;其名字取自《魔兽世界》的人物阿尔萨斯。它面向线上问题定位&#xff0c;被广泛应用于性能分析、定位问题、安全审计等场景。Arthas的核心价值在于它能够在不修改应用代码、不重启Java进程…...

2024年国考

数学 一&#xff0c;逻辑符号表示&#xff08;3 分&#xff09; 1&#xff0c;只有获得奥运会资格的运动员才可以参加奥运会&#xff0c;参加奥运会的云动员不一定获奖。 设&#xff1a; ( Q(x) )&#xff1a;运动员 ( x ) 获得奥运会资格( P(x) )&#xff1a;运动员 ( x )…...

fastlio用mid360录制的bag包离线建图,提示消息类型错误

我用mid360录制的bag包&#xff0c;激光雷达的数据类型是sensor_msgs::PointCloud2&#xff0c;但是运行fast_lio中的mid360 launch文件&#xff0c;会报错&#xff08;没截图&#xff09;&#xff0c;显示无法从livox_ros_driver2::CustomMsg转换到sensor_msgs::PointCloud2。…...

015-C语言字符函数和字符串函数

C语言字符函数和字符串函数 文章目录 C语言字符函数和字符串函数1. 字符分类函数2. 字符转换函数3. strlen4. strcpy5. strcat6. strcmp7. strncpy8. strncat9. strncmp10. strstr11. strtok12. strerror 1. 字符分类函数 C语言中有一系列函数是专门做字符分类的&#xff0c;也…...

docker 搭建nacos 2.2.1版本单机版

通过docker-compose搭建 services:nacos:image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nacos/nacos-server:v2.2.1container_name: nacosenvironment:- PREFER_HOST_MODEhostname- MODEstandalone- NACOS_AUTH_ENABLEtrue- NACOS_AUTH_IDENTITY_KEYxiaogang- N…...

stack,queue和priority_queue

1. stack 1.1 stack 的介绍 栈是一种容器适配器&#xff0c;专门设计用于LIFO环境&#xff08;后进先出&#xff09;&#xff0c;其中元素仅从容器的一端插入和提取。 容器适配器&#xff0c;也就是使用特定容器类的封装对象作为其底层容器&#xff0c;提供一组特定的成员函…...

服务治理-搭建Nacos注册中心

运行nacos.sql文件。 将准备好的nacos目录和nacos.tar包上传。 192.168.59.101是我的虚拟机ip&#xff0c;8848是我们设置的访问端口号。...

《Operating System Concepts》阅读笔记:p738-p747

《Operating System Concepts》学习第 63 天&#xff0c;p738-p747 总结&#xff0c;总计 10 页。 一、技术总结 1.network structure local-area networks (LAN)、wide-area networks (WAN). 2.communication structure naming and name resolution、communication proto…...

【Datawhale AI春训营】Java选手初探数据竞赛

自然语言处理基础&#xff1a; 自然语言处理(Natural Language Processing&#xff0c;NLP) 是计算机科学与人工智能领域中的一个极具挑战性和应用前景的研究方向。 它旨在使计算机能够理解、生成和处理人类的自然语言&#xff0c;从而实现人机高效交互。 NLP技术在搜索引擎、…...

React-useRef

如果我们想在hooks里面获同步取最新的值&#xff0c;那么则可以使用useRef, 关键源码如下&#xff1a; function mountRef<T>(initialValue: T): {|current: T|} {const hook mountWorkInProgressHook();const ref {current: initialValue};hook.memoizedState ref;re…...

得物官网sign签名逆向分析

打开得物官网&#xff0c;点击鞋类&#xff0c;可以看到请求 直接搜sign function p(e) {return f()("".concat(e ? s()(e).sort().reduce(function(t, n) {return "".concat(t).concat(n).concat(e[n])}, "") : "", "048a9…...

网络爬虫和前端相关知识

一 爬虫发展历史,概念与反爬机制 (一)爬虫发展历史 早期爬虫(1990s)起源 :早期的爬虫主要是为了构建搜索引擎。典型案例: Yahoo!人工目录 → 谷歌PageRank算法驱动的自动化爬虫。功能特点 :这些爬虫的功能比较单一,主要以抓取网页的文本内容为主,采用简单的广度优先…...

山东科技大学人工智能原理考试回忆复习资料

全部资料&#xff1a;https://mbd.pub/o/around_01 考试回忆版 简答题 人工智能定义 图灵测试基本思想 人工智能主要研究领域写八个以上 专家系统是什么及其特点 遗传算法流程图 综合题 语义网络表示 书上习题 证明S不满足性 用归结原理求问题 谁说真话假话的 书上例题…...

单元测试的一般步骤

Qt Test Qt Test 是 Qt 开发人员发布的一个单元测试框架&#xff0c;用于测试基于 Qt 框架的应用程序或库。它提供了单元测试框架中常见的所有功能以及用于测试图形用户界面的扩展。 1.自动化测试包络ui测试>接口测试>单元测试&#xff1b;现问如何使用Qt进行单元测试&…...

c++题目_P1443 马的遍历

P1443 马的遍历 # P1443 马的遍历 ## 题目描述 有一个 $n \times m$ 的棋盘&#xff0c;在某个点 $(x, y)$ 上有一个马&#xff0c;要求你计算出马到达棋盘上任意一个点最少要走几步。 ## 输入格式 输入只有一行四个整数&#xff0c;分别为 $n, m, x, y$。 ## 输出格式 …...

并发网路通信-套接字通信

套接字通信就是网络通信 在网络通信时,客户端和服务器的比例是N:1 服务器如何处理多个客户端的请求 并发处理方式 1.多线程并发处理->线程池并发处理,线程池可以对多个线程进行管理 2.多进程->进程池 3.io多路转接,使用select或者epoch进行处理,使用io转接函数…...

STM32N6如何调试下载代码

关键词&#xff1a;STM32N6、调试代码、开发者模式、外部Flash模式 文章目录 前言一、开发者模式调试1.1 CubeIDE调试1.2 IAR调试 二、如何下载代码&#xff08;外部FLASH模式&#xff09;2.1 准备工作2.2 编译下载2.2.1 Appli编译头文件下载2.2.2 FSBL编译头文件下载 2.3 运行…...

【2025】Datawhale AI春训营-蛋白质预测(AI+生命科学)-Task2笔记

【2025】Datawhale AI春训营-蛋白质预测&#xff08;AI生命科学&#xff09;-Task2笔记 本文对Task2使用的代码进行理解。 任务描述 Task2的任务仍然是通过对反应中包含的蛋白质残基信息&#xff0c;运用深度学习模型构建蛋白质3D结构的隐式模型&#xff0c;从而达成准确预测…...

Python基于知识图谱的医疗问答系统【附源码、文档说明】

博主介绍&#xff1a;✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&…...

Unreal 从入门到进阶 之 如何实现Pixel Streaming

文章目录 前言核心概念工作原理主要应用场景Pixel Streaming和Pixel Streaming2部署准备编辑器推流打包推流最后前言 Unreal Engine 5 (UE5) 的 Pixel Streaming 是一项基于云端的实时流媒体技术,允许将 UE5 应用的高质量图形渲染结果通过 WebRTC 协议传输到用户的浏览器或轻…...

作业2 CNN实现手写数字识别

# 导入必要库 import numpy as np import matplotlib.pyplot as plt import seaborn as sns # 用于高级可视化 from tensorflow import keras from tensorflow.keras import layers from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay import time # 用于…...

Linux驱动开发--阻塞、非阻塞I/O

2. 阻塞、非阻塞I/O IO 指的是 Input/Output&#xff0c;也就是输入/输出&#xff0c;是应用程序对驱动设备的输入/输出操作。当应用程序对设备驱动进行操作的时候&#xff0c;如果不能获取到设备资源&#xff0c;那么阻塞式 IO 就会将应用程序对应的线程挂起&#xff0c;直到…...

运筹学之模拟退火

目录 一、历史二、精髓思想三、案例与代码实现 一、历史 问&#xff1a;谁在什么时候提出模拟退火&#xff1f;答&#xff1a;模拟退火算法&#xff08;Simulated Annealing&#xff0c;SA&#xff09;是由斯图尔特柯尔斯基&#xff08;Scott Kirkpatrick&#xff09; 等人在 …...

JavaScript 的演变:2023-2025 年的新特性解析

随着Web技术的飞速发展&#xff0c;ECMAScript&#xff08;简称ES&#xff09;作为JavaScript的语言标准&#xff0c;也在不断进化。 本文将带你学习 ECMAScript 2023-2025 的新特性。 一、ECMAScript 2023 新特性 1.1 数组的扩展 Array.prototype.findLast()/Array.protot…...

CSS继承

CSS继承 CSS继承是一种机制&#xff0c;允许子元素自动继承父元素的某些样式属性&#xff0c;从而减少重复代码。 以下是一些常见的具有继承性的CSS属性&#xff1a; color : 文字颜色 font-family &#xff1a; 字体族名称 font-size &#xff1a; 字体大小 font-weight &am…...

游戏引擎学习第236天:GPU 概念概述

回顾并展望通过视频采集卡进行流媒体传输的未来 昨天&#xff0c;我们迈出了大胆的一步&#xff0c;决定初始化硬件的 3D 加速&#xff0c;因为我有点厌倦了我们的游戏没有垂直同步&#xff08;vsync&#xff09;。如今&#xff0c;在 Windows 上&#xff0c;我找不到一种可靠…...

HFSS3(limy)——建模学习记录

前言——笔者使用的是21版HFSS 1.基本模型 为什么没有环形的天线 2.创建基本模型方法 常用&#xff1a;先粗略建好模型再编辑输入准确坐标和大小尺寸&#xff08;这里长方体起始点是左上角下方的点&#xff0c;也就是说要输入模型起点相对于坐标原点的位置尺寸就可以确定具体…...

php实现zip压缩

可以使用ZipArchive类来创建ZIP压缩文件。ZipArchive是PHP内置的一个类&#xff0c;提供了创建、打开、读取、写入和关闭ZIP文件的功能。 示例&#xff1a;压缩单个文件 <?php$fileToZip path/to/your/file.txt; $zipFileName compressed.zip;$zip new ZipArchive(); …...

【STM32单片机】#10 USART串口通信

主要参考学习资料&#xff1a; B站江协科技 STM32入门教程-2023版 细致讲解 中文字幕 开发资料下载链接&#xff1a;https://pan.baidu.com/s/1h_UjuQKDX9IpP-U1Effbsw?pwddspb 单片机套装&#xff1a;STM32F103C8T6开发板单片机C6T6核心板 实验板最小系统板套件科协 实验&…...

goc命令大全

颜色0黑1红2蓝3浅绿4浅蓝5淡黄6棕7深蓝8灰9粉10深绿11紫12蓝绿13黄14橙15白 绘图命令功能pen笔.fd()前进.rt()右转.c()颜色.up()抬笔.o(,)圆.e(,)椭圆.r(,,)长方形.picL(,)调图片.text(,,)文字.hide()隐藏.moveTo(,)移动wait();等待.soundL()调声音pause();暂停 绘图命令功能…...

Linux | 软件仓库管理

一. 软件包 1.1 软件包的分类 DEB&#xff1a;主要用于基于 Debian 的系统&#xff0c;如 Ubuntu。这种软件包格式具有良好的依赖管理机制&#xff0c;方便用户安装、升级和卸载软件。RPM&#xff1a;广泛应用于 Red Hat、CentOS、Fedora 等系统。RPM 包将软件打包成一个文件…...

Python实现对目标Word文档进行自动化排版【4万字精讲】(14)

前言 本文是该专栏的第14篇,后面会持续分享Python办公自动化干货知识,记得关注。 注意:本文涵盖4万字以及实战操作代码的精讲攻略,带你轻松掌握一键式“文档自动化排版”程序功能。 如果说当你在工作项目中,遇到这样的需求,需要如何处理——假设,现在有大批量的docx格…...

LeetCode每日一题4.19

2563. 统计公平数对的数目 题目 问题分析 输入&#xff1a;一个整数数组 nums 和两个整数 lower 和 upper。 输出&#xff1a;返回满足条件的公平数对的数目&#xff0c;即对于所有 0 < i < j < n&#xff0c;lower < nums[i] nums[j] < upper 的数对 (i, j)…...

Spring AI 开发 - 快速入门

先看效果 项目搭建 Spring AI 是 Spring 推出的一个项目&#xff0c;目标是提供统一的API抽象层&#xff0c;屏蔽不同AI模型和服务的底层差异&#xff0c;实现跨平台兼容性。 演示使用的模型是阿里的 qwq-32b。 环境要求&#xff1a; JDK &#xff1a;17以上&#xff08;包括…...

leetcode哈希表(六)-三数相加

题目 15. 三数之和 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复…...