我们先看一下入口地址的确定,同一文件。
SECTIONS
{
/*
* XXX: The linker does not define how output sections are
* assigned to input sections when there are multiple statements
* matching the same input section name. There is no documented
* order of matching.
*
* unwind exit sections must be discarded before the rest of the
* unwind sections get included.
*/
/DISCARD/ : {
*(.ARM.exidx.exit.text)
*(.ARM.extab.exit.text)
ARM_CPU_DISCARD(*(.ARM.exidx.cpuexit.text))
ARM_CPU_DISCARD(*(.ARM.extab.cpuexit.text))
ARM_EXIT_DISCARD(EXIT_TEXT)
ARM_EXIT_DISCARD(EXIT_DATA)
EXIT_CALL
#ifndef CONFIG_MMU
*(.text.fixup)
*(__ex_table)
#endif
#ifndef CONFIG_SMP_ON_UP
*(.alt.smp.init)
#endif
*(.discard)
*(.discard.*)
}
. = PAGE_OFFSET + TEXT_OFFSET;
.head.text : {
_text = .;
HEAD_TEXT
}
这个 SECTIONS 比较长,只放一部分。在这里有个比较重要的东西:
. = PAGE_OFFSET + TEXT_OFFSET;
这一句表示了 Linux 系统真正的启动地址。
PAGE_OFFSET 是 Linux 内核空间的虚拟起始地址,定义在:
linux4.14/arch/arm64/include/asm/memory.h
注意,这里的地址都很重要,很多地方会用到。当然,这里的地址可能会随着 Linux 内核版本的不同和硬件的不同,会变化。这里没有一个具体的数,因为 VA_BITS 中的数字是可选的,大家可以根据自己的平台算一下。
TEXT_OFFSET 定义在:
linux4.14/arch/arm/Makefile 中:
这个值一般是 0x00008000 ,算出 PAGE_OFFSET 后加上这个值就是 Linux 内核的起始地址。
修改这个偏移量就可以使Linux内核拷贝到不同的地址,自己修改注意内存对齐。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
ARM
+关注
关注
134文章
9036浏览量
366651 -
内核
+关注
关注
3文章
1362浏览量
40205 -
Linux
+关注
关注
87文章
11217浏览量
208819 -
地址
+关注
关注
1文章
31浏览量
10745
发布评论请先 登录
相关推荐
Linux内核地址映射模型与Linux内核高端内存详解
的数据可能不在内存中。 Linux内核地址映射模型 x86 CPU采用了段页式地址映射模型。进程代码中的地址为逻辑
发表于 05-08 10:33
•3439次阅读
如何知道mac地址 怎么查看IP地址
如何知道mac地址 怎么查看IP地址
步骤如下:
1 在“运行”中输入 cmd
2 在打开的命令提示符界面中输入 ipconfig/all
3 里面的rnet NIC里有你
发表于 03-21 12:08
•5.4w次阅读
怎么查看物理地址
怎么查看物理地址
点“开始”---“运行”-----输入--"cmd"" --回车---输入--"ipconfig /all"
如下图:
发表于 09-11 17:24
•5845次阅读
如何查看Linux中的ip地址
在排除网络问题,设置新连接或配置防火墙时,了解设备的 IP 地址非常重要。下面我们就来看看Linux中查看ip地址的方法吧!
发表于 05-25 09:35
•2862次阅读
Linux虚拟地址空间和物理地址空间的关系
过程,这其实也是MMU的工作原理。 我们知道,在Linux中,每个进程都有自己独立的地址空间,且互不干扰。每个进程的地址空间又分为用户空间和内核空间,但这些
linux系统查看ip地址命令
在Linux系统中,可以使用ifconfig命令来查看IP地址。ifconfig命令被用于配置和显示网络接口的网络参数,包括IP地址。执行以下命令可以
linux系统查看物理地址
在Linux系统中,访问和查看物理地址是一个非常重要的任务,因为它提供了对硬件设备的直接访问。本文将详细介绍如何在Linux系统中查看物理
linux 查看网卡状态是否开启
如何查看 Linux 网卡状态是否开启 在 Linux 系统中,我们可以使用一些命令来查看网卡状态是否开启。本文将详细介绍如何使用这些命令来查看
linux查看网卡是down还是up
在Linux系统上,可以通过多种方式来查看网卡的状态是否为down或up。下面将详细介绍这些方法,并给出具体的步骤和示例。 ifconfig命令 ifconfig命令是Linux系统上最常用的
linux怎么查看网卡的收光功率?
linux怎么查看网卡的收光功率? 在Linux系统中,可以使用一些命令和工具来查看网卡的收光功率。本文将介绍如何使用这些命令和工具来查看和
评论