bootloader介绍

bootloader介绍


软件层次---

嵌入式系统从软件的角度看

1--引导加载程序

包括固化在固件(firmware)中的boot程序(可选)和bootloader两个部分。


2--linux内核


3--文件系统

包括系统命令和应用程序


bootloader--boot parameters---kernel-----root filesystem


嵌入式系统通常没有像bios那样的固件程序,因此整个系统的加载启动任务就完全由bootloader来完成。


bootloader定义-------在操作系统运行之前的一段小程序。通过这段小程序,可以初始化硬件设备,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统做好准备。


工作流程---bootloader的启动过程可分为单阶段,多阶段两种。

从固态存储设备上启动的bootloader大多采用两阶段,stage1完成初始化硬件,为stage2准备内存空间,并将stage2复制到内存中,设置堆栈,然后跳转到stage2.

stage2--初始化本阶段要使用的硬件设备-将内核映像和根文件系统映像从flash上读到ram中。--调用内核。


uboot编译----

uboot的Makefile从功能上可分为两个部分:

1--执行每种board相关配置

2--编译生成uboot.bin文件--分两步

1--选择要使用的board----make mini2440_config

2--编译生成u-boot.bin---make CROSS_COMPILE=arm-linux-


uboot命令-------

设置自动启动---

setenv bootcmd tftp 31000000 uImage \; bootm 31000000

saveenv



bootloader工作模式---

启动模式--bootloader从目标机上的某个固态存储设备上将操作系统自动加载到ram中运行,整个过程并没有用户的介入。

下载模式--bootloader通过串口或网络等通信手段从主机(host)下载文件,然后控制启动流程。



uboot移植步骤---

1--在顶层Makefile中为开发板添加新的配置选项。

mini2440_config        :      unconfig

@./mkconfig $(@:_config=) arm arm920t mini2440 NULL s3c24x0

arm920t   对应cpu/arm920t目录

mini2440   对应board/mini2440目录

NULL    开发者

s3c24x0   片上系统(soc)

2--在board目录中创建一个属于新开发板的目录,向目录中添加文件,并修改:

mkdir -p board/mini2440

cp -rf board/smdk2410/*   board/mini2440


3--为开发板添加新的配置文件,先复制参考开发板的配置文件,再修改。

cp include/configs/smdk2410.h   include/configs/mini2440.h



4--选择板级配置

make mini2440_config


5--编译U-Boot

执行 make CROSS_COMPILE=arm-linux-命令,编译成功可以得到U-Boot映像。






你可能感兴趣的:(bootloader介绍)