嵌入式开发之PCIE枚举问题及分析

本文总结了PCI Express(PCIe)设备在系统枚举过程中可能遇到的问题及其分析,包括枚举流程、硬件时序、启动问题、时序约束和配置文件优化等。针对FPGA在PCIe应用中的常见问题,提供了详细的解决策略,旨在帮助开发者理解和解决PCIe枚举失败的难题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在接触PCIe接口的这两年当中,遇到了很多关于PCIe启动的问题,做了一个汇总,以加固自己的认识和了解,也希望可以帮助其他新入门的同学,少走弯路。

首先,第一步,先介绍一下PCIe的枚举过程(关于PCIe的路由,架构等知识不在本文中进行介绍,请查阅相关资料)

在系统上电或者Reset之后,设备会有一个初始化的过程,这个过程中设备的寄存器都是无意义的,当初始化之后,所有寄存器数据稳定并且有意义。这是才可以进行Configuration和设备的枚举。

如图,在系统初始化时,只有RC被硬编码为bus0,枚举过程将从bus0 开始。

再次还要介绍两个概念,PCie设备中有Device ID和Vendor ID,它们都是硬编码在芯片当中,不同的设备有着不同的ID,其中值FFFFh保留 ,任何设备不能使用。当RC发出一个Configuration读请求时,如果返回的不是FFFFh,那么系统就认为存在这样的设备,如果返回的为FFFFh那么系统就认为不存在这个设备。

枚举程序将要探测Bus

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

第二层皮-合肥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值