韦东山 jz2440 学习笔记 —— 内核启动流程分析(二)—— Makefile 分析

在如下文件中有详细的Makefile 说明书
在这里插入图片描述

Makefile 文件分类Makefile 文件分类
简单概括吧,子目录下的Makefile 将当前目录组织起来,一般都是通过 obj-y += 这样的形式。

同分析uboot 的Makefile 一样,在make 时加上 V=1 ,即make uImage V=1可以看编译时更详细的打印输出。找到输出vmlinux.o 处的语句,如下:

arm-linux-ld 
-EL  -p --no-undefined -X 
-o vmlinux 
-T arch/arm/kernel/vmlinux.lds 
arch/arm/kernel/head.o arch/arm/kernel/init_task.o  init/built-in.o --start-group  usr/built-in.o  arch/arm/kernel/built-in.o  arch/arm/mm/built-in.o  arch/arm/common/built-in.o  arch/arm/mach-s3c2410/built-in.o  arch/arm/mach-s3c2400/built-in.o  arch/arm/mach-s3c2412/built-in.o  arch/arm/mach-s3c2440/built-in.o  arch/arm/mach-s3c2442/built-in.o  arch/arm/mach-s3c2443/built-in.o  arch/arm/nwfpe/built-in.o  arch/arm/plat-s3c24xx/built-in.o  kernel/built-in.o  mm/built-in.o  fs/built-in.o  ipc/built-in.o  security/built-in.o  crypto/built-in.o  block/built-in.o  arch/arm/lib/lib.a  lib/lib.a  arch/arm/lib/built-in.o  lib/built-in.o  drivers/built-in.o  sound/built-in.o  net/built-in.o --end-group .tmp_kallsyms2.o

可以看到使用的链接脚本文件为:-T arch/arm/kernel/vmlinux.lds
第一个 .o 文件是 arch/arm/kernel/head.o
看一眼链接脚本文件,编译后可以看到 arch/arm/kernel/vmlinux.lds,如下:
在这里插入图片描述
可以看到链接脚本顺序存放了所有的目标文件,因此,vmlinux 存放的第一个文件就是链接命令里放的第一个目标文件,arch/arm/kernel/head.o,即vmlinux 的入口函数就是 head.o。从这个函数顺腾摸瓜就可以继续了。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值