现在的位置: 首页 > 综合 > 正文

Linux 物理内存和虚拟内存设置(zt)

2013年09月20日 ⁄ 综合 ⁄ 共 564字 ⁄ 字号 评论关闭


  1. 使用内核源代码中的定义 
    PHYS_OFFSET:系统内存的物理起始地址,板级相关,在include/asm-arm/arch-xxx/memory.h中 
    PAGE_OFFSET:系统内存的虚拟起始地址,体系结构相关,为0xC0000000,在include/asm-arm/memory.h中 
    MEM_SIZE:系统内存大小,如果板级(include/asm-arm/arch-xxx/xxx.h)没有指定,则使用体系结构的缺省值16M(arch/arm/kernel/setup.c) 
    在没有内存命令从内核命令行(cmdline)传入的情况下 ,setup_arch()函数 (arch/arm/kernel/setup.c文件中)会使用PHYS_OFFSET和MEM_SIZE指定为系统内存并且映射到PAGE_OFFSET。
  2. 通过fixup函数设置 
    通过fixup_xxx()函数(arch/arm/mach-xxx/arch.c)设置内存的起始地址和大小,映射到PAGE_OFFSET,此项设置会覆盖(1)的设置
  3. 通过内核命令行传入 
    如果内核命令行中有系统内存相关的命令(mem=XXXM[@YYY])则会覆盖掉(1),(2)中所介绍的映射而将XXX作为内存大小,YYY作为内存物理起始地址(如果有)映射到PAGE_OFFSET 

抱歉!评论已关闭.