搞了几个月 COTEX构架的STM32后,又开始回归linux了。
学习arm linux启动的一点心得:
3个重要的文件及其路径:
1.head.S---/arch/arm/boot/compressed
对于ARM 系列处理器来说,zImage 的入口程序即为 arch/arm/boot/
compressed/head.S。它依次完成以下工作:开启 MMU 和 Cache,调用
decompress_kernel()解压内核,最后通过调用 call_kernel()进入非压缩内核
Image 的启动。
2.head.S--/arch/arm/kernel
整个arm linux内核的启动可分为三个阶段:第一阶段主要是进行cpu和
体系结构的检查、cpu本身的初始化以及页表的建立等;第一阶段的初始化是从
内核入口(ENTRY(stext))开始到start_kernel前结束。这一阶段的代码
在/arch/arm/kernel/head.S中。/arch/arm/kernel/head.S用汇编代码完成,
是内核最先执行的一个文件。这一段汇编代码的主要作用,是检查cpu
id,architecture number,初始化页表、cpu、bbs等操作,并跳到
start_kernel函数
3.main.c----/init
start_kernel 函数 CPU,系统初始化
接下来 上传两个不错的资料 head.S源代码 分析
|
文件: | ARM+Linux的启动分析(zImage).rar |
大小: | 201KB |
下载: | 下载 |
|
|
文件: | ARM Linuxv1.rar |
大小: | 50KB |
下载: | 下载 |
|
阅读(1084) | 评论(0) | 转发(0) |