1. 软件角度看嵌入式系统,分为三个层次
1). 引导加载程序
a). 包含在固件(firmware)中的boot程序,如PC机上的BIOS【可选的,有的没有】
b). Bootloader : 将内核从硬盘上读到内存中,然后跳到内核的入口点去运行,即启动操作系统
Lilo Linux磁盘引导程序 支持x86,不支持ARM、PowerPC
Grub GNU的Lili代替程序 支持x86,不支持ARM、PowerPC
U-boot 通用引导程序,支持x86,ARM,PowerPC
Redboot 基于eCos的引导程序,支持x86,ARM,PowerPC
...
2). Linux内核
3). 文件系统
2. bootloader移植
1). 移植类型
芯片级的移植 : 由于使用的CPU等都不一样
板级的移植 : 使用同样的CPU,但是硬件资源不同
3. bootloader的流程
根据启动过程可分为
1). Single-Stage 单阶段
2). Multi-Stage 多阶段 : 具有更复杂的功能,更好的移植性
大多采用两阶段
Stage1 : 汇编语言实现,(因为C语言环境在这个阶段还没有准备好)
a). 完成初始化硬件 : 包括初始化CPU内部寄存器
b). 为Stage2准备内存空间,并将Stage2复制到内存中 : 在RAM里速度比Flash里要快
c). 设置堆栈 : Stage2的C代码要用到堆栈
d). 然后跳到Stage2
Stage2 :
a). 初始化硬件 : 初始化板级的一些硬件,比如串口、网卡、
b). 将内核映像和根文件系统映像从flash上读到RAM中
c). 调用内核
1). 引导加载程序
a). 包含在固件(firmware)中的boot程序,如PC机上的BIOS【可选的,有的没有】
b). Bootloader : 将内核从硬盘上读到内存中,然后跳到内核的入口点去运行,即启动操作系统
Lilo Linux磁盘引导程序 支持x86,不支持ARM、PowerPC
Grub GNU的Lili代替程序 支持x86,不支持ARM、PowerPC
U-boot 通用引导程序,支持x86,ARM,PowerPC
Redboot 基于eCos的引导程序,支持x86,ARM,PowerPC
...
2). Linux内核
3). 文件系统
2. bootloader移植
1). 移植类型
芯片级的移植 : 由于使用的CPU等都不一样
板级的移植 : 使用同样的CPU,但是硬件资源不同
3. bootloader的流程
根据启动过程可分为
1). Single-Stage 单阶段
2). Multi-Stage 多阶段 : 具有更复杂的功能,更好的移植性
大多采用两阶段
Stage1 : 汇编语言实现,(因为C语言环境在这个阶段还没有准备好)
a). 完成初始化硬件 : 包括初始化CPU内部寄存器
b). 为Stage2准备内存空间,并将Stage2复制到内存中 : 在RAM里速度比Flash里要快
c). 设置堆栈 : Stage2的C代码要用到堆栈
d). 然后跳到Stage2
Stage2 :
a). 初始化硬件 : 初始化板级的一些硬件,比如串口、网卡、
b). 将内核映像和根文件系统映像从flash上读到RAM中
c). 调用内核