详细的bootloader的移植(1)

简介:
 
一. BootLoader简介 
应用程序
文件系统
操作系统内核
BootLoader
简单的说bootloader是一段程序,它的作用就是加载操作系统,BootLoader(引导加载程序是系统加电后运行的 第一段软件代码。通过这段代码实现硬件的初始化,建立内存空间的映射图,为操作系统内核准备好硬件环境并引导内核的启动。如右图所示的那样在设备的启动过程中bootloader位于最底层,首先被运行来引导操作系统运行,很容易可以看出 bootloader是底层程序所以它的实现严重地依赖于硬件,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的BootLoader几乎是不可的。尽管如此,一些功能强大、支持硬件环境较多的BootLoader也被广大的使用者和爱好者所支持,从而形成了一些被广泛认可的、较为通用的的bootloader实现。简单的介绍几种: 
1.U-BOOT
uboot是一个庞大的公开源码的软件。他支持一些系列的arm体系,包含常见的外设的驱动,是一个功能强大的板极支持包。其代码可以从下载 U-BOOT是由PPCBOOT发展起来的,是PowerPC、ARM9、Xscale、X86等系统通用的Boot方案,从官方版本 0.3.2开始全面支持SC系列单板机。u-boot是一个开源的bootloader
2vivi
vivi是韩国mizi 公司开发的bootloader, 适用于ARM9处理器。 Vivi有两种工作模式:启动加载模式和下载模式。启动加载模式可以在一段时间后(这个时间可更改)自行启动linux内核,这vivi的默认模式。如果修改或更新需要进入下载模式,在下载模式下,vivi为用户提供一个命令行接口通过接口可以使用vivi提供的一些命令,来实现flash的烧写、管理、操作mtd分区信息、启动系统等功能。 
其它还有一些bootloader实现如下表所示:
名称
说明
支持的架构
LILO
Linux的磁盘引导加载程序
x86
GRUB
LILOGNU版本
x86
Loadlin
DOS引导Linux
x86
RedBoot
eCos为基础的引导程序
x86 ARMPowerPCMIPS
ROLO
ROM引导Linux,且不需要BIOS
x86
Etherboot
从以太网卡启动Linux系统的固件
x86
LinuxBIOS
Linux为基础的BIOS的替代品
x86
blob
来自LART计划的引导程序
ARM
由于u-boot的通用性好,功能全面,适合初学者学习和使用,我们选用u-boot作为基准代码,在此基础上进行修改,完成移植工作。
二.移植准备
1.目标板: 
这是进行U-Boot移植首先要明确的。可以根据目标板上CPUFLASHSDRAM的情况,以尽可能相一致为原则,先找出 一个与所移植目标板为同一个或同一系列处理器的U-Boot支持板为移植参考板。
 
以上图片是本次移植所用到的开发板实物图
一些重要参数如下:
CPU处理器
– Samsung S3C2440AL,主频400MHz,最高533MHz
SDRAM内存
– 板载64MB SDRAM
– 32bit数据总线
– SDRAM时钟频率高达100MHz
– Hynix809E
Flash存储器
– 板载64MB Nand Flash,掉电非易失
– 板载2MB Nor Flash
K9F1208u00









本文转自 chen138 51CTO博客,原文链接:,如需转载请自行联系原作者
目录
相关文章
|
6月前
|
Shell Linux 芯片
嵌入式系统中u-boot和bootloader到底有什么区别
嵌入式系统中u-boot和bootloader到底有什么区别
463 1
嵌入式系统中u-boot和bootloader到底有什么区别
|
6月前
|
Linux 编译器 Go
Linux内核学习(四):Bootloader的特种兵-Uboot(二)
Linux内核学习(四):Bootloader的特种兵-Uboot(二)
637 0
|
6月前
|
存储 运维 Linux
Linux内核学习(三):Bootloader的特种兵-Uboot(一)
Linux内核学习(三):Bootloader的特种兵-Uboot(一)
84 0
|
机器学习/深度学习
|
内存技术 芯片 编译器