针对ARM Linux内核swapper_pg_dir简单分析
在分析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简单分析相关推荐
- U-Boot启动流程(Linux内核)的分析
http://www.360doc.com/content/12/0816/10/7775902_230452499.shtml 前面一段时间一直在移植U-Boot,Linux内核和构建根文件 ...
- U-Boot启动流程(Linux内核)的分析(写得好)
前面一段时间一直在移植U-Boot,Linux内核和构建根文件系统,其中有些地方还不是很明白,现在回过头来,理解一下U-boot的启动流程,以及 u-Boot是如何加载引导内核启动的.这里的分析也都是 ...
- Linux内核源码分析--内核启动之(3)Image内核启动(C语言部分)(Linux-3.0 ARMv7) 【转】...
原文地址:Linux内核源码分析--内核启动之(3)Image内核启动(C语言部分)(Linux-3.0 ARMv7) 作者:tekkamanninja 转自:http://blog.chinauni ...
- Linux内核源码分析--内核启动之(4)Image内核启动(setup_arch函数)(Linux-3.0 ARMv7)【转】...
原文地址:Linux内核源码分析--内核启动之(4)Image内核启动(setup_arch函数)(Linux-3.0 ARMv7) 作者:tekkamanninja 转自:http://blog.c ...
- U-boot启动流程(Linux内核)的分析(四)
在上一篇中分析到u-Boot启动Linux内核的函数do_bootm_linux,这一篇则着重分析,U-boot是如果一步一步启动内核的. 我们可以看到在,start_armboot()函数的最后,在 ...
- Linux内核汇编代码分析
Linux内核汇编代码分析 1.vmlinux.lds.S文件分析 1.2 vmlinux.lds.S文件总体框架 1.3 代码段 1.4 只读数据段 1.5 init段 1.6 数据段 1.7 未初 ...
- Linux内核源代码情景分析笔记
Linux内核源代码情景分析笔记 好吧,首先我承认我要是读者的话,这篇文章我看着也头疼,因为写的太长太泛(其主要部分集中在内存管理,进程管理,文件系统)!原本是想按自己理解的精简精简的,按照操作系统中 ...
- Linux内核源码分析方法—程序员进阶必备
一.内核源码之我见 Linux内核代码的庞大令不少人"望而生畏",也正因为如此,使得人们对Linux的了解仅处于泛泛的层次.如果想透析Linux,深入操作系统的本质,阅读内核源码是 ...
- linux内核源码分析笔记
一.内核源码目录结构 1.Linux 内核源代码包括三个主要部分 1)内核核心代码:包括linux内核整体架构分析笔记描述的各子系统和子模块,以及其他支撑子系统,如:电源管理.linux初始化等. 2 ...
最新文章
- 【译】Spring Boot 2.0 官方迁移指南
- Git使用汇总之工作区、暂存区、版本库
- java题-java运行时异常与一般异常有何异同?
- 最短路径Shortest Path algorithm
- C语言汇编-函数调用栈
- 病毒、蠕虫、木马学习笔记
- ue4 本地化要点详解
- C++覆盖(override)
- 华为PPPoE、PPP/MP、IP-Trunk配置
- Reducer类——hadoop
- :实用 FRIDA 进阶 --- objection :内存漫游、hook anywhere、抓包
- python爬取微信运动_如何利用Python爬取微信运动中各个好友的运动信息
- OpenWRT-Wifidog之利用Luci认证
- 完美的Python代码制作“恐龙跳一跳“小游戏【附带源码 】
- OllyDbg动态调试与逆向破解TraceMe.exe
- go语言的ini文件配置读取
- mysql 中字段存放表情符号,Incorrect string value: ‘\xF0\x9F\x8C\xBB‘ for column
- 开放存取平台以保存Odia印度语言
- 让人发狂的sql语句!
- vs2019修改代码时覆盖和插入设置
热门文章
- 基于GA优化算法的磁性贴片位置布置优化算法matlab仿真
- method ‘void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)‘ on a null object refe
- 论文阅读和分析:《DeepGCNs: Can GCNs Go as Deep as CNNs?》
- 这些人,我关注三年了...
- 转 Android视频播放软解与硬解的区别
- Invalid options object. Dev Server has been initialized using an options object
- USACO fact4, spin
- 查分约束例题(洛古)
- 短视频文案如何写,学会以下几种方法,离爆款绝对不远。
- JavaScript语句结尾的;加不加