飞飞学飞的个人空间 https://blog.eetop.cn/1585176 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

PCIe 调试工具-Pcimem

已有 158 次阅读| 2025-6-19 07:55 |个人分类:PCIe每日一问|系统分类:芯片设计| PCIe, Linux, x86

此文章摘抄自微信公众号"芯塾科技",如有侵权,请联系删除,谢谢!

1.png


1.PCIe每日一问简介

1.文章坚持实际工作中有所帮助---实际工作中遇到问题可查阅。

2.章节内容规划具有连贯性。lspci-setpci-PCIe Configuration Space--next。

3.文章以文字和视频形式发布,建议大家视频和文章结合查阅。

4.视频发布:公众号、B站、抖音,搜寻“芯塾科技”可观看。

5.文章发布: 公众号、CSDN、知乎、B站,搜寻“芯塾科技”可浏览。


2.Pcimem介绍 

1.系统启动BIOS阶段已初始化PCIe设备,也就是在系统空间分配了PCIe BAR以及ECAM(Enhanced Config Access Mechanism)

2.获取PCIe设备在cpu系统地址空间的Mem/IO地址,原则上就可通过地址访问PCIe设备,但是Linux采用虚拟地址空间,因此用户空间还不能通过物理地址直接访问PCIe设备。

3.Pcimem 是一个用于在 Linux 用户空间直接读写 PCI/PCIe 设备内存映射(MMIO)区域的工具。

4.Pcimem通过操作 /dev/mem 设备文件,将物理地址映射到用户空间,允许开发者或调试人员直接访问硬件资源如寄存器,而无需编写内核驱动

5.linux  /dev/mem 是一个特殊的字符设备文件提供对计算机物理内存(RAM 和内存映射的硬件寄存器)访问权限。通过该设备文件,用户程序可以读写物理地址空间中的任意位置

6.运行 pcimem 通常需要root权限,因为它涉及到直接操作硬件资源

7.版本获取

2.png8.Pcimem format

3.png

4.png

3.Pcimem访问PCIe设备Bar空间 

1.Method1

 通过lspci获取访问设备的总线号:设备号.功能号信息。

 /sys/device/pcixxx/查找到对应设备总线号:设备号.功能号的resource info。

 如下所示。

5.png
2.Method2

   通过lspci获取访问设备的Bar地址。

   Pcimem输入Bar Addr+offset即可访问对应的Bar空间内容。

   如下所示。

6.png


4.Pcimem访问PCIe configuration空间 

1.PCIe 设备的配置空间通过ECAM(Enhanced Configuration Access Mechanism) 映射到内存地址,需要结合总线号(Bus)、设备号(Device)、功能号(Function)和寄存器偏移(Offset)计算目标地址。

2.确定ECAM基地址

7.png3.计算目标PCIe设备ECAM地址,根据总线号:设备号.功能号

8.png4.访问configuration空间,vendor id/device id

9.png

---------------------------------------------------------

---------------------------------------------------------

文章坚持-工作中查阅可解决实际问题

您的点赞-收藏-转发-评论是我们坚持原创的动力

欢迎关注微信公众号"芯塾科技"

视频发布平台:B站/公众号/抖音,可搜索"芯塾科技"观看

微信搜索:Xinshu Technology, 加入芯塾科技技术交流群



点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 12

    月排名
  • 0

    总排名
  • 0

    关注
  • 2

    粉丝
  • 0

    好友
  • 0

    获赞
  • 0

    评论
  • 144

    访问数
关闭

站长推荐 上一条 /2 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-6-20 12:58 , Processed in 0.016477 second(s), 8 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部