首页
›
Linux内核与驱动
›
002-驱动开发实战
›
《PCIe驱动开发实战:设备枚举与BAR空间映射》
VIP10
本课程属于:002-驱动开发实战
Linux内核与驱动 · 共 10 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
PCIe驱动开发实战:设备枚举与BAR空间映射
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
PCIe概述
PCIe总线的发展历史 · PCIe与PCI/PCI-X的区别 · PCIe的拓扑结构(根复合体
PCIe
总线的发展历史
02
PCIe体系结构
分层架构(事务层 · 数据链路层 · 物理层)
PCIe
体系结构
03
PCIe配置空间
配置空间布局(前256字节标准头 · 扩展配置空间) · Capability结构
PCIe
配置空间
04
设备枚举原理
总线号 · 设备号 · 功能号(BDF)的编码规则
设备枚举原理
总线号
05
Linux PCI子系统架构
pci_bus/pci_dev数据结… · pci_driver/pci_dev… · 驱动注册与注销流程
Linux
PCI
06
内核PCI API入门
pci_get_device/pci… · pci_read_config_by… · pci_write_config_b…
PCI
API
07
设备枚举实战(一)
编写内核模块遍历所有PCI设备 · 打印BDF · Vendor ID
设备枚举实战
PCI
08
设备枚举实战(二)
根据Vendor ID/Device… · 获取设备Class Code和子系统…
设备枚举实战
Vendor
09
设备枚举实战(三)
遍历PCIe扩展Capability… · 解析Advanced Error R…
设备枚举实战
PCIe
10
BAR空间基础
BAR寄存器的格式与类型(Memor… · I/O BAR) · BAR地址对齐与大小计算
BAR
空间基础
11
BAR空间映射原理
物理地址到内核虚拟地址的映射(ior… · 用户空间映射(mmap)
BAR
空间映射原理
12
Linux内存管理相关API
ioremap/iounmap · request_mem_region… · devm_ioremap_resou…
Linux
API
13
BAR空间映射实战(一)
获取设备的BAR0物理地址和大小 · 请求内存区域并ioremap
BAR
空间映射实战
14
BAR空间映射实战(二)
通过ioremap后的虚拟地址读写B… · 验证读写正确性
BAR
空间映射实战
15
BAR空间映射实战(三)
处理64位BAR(BAR0+BAR1… · 处理I/O BAR的特殊性
BAR
空间映射实战
16
中断基础
PCIe中断类型(INTx · MSI · MSI-X)
断基础
PCIe
17
MSI/MSI-X中断注册
pci_alloc_irq_vect… · request_irq/free_i… · 中断处理函数编写
MSI/MSI-X
断注册
18
DMA基础
DMA传输原理 · PCIe DMA地址空间 · 一致性DMA映射与流式DMA映射
DMA
传输原理
19
DMA API实战
dma_alloc_coherent… · dma_map_single/dma… · dma_map_sg/dma_unm…
DMA
API
20
PCIe驱动完整框架(一)
probe/remove回调函数实现 · 设备初始化流程 · BAR映射与中断注册整合
PCIe
驱动完整框架
21
PCIe驱动完整框架(二)
实现简单的字符设备接口(open/r… · 用户态与内核态数据交互
PCIe
驱动完整框架
22
PCIe驱动完整框架(三)
实现DMA传输 · 使用mmap将BAR空间暴露给用户态
PCIe
驱动完整框架
23
电源管理
PCIe电源管理状态(D0-D3ho… · pci_save_state/pci… · 驱动suspend/resume回调
电源管理
PCIe
24
错误处理
PCIe错误类型(Correctab… · AER驱动注册 · 错误日志解析
错误处理
PCIe
25
热插拔支持
PCIe热插拔原理 · pci_hotplug驱动框架 · 插拔事件处理
热插拔支持
PCIe
26
性能优化
MMIO访问优化(readl/wri… · DMA缓冲对齐与Cache一致性
性能优化
MMIO
27
调试技巧
使用lspci/lspci -vvv… · 使用devmem2直接访问物理地址 · 使用printk与ftrace
调试技巧
lspci/lspci
28
常见问题排查
BAR空间映射失败原因分析 · 中断未触发排查 · DMA传输数据损坏调试
常见问题排查
BAR
29
实战项目(一)
基于PCIe的简易数据采集卡驱动——… · BAR映射 · 中断处理
实战项目
PCIe
30
实战项目(二)
基于PCIe的高速数据传输驱动——D… · 描述符环管理 · 批量数据传输与性能测试
实战项目
PCIe
所属VIP或分类
同VIP:Linux内核ioctl命令设计:编码规范与安全校验
同VIP:Linux内核驱动调试:kgdb与printk联合使用
同VIP:Linux驱动DMA缓冲区共享与mmap接口开发