Presentation is loading. Please wait.

Presentation is loading. Please wait.

陈香兰 xlanchen@ustc.edu.cn 助教:陈博、李春华 Spring 2009 嵌入式操作系统 陈香兰 xlanchen@ustc.edu.cn 助教:陈博、李春华 Spring 2009.

Similar presentations


Presentation on theme: "陈香兰 xlanchen@ustc.edu.cn 助教:陈博、李春华 Spring 2009 嵌入式操作系统 陈香兰 xlanchen@ustc.edu.cn 助教:陈博、李春华 Spring 2009."— Presentation transcript:

1 陈香兰 xlanchen@ustc.edu.cn 助教:陈博、李春华 Spring 2009
嵌入式操作系统 陈香兰 助教:陈博、李春华 Spring 2009

2 基于arm的Linux启动代码分析 源码:来自snapgear 3.4.0,内核版本:2.6.17 了解linux的源码组织
看目录结构 了解linux的内核代码结构 看Makefile 了解基于arm的linux的boot image的结构 掌握arm的启动流程 阅读启动源码文件 2018/12/1 基于arm9的Linux OS

3 考虑Arch为arm,了解源码组织 观察Linux源码的根目录 观察arch目录 观察arch下的arm目录 2018/12/1
基于arm9的Linux OS

4 阅读Makefile 找到缺省目标all 找到vmlinux目标,并阅读 2018/12/1 基于arm9的Linux OS

5 解释:关于 $(call if_changed_rule,vmlinux__) 2018/12/1 基于arm9的Linux OS

6 链接描述文件? 链接顺序: vmlinux-init vmlinux-main 2018/12/1 基于arm9的Linux OS

7 关于命令的定制 2018/12/1 基于arm9的Linux OS

8 注意: vmlinux-init vmlinux-main vmlinux-dirs 2018/12/1 基于arm9的Linux OS

9 主要目标文件的编译 vmlinux 不妨以core-y为例,观察体系相关和体系无关部分的代码是如何被包含进来的 2018/12/1
基于arm9的Linux OS

10 Arm的启动文件 根据vmlinux-init找到head-y, init-y head-nommu 还是 head 2018/12/1
基于arm9的Linux OS

11 为便于阅读,了解关于命令输出的相关内容 2018/12/1 基于arm9的Linux OS

12 考虑boot Image Make zImage … z代表压缩;b代表大内核 在arch/arm/Makefile中
到boot目录下的Makefile 压缩 还是 非压缩 还是 bootp 2018/12/1 基于arm9的Linux OS

13 考虑bootp 2018/12/1 基于arm9的Linux OS

14 Bootp下的Makefile 2018/12/1 基于arm9的Linux OS

15 关于INITRD 2018/12/1 基于arm9的Linux OS

16 先看kernel.S和initrd.S 关于init.S的阅读,推迟到后面 2018/12/1 基于arm9的Linux OS

17 考虑压缩 2018/12/1 基于arm9的Linux OS

18 arm的启动(小结) 阅读documentation/arm/booting 阅读documentation/arm/IXP4xx
3 arch/boot/compressed/head.S 2 arch/boot/bootp/init.S 1 arch/kernel/head.S(或者head-nommu.S)+head-Common.S init/main.c:start_kernel 阅读documentation/arm/booting 阅读documentation/arm/IXP4xx 下面阅读上述几个启动相关文件 2018/12/1 基于arm9的Linux OS

19 进入Linux中关于arm的启动代码前 Bootloader Bootloader必须完成内核代码的加载,然后跳转到入口处运行,入口可能是
Commpressed的head.S Bootp的Init.S Kernel的head.S 看源码 2018/12/1 基于arm9的Linux OS

20 进入Linux中关于arm的启动代码前的约定
2018/12/1 基于arm9的Linux OS

21 Arm寄存器集 2018/12/1 基于arm9的Linux OS

22 Project2 基于Arm的linux的启动分析 提供分析报告 首先进行Makefile的分析,在分析过程中
获知不同的启动方案 获知典型启动方案的代码结构 选择一种启动方案,进行基于arm的Linux的启动分析 分析直到调用start_kernel为止 提供分析报告 2018/12/1 基于arm9的Linux OS

23 Thanks! The end.


Download ppt "陈香兰 xlanchen@ustc.edu.cn 助教:陈博、李春华 Spring 2009 嵌入式操作系统 陈香兰 xlanchen@ustc.edu.cn 助教:陈博、李春华 Spring 2009."

Similar presentations


Ads by Google