针对ARM Linux内核swapper_pg_dir简单分析
来源:互联网 发布:mac zip 打不开 编辑:程序博客网 时间:2024/06/11 15:46
在分析ARM Linux内核的内存管理的时候不小心考到了System.map有个特别的地方:
0000000c A cpu_arm926_suspend_size
c0004000 A swapper_pg_dir
c0008000 T _text
c0008000 T stext
c0008050 t __create_page_tables
c0008104 t __turn_mmu_on_loc
c0008110 t __enable_mmu
c0008140 t __fixup_pv_table
c0008180 t __vet_atags
c0008400 T __exception_text_start
c0008400 T _stext
在arch/arm/kernel/head.S有其中的定义:
#define KERNEL_RAM_VADDR (PAGE_OFFSET + TEXT_OFFSET)
#if (KERNEL_RAM_VADDR & 0xffff) != 0x8000
#error KERNEL_RAM_VADDR must start at 0xXXXX8000
#endif
#ifdef CONFIG_ARM_LPAE
/* LPAE requires an additional page for the PGD */
#define PG_DIR_SIZE 0x5000
#define PMD_ORDER 3
#else
#define PG_DIR_SIZE 0x4000
#define PMD_ORDER 2
#endif
.globl swapper_pg_dir
.equ swapper_pg_dir, KERNEL_RAM_VADDR - PG_DIR_SIZE
.macro pgtbl, rd, phys
add \rd, \phys, #TEXT_OFFSET - PG_DIR_SIZE
.endm
swapper_pg_dir涉及到很多内容,主要是用来设置内核系统页目录。
- 针对ARM Linux内核swapper_pg_dir简单分析
- linux swapper_pg_dir
- ARM-Linux内核启动分析
- ARM LINUX内核初始化分析
- linux的swapper_pg_dir
- ARM-Linux内核启动的分析
- arm学习之linux内核移植分析
- ARM LINUX内核初始化分析(续)
- linux的swapper_pg_dir的初始化
- linux的swapper_pg_dir的初始化
- linux的swapper_pg_dir的初始化
- linux的swapper_pg_dir的初始化
- linux的swapper_pg_dir的初始化
- linux的swapper_pg_dir的初始化
- linux的swapper_pg_dir的初始化
- arm linux 等待队列简单分析
- arm linux 等待队列简单分析
- Arm linux 内核移植及系统初始化过程分析
- Android本地文档打开慢的解决方法
- Mac使用
- 前台技术jQuery对象与dom对象的转换(前台面试)
- javaoop简记--第二天
- 程序猿之---C语言细节31(#define和#undef宏细节、#error、#pragma message("文本信息")、宏定义注释)
- 针对ARM Linux内核swapper_pg_dir简单分析
- 【原创】Ubuntu12.04安装和配置gsl
- 【Leetcode】Gray Code 见过最无耻最没头脑的题 in JAVA
- Vs2012在Linux开发中的应用(8): 编译Linux内核
- Delphi中的线程类
- opencv——Sobel导数
- 怎么样找到一个靠谱的技术合伙人?
- JVM和Java Metrics使用样例(读取kafka统计信息)
- poj1185状态压缩DP