1.Bootloader是在操作系统运行之前执行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备。

2.Bootloader的多种启动方式:
 网络启动方式
 磁盘启动方式
 Flash启动方式

3.Flash启动方式介绍:
 NOR Flash可以支持随机访问,所以代码是可以直接在Flash上执行的。Bootloader一般是存储在Flash芯片上的。另外,Linux内核映像和RAMDISK也可以存储在Flash上。通常需要把Flash分区使用,每个区的大小应该是Flash擦除块大小的整数倍。
 Bootloader一般放在Flash的底端或者顶端;
 分配参数区作为Bootloader的参数保存区域;
 内核映像区,Bootloader引导Linux内核,就是要从这个地方把内核映像解压到RAM中去,然后跳转到内核映像入口执行;
 文件系统区,如果使用JFFS2文件系统,将直接挂接为根文件系统;
 数据区。

4.Bootloader的种类:
 LILO
 GRUB
 Loadlin
 ROLO
 Etherboot
 LinuxBIOS
 BLOB
 U-boot
 RedBoot

5.关于U-boot:
ARM处理器的芯片商很多,所以每种芯片的开发板都有自己的Bootloader。结果ARM bootloader也变得多种多样。最早有为ARM720处理器的开发板的固件,又有了armboot,StrongARM平台的blob,还有S3C2410处理器开发板上的vivi等。现在armboot已经并入了U-Boot,所以U-Boot也支持ARM/XSCALE平台。U-Boot已经成为ARM平台事实上的标准Bootloader。

6.U-Boot源码结构:
 文件分为3类:
 第1类目录与处理器体系结构或者开发板硬件直接相关;
 第2类目录是一些通用的函数或者驱动程序;
 第3类目录是U-Boot的应用程序、工具或者文档。

7.U-Boot的源码顶层目录说明:

目    录           特    性         解 释 说 明
board              平台依赖         存放电路板相关的目录文件,例如:RPXlite(mpc8xx)、smdk2410(arm920t)、sc520_cdp(x86) 等目录
cpu                平台依赖         存放CPU相关的目录文件,例如:mpc8xx、ppc4xx、arm720t、arm920t、 xscale、i386等目录
lib_ppc           平台依赖         存放对PowerPC体系结构通用的文件,主要用于实现PowerPC平台通用的函数
lib_arm           平台依赖         存放对ARM体系结构通用的文件,主要用于实现ARM平台通用的函数
lib_i386          平台依赖         存放对X86体系结构通用的文件,主要用于实现X86平台通用的函数
include            通用             头文件和开发板配置文件,所有开发板的配置文件都在configs目录下
common          通用             通用的多功能函数实现
lib_generic       通用             通用库函数的实现
Net                 通用             存放网络的程序
Fs                  通用             存放文件系统的程序
Post               通用             存放上电自检程序
drivers            通用             通用的设备驱动程序,主要有以太网接口的驱动
Disk                通用             硬盘接口程序
Rtc                 通用             RTC的驱动程序
Dtt                 通用             数字温度测量器或者传感器的驱动
examples       应用例程         一些独立运行的应用程序的例子,例如helloworld
tools              工具             存放制作S-Record 或者 U-Boot格式的映像等工具,例如mkimage
Doc                文档             开发使用文档

转载于:https://www.cnblogs.com/ziqiuqiandao/archive/2012/03/25/2417094.html

bootloader学习笔记相关推荐

  1. bootloader学习笔记---第二篇

    目录 一.链接地址与跳转 二.bootloader疑难问题 1.应用程序中使用中断导致程序跑飞或者不能重新下载程序? 2.中断向量表具体是怎么重映射? 3.bootloader更新app过程中意外断电 ...

  2. bootloader学习笔记---第一篇以stm32为例

    目录 一.bootloader的任务 二.bootloader开发的基础知识 段的概念 重定位的概念 散列文件的概念 异常向量(待补充) 三.最简单的bootloader程序 四.使用汇编跳转 五.备 ...

  3. BootLoader学习笔记(1)

    1:概念:       BootLoader就是操作系统内核运行之前运行的一段小程序,通过这段小程序,可以初始化硬件设备.建立内存空间映射空间,从而将系统软硬件环境带到一个合适的合适的状态,以便为最终 ...

  4. 七天入门linux,RHCE认证学习笔记-第七天

    RHCE认证学习笔记-第七天 1.系统启动过程: BIOS初始化-->引导程序(Bootloader)-->内核初始化-->进程(Init)-->用户程序 (1)BIOS初始化 ...

  5. C# 学习笔记(12)hex文件转bin文件小工具

    C# 学习笔记(12)hex文件转bin文件小工具 hex文件格式 hex文件格式网上有很多 我这里参考HEX文件格式详解https://blog.csdn.net/weixin_39752827/a ...

  6. redhat6.x_linux学习笔记

    ULE 学习笔记 ls -l install.log -:rw-r--r--: 1 :root: root :39410 :2012-12-03 :install.log 文件类型 : 权限位 : 硬 ...

  7. 狂神docker学习笔记

    狂神docker(基础+进阶)-学习笔记 狂神说docker 三体:弱小和无知不是生存的障碍,傲慢才是. 从基础到进阶,每个视频都有认真看,做笔记和练习,以此篇分享整个学习过程 画图网页 docker ...

  8. ESP32学习笔记(1)——搭建环境、编译烧写(Windows+VS Code)

    Espressif-IDE 环境搭建参看 ESP32学习笔记(50)--搭建环境.编译烧写(Windows+Espressif-IDE) 一.搭建环境 1.1 官方资料 ESP-IDF 编程指南 1. ...

  9. 【原创】关于noot的学习笔记

    预备文章 //-----------------------------------------------------------------------// <Nboot程序详细分析> ...

最新文章

  1. HDU 5047 Sawtooth 高精度
  2. Python在ubuntu中更改Python和pip指向
  3. pythonweb开发-PythonWeb开发教程(一),开发之前需要准备什么
  4. hibernate------java-delete-insert-update
  5. 几个删除重复记录的SQL语句
  6. Spring Data JPA 从入门到精通~JpaSpecificationExecutor实现原理
  7. 易语言通过服务器发送文件,易语言服务器与客户端发送文件
  8. 为什么你会觉得微服务架构很别扭
  9. mysql默认dba_DBA 基本常识 - 安装完 MySQL 后必须调整的 10 项配置 - iTeknical
  10. 小程序的全栈开发新时代
  11. FAQ:The field file exceeds its maximum permitted size of 1048576 bytes.
  12. 废旧光盘手工小制作_废旧物手工制作:光盘小制作
  13. 程序员坐行李箱迎寒风编码2小时,上热搜!你怎么看?
  14. Prometheus监控
  15. C语言应用笔记(一):运算符优先级和使用问题
  16. 网络营销好学吗?自学和培训该怎么选?
  17. android 5.0小米1刷机包,小米1刷机包 V5稳定版V1.2 流畅纯净 精简省电 默认开启未知来源 Android4.1.2...
  18. which,that 引导定语从句不同
  19. java数据查询_Java中的大量数据查询
  20. 说一下乐观锁和悲观锁?

热门文章

  1. 关于db link权限分配的苦旅(一)
  2. extjs获取当前时间
  3. android 将IE设为默认打开的浏览器
  4. 【Angular】启动过程
  5. Android Studio 如何导入第三方jar包(整理)
  6. 性能测试工具系列(一):性能测试工具对比分析
  7. ps -ef | grep 查看进程命令
  8. EL表达式的作用与限制条件
  9. 初级软件工程师的成长
  10. vs2012常用快捷键总结