关于linux下head.s和编译链接的一些问题

dannys0302 广州技术师范学院 2014-01-11 12:20:48
最近在看linux启动流程,遇到一些问题不明白,不知道有没有发错地方,望路过的大神解答下。

首先,文件是/work/linux-2.6.36/arch/arm/boot/compressed/head.S
其中有3段代码(我写的代码 .start段 .text段)

我在这个文件的最开始(include之后),加入一段代码(内容不重要)
之后的内容是:
.section ".start", #alloc, #execinstr
/*
* sort out different calling conventions
*/

.align
start:
.type start,#function
......

.text
adr r0, LC0
......

lds文件指出
. = 0;
_text = .;

.text : {
_start = .;
*(.start)
*(.text)
*(.text.*)

链接时,从.start段开始,反汇编后看到,代码从0地址开始,确实是.start段,理论上,接下来应该是.text段,然后我的代码不被编译,但看反汇编,实际的排序是:
.start段
我的代码
.text段
这是为什么?
...全文
101 点赞 收藏 回复
写回复
回复

还没有回复,快来抢沙发~

发动态
发帖子
Linux_Kernel
创建于2007-08-27

3141

社区成员

1.7w+

社区内容

Linux/Unix社区 内核源代码研究区
社区公告
暂无公告