PCIe 资料收集2
文章目录
- 感官认识
- PCIe的存储空间
- PCIe 在 linux 下的驱动
- PCIe 验证
- 1.PCIe 传递裸数据
- 2.PCIe 转其他设备
- PCIe转其他总线
- RS232
- USB
- 从用户空间理解PCIe
感官认识
- 总线协议接口 视频介绍
- PCIe 视频介绍及PCIe文字介绍
PCIe上可以接各种控制器硬盘控制器+硬盘声卡控制器+音响咪头/耳机显卡USB控制器RS232
PCIe的存储空间
https://zhuanlan.zhihu.com/p/612366598
https://blog.csdn.net/yeiris/article/details/126633678
https://blog.csdn.net/yeiris/article/details/126694729
- PCIe 控制器寄存器所在地址
Memory Address Space访问方式:MMIO
- PCIe 插槽上插入的设备的信息所在地址
访问方式: 不同的 PCIe控制器对应的 驱动 中定义的 struct pci_ops 中的 read 和 write对于pci-j721e.c 来说 , 是 readl 和 writel对于x86相关的pcie来说? 是 inl 和 outlConfiguration Address Space的大小为:256 Bytes/function x 8 functions/device x 32 devices/bus x 256 buses/system = 16MB。每个 function(256字节) 的空间分布每一个PCI功能(Function)都包含256个字节的配置空间(Configuration Space)前64个字节被称为HeaderPCI Spec规定了两种类型的Header:Type1 和 Type0Type0 Header表示该PCI设备功能 不是桥Type1 Header表示该PCI设备功能 是桥(Bridge)后192个字节用于 function-specific
- PCIe 插槽上插入的设备上的寄存器空间
BAR存储了大小和属性BAR寄存器在PCIe配置空间里面,一个PCIe设备
可能有若干个内部空间(最多6个)需要映射到主机memory地址空间,
设备出厂时,这些空间的大小和属性都写在
PCIe 在 linux 下的驱动
-
【原创】Linux PCI驱动框架分析(一)
-
【原创】Linux PCI驱动框架分析(二)
-
【原创】Linux PCI驱动框架分析(三)
-
PCIe 专栏1
PCIe 验证
- PCIe 2.0 验证
- PCIe 与 AMBA 兼容
- PCIe 总线
1.PCIe 传递裸数据
2.PCIe 转其他设备
如果转 xhci(USB3.0)
如果PCIe已经处理好BAR,那么在软件上
只需要 处理 xhci 的寄存器空间即可?
PCIe转其他总线
RS232
- CH382
- 代码
USB
-
VL805
-
VL805裸机
-
μPD720202K8
从用户空间理解PCIe
# lspci
00:00.0 PCI bridge: Texas Instruments Device b01000:00.0 表示含义为 <bus number>:<device number>.<function number>bus number : 8bits 最多连接到 256 个bus
device number : 6bits 最多连接到 32 种装置
function number : 3bits 最多每种装置有 8 种功能
0100: 1000:0056 表示含义为 Class ID: Vendor ID Device ID
参数说明
查看所有pci设备
lspci
查看指定的pci设备信息(VID&PID)
lspci -s 02:03.0 -n
查看指定的pci设备信息(前64)
lspci -s 02:03.0 -x
查看指定的pci设备信息(前256)
lspci -s 02:03.0 -xxx
查看指定的pci设备信息(前4096)
lspci -s 02:03.0 -xxxx
相关文章:
PCIe 资料收集2
文章目录感官认识PCIe的存储空间PCIe 在 linux 下的驱动PCIe 验证1.PCIe 传递裸数据2.PCIe 转其他设备PCIe转其他总线RS232USB从用户空间理解PCIe感官认识 总线协议接口 视频介绍PCIe 视频介绍及PCIe文字介绍 PCIe上可以接各种控制器硬盘控制器硬盘声卡控制器音响咪头/耳机显…...
Linux网络编程(使用VScode远程登录ubuntu)
文章目录 前言一、SSH插件的安装1.SSH简单介绍2.SSH插件安装和配置步骤二、安装C/C++插件总结前言 本篇文章将带大家进行网络编程的准备工作,使用vscode进行远程登录ubuntu。为什么要使用vscode进行远程登录ubantu呢?因为有些小伙伴的电脑可能性能不够开启虚拟机后会导致电脑…...
如何提高项目估算精准度?关键看5大影响因子
如何让项目估算工作更加精准,我们需要重点关注5大调整因子。 1、功能点调整因子 首先需要对功能点因子进行调整,区分不同类型的系统特征值。 因为不同的系统,对项目开发的影响程度不同,一般我们把系统特征值分为14种类型ÿ…...
论文阅读笔记《Nctr: Neighborhood Consensus Transformer for Feature Matching》
核心思想 本文提出一种融合邻域一致性的Transfomer结构来实现特征点的匹配(NCTR)。整个的实现流程和思想与SuperGlue相似,改进点在于考虑到了邻域一致性。邻域一致性在许多的传统图像匹配和图匹配任务中都有应用,他基于一个很重要…...
上位机系统Ubuntu 20.04与下位机arduino UNO通讯
目录一、安装arduino IDE1.1安装方法1.1.1终端里命令下载(不推荐)1.1.2官网下载(不推荐)1.1.3论坛下载(不推荐)1.1.4系统应用商店(推荐!)1.2配置项目文件位置1.3测试IDE功…...
hive面试题
1、什么是Hive Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能(HQL) 2、Hive的意义(最初研发的原因) 避免了去写MapReduce,提供快速开发的…...
【CUDA】《CUDA编程:基础与实践》CUDA加速的关键因素
CUDA事件计时 CUDA提供了一种基于CUDA事件(CUDA event)的计时方式,可用来给一段CUDA代码(可能包含主机代码和设备代码)计时。 对计时器的封装: class CUDATimeCost { public:void start() {elapsed_time_ 0.0;// 初始化cudaEventcheckCudaRuntime(cud…...
数据结构【Golang实现】(四)——双向循环链表
目录0. 定义节点1. IsEmpty()2. Length()3. AddFromHead()4. AddFromTail()5. Insert()6. DeleteHead()7. DeleteTail()8. Remove()9. RemoveByValue()10. Contain()11. Traverse()0. 定义节点 type DLNode struct {Data anyPrev, Next *DLNode }// DoublyLoopLinkedLis…...
【Redis】高可用架构之哨兵模式 - Sentinel
Redis 高可用架构之哨兵模式 - Sentinel1. 前言2. Redis Sentinel 哨兵集群搭建2.1 一主两从2.2 三个哨兵3. Redis Sentinel 原理剖析3.1 什么哨兵模式3.2 哨兵机制的主要任务3.2.1 监控(1)每1s发送一次 PING 命令(2)PING 命令的回…...
图片的美白与美化
博主简介 博主是一名大二学生,主攻人工智能研究。感谢让我们在CSDN相遇,博主致力于在这里分享关于人工智能,c,Python,爬虫等方面知识的分享。 如果有需要的小伙伴可以关注博主,博主会继续更新的,…...
面试官:关于CPU你了解多少?
CPU是如何执行程序的? 程序执行的基本过程 第一步,CPU 读取「程序计数器」的值,这个值是指令的内存地址,然后 CPU 的「控制单元」操作「地址总线」指定需要访问的内存地址,接着通知内存设备准备数据,数据准…...
UI自动化测试-Selenium的使用
文章目录 1. 环境搭建1.1 入门示例1.2 元素操作常用方法1.3 浏览器操作常用方法1.4 获取元素信息常用方法1.5 鼠标操作常用方法1.6 键盘操作常用方法1.7 下拉选择框操作2. 元素定位2.1 id定位2.2 name定位2.3 class_name定位2.4 tag_name定位2.5 link_text定位2.6 partail_link…...
嵌入式学习笔记——STM32的USART相关寄存器介绍及其配置
文章目录前言USART的相关寄存器介绍状态寄存器:USARTX->SR具体位代表的含义实际代码数据寄存器 USARTX->DR波特率寄存器 USARTX->BRR控制寄存器 (USART_CR)控制寄存器1(USART_CR1)控制寄存器2(USART_CR2)GPIO…...
Android setContentView流程分析(一)
对于做Android App的小伙伴来说setContentView这个方法再熟悉不过了,那么有多少小伙伴知道它的调用到底做了多少事情呢?下面就让我们来看看它背后的故事吧? setContentView()方法将分为两节来讲: 第一节:如何获取De…...
doris数据库操作数字遇到的问题
关于doris数据库Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。…...
3.13文件的IO操作
一.文件1.定义文件一般指的是存储在硬盘上的普通文件形如:txt.jpg.mp4,rar等这些文件在计算机中,文件可能是一个广义的概念,不仅可以包含普通文件,还可以包含目录(也就是文件夹.把目录称为目录文件)在操作系统中,还会用文件来描述一些其他的硬件设备或者软件资源比如网卡,显示器…...
ffmpeg使用
1 下载FFmpeg安装 官网地址:https://www.ffmpeg.org/download.html#build-windows 进入网址,点击下面红框部分 点击下面范围进行下载,下载速度有点慢,等等吧! 下载成功后,解压后,复制bin的路…...
spark中的并行度(分区数)/分区器如何确定
源头RDD有自己的分区计算逻辑,一般没有分区器,并行度是根据分区算法自动计算的,RDD的compute函数中记录了数据如何而来,如何分区的hadoopRDD,根据XxxinputFormat.getInputSplits()来决定,比如默认的TextInputFormat将文…...
00后女生“云摆摊”两周赚1.5万,实体店转战线上真的能赚钱吗?
最近,山东临沂的00后女生利用小程序在线上“云摆摊”卖水果,两周赚1.5万,引发网友热议。不少人发出质疑的声音:年轻人不要有稳定的工作不做,去摆摊;网上开店成本低,开实体店结果就难说了&#x…...
华为OD机试题 - 最优资源分配(JavaScript)| 机考必刷
更多题库,搜索引擎搜 梦想橡皮擦华为OD 👑👑👑 更多华为OD题库,搜 梦想橡皮擦 华为OD 👑👑👑 更多华为机考题库,搜 梦想橡皮擦华为OD 👑👑👑 华为OD机试题 最近更新的博客使用说明本篇题解:最优资源分配题目输入输出描述备注示例一输入输出说明示例二输入…...
利用python判断字符串是否为回文
1 问题 如何用python判断字符串是否为回文。 2 方法 用两个变量left,right模仿指针(一个指向第一个字符,一个指向最后一个字符),每比对成功一次,left向右移动一位,right向左移动一位,…...
GDB 调用之ptype、set variable
今天在公司的时候,排查一个问题,创建l3 lif 失败,查看各种日志发现是用key去创建的 lif失败了,日志里指示key为空,导致的创建失败。原因为一个结构体比基线的多了一些东西,导致版本不对,既而计算…...
并发编程---阻塞队列(五)
阻塞队列一 阻塞队列1.1.阻塞队列概念1.2.阻塞队列API案例1.2.1. ArrayBlockingQueue1.2.1.1.抛出异常1.2.1.2.返回布尔1.2.1.3.阻塞1.2.1.4.超时1.2.2.SynchronousQueue二 阻塞队列应用---生产者消费者2.1.传统模式案例代码结果案例问题---防止虚假唤醒2.2.⽣产者消费者防⽌虚…...
本科课程【计算机组成原理】实验1 - 输出ABCD程序的生成
大家好,我是【1+1=王】, 热爱java的计算机(人工智能)渣硕研究生在读。 如果你也对java、人工智能等技术感兴趣,欢迎关注,抱团交流进大厂!!! Good better best, never let it rest, until good is better, and better best. 近期会把自己本科阶段的一些课程设计、实验报…...
Java并发编程(2) —— 线程创建的方式与原理
一、Java线程创建的三种方式 1. 继承Thread类并重写run()方法 ///方法一:使用匿名内部类重写Thread的run()方法Thread t1 new Thread() {Overridepublic void run() {try {sleep(10000);} catch (InterruptedException e) {e.printStackTrace();}log.debug("…...
你写的js性能有多差你知道吗 | js性能优化
性能的计算⽅式 确认⾃⼰需要关注的指标 常⻅的指标有: ⻚⾯总加载时间 load⾸屏时间⽩屏时间 代码 尝试⽤⼀个指令, 挂载在重要元素上, 当此元素inserted就上报 各个属性所代表的含义 connectStart, connectEnd 分别代表TCP建⽴连接和连接成功的时间节点。如果浏…...
线程的状态、状态之间的相互转换
目录 一、线程的状态 1. NEW 2. TERMINATED 3. RUNNABLE 4. TIMED_WAITING 5. BLOCKED 6. WAITING 二、线程状态转换 1. 线程状态转换简图 一、线程的状态 线程的状态一共有 6 种: NEW:安排了工作,还未开始行动(调用 st…...
Java8使用Lambda表达式(流式)快速实现List转map 、分组、过滤等操作
利用java8新特性,可以用简洁高效的代码来实现一些数据处理。1 数据准备1.1 定义1个Fruit对象package com.wkf.workrecord.work;import org.junit.Test;import java.math.BigDecimal; import java.util.ArrayList; import java.util.List;/*** author wuKeFan* date …...
C++之深浅拷贝
一、浅拷贝 我们看下以下代码 Test.h 文件 #pragma once #include<iostream> using namespace std; class Student { public:Student(){}~Student(){if (m_Id ! nullptr){delete m_Id;m_Id nullptr;}}Student(int id, string strName){m_Id new int[id];m_strName s…...
CoreLocation的一切
Overview 概述 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pgnvehxf-1678717852996)(./blog_cover.png)] Core Location 提供的服务可以确定设备的地理位置、高度和方向,或者它相对于附近 iBeacon 设备的位置。 该框架使用设备上的所…...
工地木模板多少钱一张/江苏网站seo营销模板
php下载文件内容乱码的解决办法:1、通过“ob_clean()”函数清空输出缓冲区内容;2、通过“flush()”函数刷新PHP程序的缓冲即可。本文操作环境:Windows7系统、PHP7.1、Dell G3电脑。php 文件下载 出现下载文件内容乱码损坏的解决方法在做PHP程…...
深圳网站维护有限公司/深圳百度推广代理
平常下载东西或者玩游戏,都分电信和联通区,当然选自己的供应商所在的网络.确实会下载东西快一点或者玩游戏不卡,但一直没有太直观的了解,今天偶然间访问一个网站(http://51CTO提醒您,请勿滥发广告!/bbs/),这个网站有电信和联通的服务器,ip如下: 电信主服务器的ip是&…...
个人做网站时不要做什么样的网站/seo接单
批量/下一次插入时图片都变成了设置好的水印1. 输入一张图片2.选择图片--点左侧的“高级”—水印 --输入你要设置的信息—点 “确定 ”3.在选中图片的同时,返回“图片”,记得: 点“保存为默认设置” ---下一次插入图片时,图片大小…...
澳门公交乘车码怎么弄/企业优化推广
欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是学习语法,熟悉if else条件语句。条件语句主要格式一般有3种:if、if…else、if…else if…else1、if 语法格式:if(表达式){//如果表达式结果为true &…...
国家补贴软件网站开发政策/哪个公司做网站推广最好
此检查next_day不在mcal.get_calendar(NYSE)中。valid_days(start_date2000-12-20, end_date2020-01-10)非常耗时,因为它需要从7000天的数组中查找。你需要对每一个操作都这样做,所以我认为这是效率低下的主要原因。 您可以通过转换mcal.get_…...
佛山哪个做网站的好/广州白云区疫情实时动态
单例模式:必考 1 # 设计模式: 单例模式. 最简单的设计模式. 面试必考,默写.2 # 单例模式: 对一个类是能实例化一个对象.3 4 class A:5 __instance None6 def __new__(cls, *args, **kwargs):7 if A.__instance is None: #初次进入满足该条件8 obj…...