Bootloader学习-01 2018-11-02

本文详细解析了Bootloader的作用及启动过程,包括初始化硬件、准备软件环境、调用操作系统内核等关键步骤。介绍了两阶段启动过程,第一阶段使用汇编语言进行基本硬件初始化,第二阶段使用C语言实现更复杂的功能,如检测系统内存映射、设置启动参数并调用内核。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作用

初始化硬件,准备软件环境,调用操作系统内核

启动方式

  • boot loading 模式
  • Downloading 模式

启动过程

大多采用两阶段的启动过程。第一阶段使用汇编实现,完成依赖于CPU体系结构的初始化,并调用第二阶段代码。第二阶段通常使用C语言实现,以便完成更为复杂的功能。

第一阶段

硬件设备初始化

为加载Bootloader的第二阶段代码准备RAM空间

复制Bootloader的第二阶段代码到RAM空间中

设置堆栈

跳转到第二阶段代码的入口点

第二阶段

初始化本阶段要使用到硬件设备

检测系统内存映射

将内核映像和根文件系统映像从Flash上读到RAM空间

为内核设置启动参数

调用内核

Bootloader与内核的交互

方向:单向交互

方法:

  • 约定地址:bootloader将需要传递的内容存放在约定的存储空间,内核启动后从该约定空间中读取。
  • 约定数据结构:tag tag_header (有待补充源码说明)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值