bootloader
时间:2007-06-29 来源:homewood
BootLoader
1 概述
PC: BIOS和MBR中的系统引导程序
嵌入式系统中: 用Flash作为系统的存储媒介, 加载启动的任务由引导程序完成(BootLoader)
|
BootLoader |
参数 |
系统内核 |
根文件系统 |
低地址 高地址
对Linux系统,内核和根文件是必须的,参数区域可选.编译内核时可指定默认的启动参数.
主要任务:
初始化处理器及外设的硬件资源配置.
建立内存空间映设图
装载操作系统的映像到内存中
对Flash 编程
运行OS ->boot过程
传递系统启动参数
命令行解析和输入/输出控制
BootLoader分为两个阶段
2 常见的Linux BootLoader
Blob U-Boot RedBoot ARMboot
3 Blob 分析
1) Blob的stage1
Stage1也称为flashloader
主要任务: 初始化处理器与硬件资源
迁移stage2代码至sdram.
用汇编语言写成.
|
|
|
被stage1复制到内存的stage2,最大为64KB |
|
: : |
|
根文件系统 |
|
|
|
Linux系统内核映像 |
|
Linux系统启动参数 |
|
空(保留) |
|
Blob的stage2,最大为64K |
|
Blob的stage1,大小为4K |
SDRAM
|
———
|
Flash
2)stage2
主要是c语言
也称bootloader
有对串口初始化的过程用于从主机向目标板传输和烧写.
作用: 在进入stage2时有选项可以进入其功能或是启动Linux内核.
功能包括下载烧写文件和调试等功能
在学院实验室用的vivi
Minicom下使用vivi烧写:
在linux下面,连接上minicom后,进入vivi控制台,执行命令 load flash kernl x,按Ctrl+a,然后再按s选择xmodem,注意新出现的对话框最上面一行有一个默认路径,要将需要烧写的文件放在那个默认的目录下(一般是/root),填写文件名,回车就可以了,开始烧写后要注意填写input block number.










