bootloader学习笔记
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学习笔记相关推荐
- bootloader学习笔记---第二篇
目录 一.链接地址与跳转 二.bootloader疑难问题 1.应用程序中使用中断导致程序跑飞或者不能重新下载程序? 2.中断向量表具体是怎么重映射? 3.bootloader更新app过程中意外断电 ...
- bootloader学习笔记---第一篇以stm32为例
目录 一.bootloader的任务 二.bootloader开发的基础知识 段的概念 重定位的概念 散列文件的概念 异常向量(待补充) 三.最简单的bootloader程序 四.使用汇编跳转 五.备 ...
- BootLoader学习笔记(1)
1:概念: BootLoader就是操作系统内核运行之前运行的一段小程序,通过这段小程序,可以初始化硬件设备.建立内存空间映射空间,从而将系统软硬件环境带到一个合适的合适的状态,以便为最终 ...
- 七天入门linux,RHCE认证学习笔记-第七天
RHCE认证学习笔记-第七天 1.系统启动过程: BIOS初始化-->引导程序(Bootloader)-->内核初始化-->进程(Init)-->用户程序 (1)BIOS初始化 ...
- C# 学习笔记(12)hex文件转bin文件小工具
C# 学习笔记(12)hex文件转bin文件小工具 hex文件格式 hex文件格式网上有很多 我这里参考HEX文件格式详解https://blog.csdn.net/weixin_39752827/a ...
- redhat6.x_linux学习笔记
ULE 学习笔记 ls -l install.log -:rw-r--r--: 1 :root: root :39410 :2012-12-03 :install.log 文件类型 : 权限位 : 硬 ...
- 狂神docker学习笔记
狂神docker(基础+进阶)-学习笔记 狂神说docker 三体:弱小和无知不是生存的障碍,傲慢才是. 从基础到进阶,每个视频都有认真看,做笔记和练习,以此篇分享整个学习过程 画图网页 docker ...
- ESP32学习笔记(1)——搭建环境、编译烧写(Windows+VS Code)
Espressif-IDE 环境搭建参看 ESP32学习笔记(50)--搭建环境.编译烧写(Windows+Espressif-IDE) 一.搭建环境 1.1 官方资料 ESP-IDF 编程指南 1. ...
- 【原创】关于noot的学习笔记
预备文章 //-----------------------------------------------------------------------// <Nboot程序详细分析> ...
最新文章
- HDU 5047 Sawtooth 高精度
- Python在ubuntu中更改Python和pip指向
- pythonweb开发-PythonWeb开发教程(一),开发之前需要准备什么
- hibernate------java-delete-insert-update
- 几个删除重复记录的SQL语句
- Spring Data JPA 从入门到精通~JpaSpecificationExecutor实现原理
- 易语言通过服务器发送文件,易语言服务器与客户端发送文件
- 为什么你会觉得微服务架构很别扭
- mysql默认dba_DBA 基本常识 - 安装完 MySQL 后必须调整的 10 项配置 - iTeknical
- 小程序的全栈开发新时代
- FAQ:The field file exceeds its maximum permitted size of 1048576 bytes.
- 废旧光盘手工小制作_废旧物手工制作:光盘小制作
- 程序员坐行李箱迎寒风编码2小时,上热搜!你怎么看?
- Prometheus监控
- C语言应用笔记(一):运算符优先级和使用问题
- 网络营销好学吗?自学和培训该怎么选?
- android 5.0小米1刷机包,小米1刷机包 V5稳定版V1.2 流畅纯净 精简省电 默认开启未知来源 Android4.1.2...
- which,that 引导定语从句不同
- java数据查询_Java中的大量数据查询
- 说一下乐观锁和悲观锁?