陈香兰 xlanchen@ustc.edu.cn 助教:陈博、李春华 Spring 2009 嵌入式操作系统 陈香兰 xlanchen@ustc.edu.cn 助教:陈博、李春华 Spring 2009
基于arm的Linux启动代码分析 源码:来自snapgear 3.4.0,内核版本:2.6.17 了解linux的源码组织 看目录结构 了解linux的内核代码结构 看Makefile 了解基于arm的linux的boot image的结构 掌握arm的启动流程 阅读启动源码文件 2018/12/1 基于arm9的Linux OS
考虑Arch为arm,了解源码组织 观察Linux源码的根目录 观察arch目录 观察arch下的arm目录 2018/12/1 基于arm9的Linux OS
阅读Makefile 找到缺省目标all 找到vmlinux目标,并阅读 2018/12/1 基于arm9的Linux OS
解释:关于 $(call if_changed_rule,vmlinux__) 2018/12/1 基于arm9的Linux OS
链接描述文件? 链接顺序: vmlinux-init vmlinux-main 2018/12/1 基于arm9的Linux OS
关于命令的定制 2018/12/1 基于arm9的Linux OS
注意: vmlinux-init vmlinux-main vmlinux-dirs 2018/12/1 基于arm9的Linux OS
主要目标文件的编译 vmlinux 不妨以core-y为例,观察体系相关和体系无关部分的代码是如何被包含进来的 2018/12/1 基于arm9的Linux OS
Arm的启动文件 根据vmlinux-init找到head-y, init-y head-nommu 还是 head 2018/12/1 基于arm9的Linux OS
为便于阅读,了解关于命令输出的相关内容 2018/12/1 基于arm9的Linux OS
考虑boot Image Make zImage … z代表压缩;b代表大内核 在arch/arm/Makefile中 到boot目录下的Makefile 压缩 还是 非压缩 还是 bootp 2018/12/1 基于arm9的Linux OS
考虑bootp 2018/12/1 基于arm9的Linux OS
Bootp下的Makefile 2018/12/1 基于arm9的Linux OS
关于INITRD 2018/12/1 基于arm9的Linux OS
先看kernel.S和initrd.S 关于init.S的阅读,推迟到后面 2018/12/1 基于arm9的Linux OS
考虑压缩 2018/12/1 基于arm9的Linux OS
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
进入Linux中关于arm的启动代码前 Bootloader Bootloader必须完成内核代码的加载,然后跳转到入口处运行,入口可能是 Commpressed的head.S Bootp的Init.S Kernel的head.S 看源码 2018/12/1 基于arm9的Linux OS
进入Linux中关于arm的启动代码前的约定 2018/12/1 基于arm9的Linux OS
Arm寄存器集 2018/12/1 基于arm9的Linux OS
Project2 基于Arm的linux的启动分析 提供分析报告 首先进行Makefile的分析,在分析过程中 获知不同的启动方案 获知典型启动方案的代码结构 选择一种启动方案,进行基于arm的Linux的启动分析 分析直到调用start_kernel为止 提供分析报告 2018/12/1 基于arm9的Linux OS
Thanks! The end.