软件开发概述

PCIe软件开发涉及多个层次,从固件层的BIOS/UEFI初始化,到操作系统内核的设备驱动,再到用户空间的应用程序。在开始学习之前,请务必明确你的开发方向(参见架构概览)。

重要提示

本页面已拆分为三个独立的子页面,分别对应 PCIe 的三大开发方向。请根据你的目标选择对应页面。

用户应用程序 设备控制、数据处理
内核驱动 设备枚举、资源管理、中断处理
PCI子系统 总线枚举、资源分配、热插拔
固件 (BIOS/UEFI) 平台初始化、ACPI配置

三大开发方向

PCIe软件开发按运行位置和职责分为三个方向,点击下方卡片进入对应详细页面:

三大方向对比

维度 设备驱动 RC控制器驱动 EP控制器驱动
运行位置 RC 侧内核 RC 侧内核 EP 设备
主要职责 驱动 EP 设备 初始化 RC 硬件 配置 EP 控制器
典型场景 NVMe/网卡/GPU 驱动 SoC 芯片移植 FPGA 加速卡固件
核心 API pci_register_driver devm_pci_alloc_host_bridge pci_epc_write_header
源码目录 drivers/*/ drivers/pci/controller/ drivers/pci/endpoint/
人才需求 最广泛 SoC/芯片厂商 FPGA/嵌入式