- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 uboot lds 文件说明
lds 文件说明1.1 主要符号说明1. OUTPUT_FORMAT(bfdname) 指定输出可执行文件格式.2. OUTPUT_ARCH(bfdname) 指定输出可执行文件所运行 CPU 平台3. ENTRY(symbol) 指定可执行文件的入口段1.2 段定义说明1. 段定义格式 SECTIONS { ... 段名
2009-06-11 18:21:00 3002
原创 uboot 的启动过程及工作原理 进入 C 代码部分
2.2.12 进入 C 代码部分 ldr pc, _start_armboot _start_armboot: .word start_armboot2.3 阶段 2 的 C 语言代码部分 lib_arm/board.c 中的 start armboot 是 C 语言开始的函数,也是整个启动代码中 C 语言的主函数,同时还是整个u
2009-06-11 18:12:00 3236
转载 uboot 的启动过程及工作原理 汇编部分
uboot 的启动过程及工作原理2.1 启动模式介绍 大多数 Boot Loader 都包含两种不同的操作模式:"启动加载"模式和"下载"模式,这种区别仅对于开发人员才有意义。但从最终用户的角度看,Boot Loader 的作用就是用来加载操作系统,而并不存在所谓的启动加载模式与下载工作模式的区别。 启动加载(Boot loading)模式:这种模式也称为"自主"(
2009-06-11 18:09:00 3753 1
转载 kernel 启动过程之五, initcall 的来由, console 的初始化。
参见include/linux/init.h和vmlinux.lds1)所有标识为__init的函数在链接的时候都放在.init.text这个区段内,在这个区段中,函数的摆放顺序是和链接的顺序有关的,是不确定的。2)所有的__init函数在区段.initcall.init中还保存了一份函数指针,在初始化时内核会通过这些函数指针调用这些__init函数指针,并在整个初始化
2009-06-11 17:58:00 5078
转载 kernel 启动过程之四,start_kernel中的rest_init函数到init进程
tart_kernel ,是用来启动内核的主函数,我想大家都知道这个函数啦,而在该函数的最后将调用一个函数叫 rest_init() ,它执行完,内核就起来了, asmlinkage void __init start_kernel(void) { ...... /* Do the rest non-__ini
2009-06-11 17:55:00 4650 1
转载 kernel 启动过程之三, start_kernel()函数 概叙!init/main.c
核心数据结构初始化--内核引导第一部分 start_kernel()中调用了一系列初始化函数,以完成kernel本身的设置。这些动作有的是公共的,有的则是需要配置的才会执行的。在start_kernel()函数中, 输出Linux版本信息(printk(linux_banner))设置与体系结构相关的环境(setup_arch())页表结构初始
2009-06-11 17:51:00 9242 2
转载 kernel 启动过程之二, arch/arm/kernel/head.S
从zImage头跳转进来,此时的状态MMU为off D-cache为off I-cache为dont care,on或off没有关系 r0为0 r1为machine ID r2为atags指针 内核代码入口在linux-2.6.24-moko-linuxbj/arch/arm/kernel/head.S文件的83行。首先进入SVC32模式,并查询
2009-06-11 17:44:00 7294
转载 kernel 启动过程之一, uimge, zimage,arch/arm/boot/compressed/head.S
这几天因为工作原因,升级 2.6.22.7 的kernel 到 Mavell 的arm 板子上去,遇到一些头疼的问题,不得不分析启动代码, 郁闷阿。 zImage是ARM Linux常用的一种压缩映像文件,uImage是U-boot专用的映像文件,它是在zImage之前加上一个长度为0x40的“头”,说明这个映像文件的类型、加载位置、生成时间、大小等信息。换句话说,如果直接从uImag
2009-06-11 17:24:00 8160 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人