单片机
返回首页

bootloader 简介

2024-11-18 来源:elecfans

一 bootloader的概念
bootloader就是在操作系统内核或用户应用程序运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备,建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核或用户应用程序准备好正确的环境。

二 bootloader的特征
1 初始化硬件,特别是内存控制器
2 提供linux内核的启动参数
3 启动linux内核

简化开发过程的一些特征:
1 读写存储器
2 通过串口/网口下载文件到RAM
3 从RAM复制文件到FLASH中

三 bootloader安装
系统加电或复位后,所有的CPU通常都从CPU制造商预先安排的地址上取指令。比如,S3C44B0在复位后都从地址0X00000000取它的第一条指令。而嵌入式系统通常都有某种类型的固态存储设备(比如:ROM,EEPROM或FLASH等)被安排在这个起始地址上,因此在系统加电后,CPU将首先执行bootloader程序。也就是说对于基于S3C44B0的这套系统,我们的bootloader是从0地址开始存放的,而这块起始地址需要采用可引导的固态存储设备如FLASH。

四 控制bootloader的设备或机制
串口通讯是最简单也是最廉价的一种双机通讯设备,所以往往在bootloader中主机和目标机之间都通过串口建立连接,bootloader程序在执行时通常会通过串口来进行I/O,比如:输出打印信息到串口,从串口读取用户控制字符等。当然如果认为出口通讯速度不够,也可以采用网络或USB通讯,那么相应的在bootloader中就需要编写各自的驱动。

五 bootloader的启动过程
多阶段的bootloader能提供更为复杂的功能,以及更好的可移植性。从固态存储设备上启动的bootloader大多都是2阶段的启动过程,也即启动过程可以分为stase1和stase2两部分。

六 bootloader的操作模式
1 启动加载模式:这种模式也称为“自主”模式,也即bootloader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。这种模式是bootloader的正常工作模式。
2 下载模式:在这种模式下,目标机上的bootloader将通过串口连接或网络连接等通信手段从主机下载文件,比如:下载应用程序,数据文件,内核映像等,从主机下载的文件通常首先被bootloader保存到目标机的RAM中然后再被bootloader写到目标机上的固态存储设备中。bootloader的这种模式通常在系统更新时使用。

七 bootloader的重要功能
1 烧写falsh
2 烧写内核
3 烧写文件系统
4 使用jtag口或其他

八 u-boot启动过程
1 stage1:
a 基本的硬件初始化
b 为加载stage2准备RAM空间
c 拷贝stage2到RAM中
d 设置堆栈指针sp
e 跳到stage2的入口点
2 stage2:
a 初始化本阶段要使用到的硬件设备
b 检测系统的内存映射
c 加载内核映像和文件系统映像
d 设置内核的启动参数
e 调用内核

九 移植u-boot的步骤
1 下载源代码
2 阅读readme文件
3 了解u-boot结构
4 添加修改
5 编译
6 调试
7 发布


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 简洁的过零调功器电路设计与分析

  • 永不缺相启动运行的电动机控制电路

  • IGBT模块通过控制门极阻断过电流

  • 开关电源的基本组成及工作原理

  • 基于CA3193的热电偶放大器电路

  • 基于TDA1554的立体声放大器电路

    相关电子头条文章