小编hit*_*dia的帖子

如何在linux中以编程方式获取物理内存地址范围

我试图在 linux 内核模块中获取系统中所有可用内存的物理地址范围。

我看到 cat /proc/iomem 并且看到物理内存本身不是连续的。

我知道对于 32 位系统兼容性,PCI 和其他外围内存需要在 4GB 地址范围内。也是 DOS 的 640 kB 初始值。以下输出来自 x86_64 系统

00000000-00000fff : reserved
00001000-0009d7ff : System RAM //640kB here
0009d800-0009ffff : reserved
000a0000-000bffff : PCI Bus 0000:00
000c0000-000cedff : Video ROM
000e0000-000fffff : reserved
  000f0000-000fffff : System ROM
00100000-daa85fff : System RAM  //~3.5 gb here
  01000000-0177acb8 : Kernel code
  0177acb9-01d1b53f : Kernel data
  01e79000-01fbdfff : Kernel bss
daa86000-daa87fff : reserved
daa88000-dad0efff : System RAM  //some RAM here
dad0f000-dae75fff : reserved …
Run Code Online (Sandbox Code Playgroud)

c linux memory dma

6
推荐指数
1
解决办法
1798
查看次数

标签 统计

c ×1

dma ×1

linux ×1

memory ×1