【转】arm linux 从入口到start_kernel 代码详细分析

最近研究了一下arm linux的入口部分的代码, code不是太多,所以写了个笔记,详细的分析了每一条语句.
大家看看, 交流一下.
下面使正文. 由于内容比较多,分几层楼发吧
____________________________________________________________________________________
本文针对arm linux, 从kernel的第一条指令开始分析,一直分析到进入start_kernel()函数.
我们当前以linux-2.6.19内核版本作为范例来分析,本文中所有的代码,前面都会加上行号以便于和源码进行对照,
例:
在文件init/main.c中:
00478: asmlinkage void __init start_kernel(void)
前面的"00478:" 表示478行,冒号后面的内容就是源码了.
在分析代码的过程中,我们使用缩进来表示各个代码的调用层次.
由于启动部分有一些代码是平台特定的,虽然大部分的平台所实现的功能都比较类似,但是为了更好的对code进行说明,对于平台相关的代码,我们选择at91(ARM926EJS)平台进行分析.
另外,本文是以uncompressed kernel开始讲解的.对于内核解压缩部分的code,在 arch/arm/boot/compressed中,本文不做讨论.

转自:http://linux.chinaunix.net/bbs/thread-1021226-1-1.html

posted @ 2011-02-19 19:14  夏大王  阅读(437)  评论(0编辑  收藏  举报