0

如何确定我正在构建的内核的 PAGE_OFFSET 值?我正在为 ARM 平台构建内核。

谢谢,vj

4

4 回答 4

1

我终于找到了 PAGE_OFFSET 的值作为 .config 下定义的值,针对 CONFIG_PAGE_OFFSET=0xC0000000。

于 2013-10-15T23:32:38.157 回答
1

以 X86_32 拱门为例。

拱/x86/include/asm/page_types.h :

#define PAGE_OFFSET     ((unsigned long)__PAGE_OFFSET)

拱/x86/include/asm/page_32_types.h:

#define __PAGE_OFFSET       _AC(CONFIG_PAGE_OFFSET, UL)

拱/x86/Kconfig:

config PAGE_OFFSET
    hex
    default 0xB0000000 if VMSPLIT_3G_OPT
    default 0x80000000 if VMSPLIT_2G
    default 0x78000000 if VMSPLIT_2G_OPT
    default 0x40000000 if VMSPLIT_1G
    default 0xC0000000
    depends on X86_32

arch/x86/Kconfig 中的 PAGE_OFFSET 是 page_32_types.h 中的 CONFIG_PAGE_OFFSET。因为前缀'CONFIG_'是make system自动添加的。

于 2019-03-17T03:47:15.833 回答
0

您可以在编译期间使用 C 预处理器打印该值:

+#define STRING2(x) #x
+#define STRING(x) STRING2(x)
+#pragma message "PAGE_OFFSET = " STRING(PAGE_OFFSET)

这将在运行 make 的控制台中打印该值。

于 2014-03-09T05:32:48.920 回答
0

看内核源代码

grep -rn "#define PAGE_OFFSET" arch/arm/*

它发现它是在中定义的,arch/arm/include/asm/memory.h但这取决于您的内核配置。根据您的配置遵循符号,您将获得价值。

或者您可以使用Linux 内核网络浏览器

于 2013-10-15T01:47:17.977 回答