|
|
1
7
您要做的是访问 IO存储器 。我只能鼓励你阅读 Linux设备驱动程序 (LDD)一书,更具体地说是第9章。 要“分配”这样一个区域,您需要拨打
。在您的驱动程序可以访问它之前,您必须为它分配一个虚拟地址,这是通过调用
为了确保您的驱动程序能够在不同的体系结构/平台上工作,请确保对这些区域使用一些访问器功能(ioread8/16/32或iowrite8/16/32及其所有变体)。 |
|
|
2
4
在内核模块中,
|
|
3
0
在内核模块中,remap_pfn_range()可以用于将物理地址转换为虚拟地址。当您没有实际的设备时,您可以: 1) 创建虚拟设备, 2) 对这些虚拟设备使用mmap,通过该进程的remappfn_range虚拟映射访问相同的内核内存。 3) 通常在专用环境中,您可能还想固定这些物理页面,以免它们从您的流程中被带走。 4) 您也可以与不同的进程共享这些物理地址,但需要通过其他IPC机制独立处理同步,因为每个进程看起来都是不同的地址。 |
|
|
ArcPro · 如何使用vfio读写SSD 3 年前 |
|
|
agent.smith · 将物理地址映射到虚拟地址linux 14 年前 |
|
|
Fleck · 设备驱动程序未调用Xxx_Init 14 年前 |