|
|
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机制独立处理同步,因为每个进程看起来都是不同的地址。 |
|
|
melonfsck · 是否允许在堆栈上分配旋转锁? 1 年前 |
|
|
gulpr · printk只输出时间戳,不打印消息 2 年前 |
|
|
é¢åºæ° · git发送电子邮件--回复失败 2 年前 |
|
|
zebra_rey · 内核模块是提取设备寄存器的理想方式吗? 2 年前 |