Bootloader

来源:互联网 发布:c语言 回车换行 编辑:程序博客网 时间:2024/05/22 03:14

今天偶然翻看以前的比较,突然发现一些基础的东西,跟大家分享下

Bootloader主要任务是:1初始化硬件,2启动操作系统

那么为什么要移植bootloader呢,1没种不同的CPU体系结构不同。2具体嵌入式板级设备的配置不同。3基于同一种cpu,但他们硬件资源配置可能不一致。

bootloader分两阶段启动:

第一阶段:1硬件设备初始化

   (汇编)    2设置好堆栈 (这两步在flash中为第二阶段C语言准备好环境)

第二阶段: 1硬件设备初始化

 (C语言) 2将内核映像和根文件系统映像从flash上读到RAM中

   3调用内核

下面说一下我们经常用的Uboot

Uboot:支持多种嵌入式操作系统,支持多种嵌入式CPU

目录结构

Board:和开发板相关的文件

common:实现Uboot所支持的命令

cpu:与特定cpu架构相关的代码。每一款Uboot下支持的cpu在该目录下对应一个子目录。

Disk:对磁盘的支持。

doc:文档目录。
Drivers:Uboot支持的设备驱动程序都放在该目录,比如各种网卡,支持CFI的flash,串口,USB等。

FS:文件系统的支持。

include:头文件  .config目录下,有与开发板相关的配置头文件。

NET:与网络协议栈相关的代码。

Tools:生成Uboot的工具。

原创粉丝点击