首页
›
Linux内核与驱动
›
138-Linux驱动项目实战
›
《Linux驱动mmap实战:物理内存到用户空间的直接映射》
VIP10
本课程属于:138-Linux驱动项目实战
Linux内核与驱动 · 共 10 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
Linux驱动mmap实战:物理内存到用户空间的直接映射
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
mmap基础概念
mmap系统调用原理 · 虚拟内存与物理内存映射关系 · mmap在驱动中的作用
mmap
基础概念
02
Linux内存管理概述
页表 · TLB · 内存区域(ZONE_DMA/ZONE…
Linux
内存管理概述
03
内核空间与用户空间
地址空间划分 · copy_from_user/cop… · mmap的优势
内核空间
用户空间
04
mmap系统调用流程
用户态mmap调用 · 内核sys_mmap · do_mmap
mmap
系统调用流程
05
file_operations中的mmap函数
mmap回调函数原型 · vm_area_struct结构体详…
file
operations
06
vm_area_struct结构体
vm_start/vm_end · vm_flags · vm_ops
vm
area
07
remap_pfn_range函数
函数原型 · 参数含义(pfn · size
remap
pfn
08
io_remap_pfn_range函数
与remap_pfn_range的区… · 用于IO内存映射 · PCIe BAR映射场景
io
remap
09
物理内存分配与预留
alloc_pages_exact · __get_free_pages · memblock_reserve
物理内存分配
预留
10
CMA(Contiguous Memory Allocator)
CMA原理 · dma_alloc_coherent · 与mmap结合使用
CMA
Contiguous
11
DMA缓冲区映射
dma_alloc_coherent… · 物理地址获取 · mmap映射DMA缓冲区
DMA
缓冲区映射
12
mmap驱动框架搭建
模块初始化 · 字符设备注册 · file_operations实现
mmap
驱动框架搭建
13
mmap驱动示例1——简单物理内存映射
分配一页物理内存 · remap_pfn_range映射 · 用户态测试程序
mmap
驱动示例1
14
mmap驱动示例2——大块连续内存映射
使用alloc_pages_exac… · 映射到用户空间
mmap
驱动示例2
15
mmap驱动示例3——DMA缓冲区映射
dma_alloc_coherent… · 获取dma_addr · remap_pfn_range映射
mmap
DMA
16
mmap驱动示例4——IO内存映射(寄存器)
ioremap与io_remap_p… · 映射硬件寄存器到用户空间
mmap
IO
17
用户态mmap使用
mmap函数原型 · MAP_SHARED/MAP_PRI… · munmap
mmap
用户态
18
用户态测试程序编写
打开设备 · mmap映射 · 读写映射内存
用户态测试程序编…
打开设备
19
mmap同步机制
内存屏障(mb/rmb/wmb) · 缓存一致性(cache cohere… · DMA与CPU共享内存
mmap
同步机制
20
mmap与缓存策略
ioremap_nocache · ioremap_wc · pgprot_noncached
mmap
缓存策略
21
mmap与文件页缓存
MAP_SHARED与page ca… · 驱动中设置VM_SHARED标志
mmap
文件页缓存
22
mmap与内存压力
页面回收(kswapd) · mlock锁定页面 · VM_LOCKED标志
mmap
内存压力
23
mmap与NUMA架构
内存节点 · 页面迁移 · 绑定CPU与内存节点
mmap
NUMA
24
mmap与SMMU/IOMMU
IOMMU原理 · iommu_map · 用户态直接访问设备内存
mmap
SMMU/IOMMU
25
mmap调试技巧
使用/dev/mem映射物理内存 · crash工具查看页表 · ftrace跟踪mmap调用
mmap
调试技巧
26
mmap性能优化
大页(HugeTLB) · 透明大页(THP) · 预取(prefetch)
mmap
性能优化
27
mmap安全性
防止用户态破坏内核 · 地址校验 · 权限检查
mmap
安全性
28
mmap常见问题与解决
映射失败(-ENOMEM) · 页错误(page fault) · 缓存不一致
mmap
常见问题
29
mmap实战项目1——帧缓冲驱动
分配帧缓冲物理内存 · mmap映射到用户空间 · 用户态直接绘制
mmap
实战项目1
30
mmap实战项目2——高速数据采集
ADC/DMA采集数据 · mmap映射采集缓冲区 · 用户态零拷贝读取
mmap
实战项目2
所属VIP或分类
同VIP:DMA传输实战:dmaengine接口与描述符链管理
同VIP:DMA传输实战:dmaengine接口与环形缓冲区设计
同VIP:ftrace结合printk调试驱动中断处理流程