Bootloader的基本概念
四、 ARM Bootloader的共性
对于一个ARM系统来说,本质上,bootloader作为引导与加载内核镜像的“工具”,在实现上,必须提供以下几个功能,更确切地说,必须做到以下几点:
(1)初始化RAM(必需):bootloader必须能够初始化RAM,因为将来系统要通过它保存一些Volatile数据,但具体地实现要依赖与具体的CPU以及硬件系统。
(2)初始化串口(可选,推荐):bootloader应该要初始化以及使能至少一个串口,通过它与控制台联系进行一些debug的工作;甚至与PC通信。
(3)创建内核参数列表(针对linux操作系统,推荐)。
(4) 启动内核镜像(必需):根据内核镜像保存的存储介质不同,可以有两种启动方式:FALSH启动以及RAM启动;但是无论是哪种启动方式,下面的系统状态必须得到满足:
CPU寄存器的设置: R0=0
R1=机器类型;
R2=启动参数标记列表在RAM中的起始地址;
这三个寄存器的设置是在最后启动内核时通过启动参数来传递完成的。
CPU模式: 关闭中断;属于SVC模式;
Bootloader中没有必要支持中断的实现,这属于内核机制以及设备驱动管理的管理
范畴;SVC模式是系统的一种保护模式,这样就可以进行一些只能在SVC模式下的操
作,例如一些特定寄存器访问操作。
Cache和MMU的设置:
MMU必须关闭;数据cache必须关闭;指令cache可以关闭也可以开启;
Bootloader中所有对地址的操作都是使用物理地址,是实在的实地址,不存在虚拟
地址,因此MMU必须关闭。Bootloader主要是装载内核镜像,镜像数据必须真实写回
SDRAM中,所以数据cache必须关闭;而对于指令cache,不存在强制性的规定,但是
一般情况下,推荐关闭指令cache。
Bootloader启动内核镜像的方法是通过跳转语句直接跳转至内核镜像的第一句
指令语句。
转载于:https://www.cnblogs.com/karlchen/archive/2006/09/21/510391.html
Bootloader的基本概念相关推荐
- bootloader详解----bootloader的基本概念
引言 在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行.一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次: 1. 引导加载程序.包括固化在固件(firmware)中的 ...
- 计算机组成原理 BootLoader/BIOS/U-Boot概念理解
一.BIOS概述 BIOS是 Basic Input/Output System 的首字母缩写词.也称为 System BIOS.ROM BIOS 或 PC BIOS. 计算机的BIOS(基本输入/输 ...
- bootloader技术内幕
本文详细地介绍了基于嵌入式系统中的 OS 启动加载程序 ―― Boot Loader 的概念.软 件设计的主要任务以及结构框架等内容. 一.引言 在专用的嵌入式板子运行 GNU/Linux 系统已经变 ...
- Android的bootloader
安卓系统bootloader模式是什么?如何进入bootloader 在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行.可以初始化硬件设备.建立内存空间映射图,从而将系统的软硬件环 ...
- 系统入门(1):安卓系统bootloader模式是什么?如何进入bootloader
安卓系统bootloader模式是什么?如何进入bootloader 在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行.可以初始化硬件设备.建立内存空间映射图,从而将系统的软硬件环 ...
- 嵌入式Linux能调用cheese吗,嵌入式系统BootLoader技术内幕
本文详细地介绍了基于嵌入式系统中的 OS 启动加载程序 ―― Boot Loader 的概念. 软件设计的主要任务以及结构框架等内容. 1. 引言 在专用的嵌入式板子运行 GNU/Linux 系统已经 ...
- 一文看懂汽车电子ECU bootloader工作原理及开发要点
随着半导体技术的不断进步(按照摩尔定律),MCU内部集成的逻辑功能外设越来越多,存储器也越来越大.消费者对于汽车节能(经济和法规对排放的要求)型.舒适性.互联性.安全性(功能安全和信息安全)的要求越来 ...
- 【UDS统一诊断服务】(补充)五、ECU bootloader开发要点详解 (1)
文章目录 引言 1. bootloader的功能 2. 如何建立可靠的总线通信? 重要说明: 3. 解析编程文件(S19/HEX/BIN) 引言 bootloader的功能 如何建立可靠的总线通信? ...
- uboot和bootloader的区别
目录 1.bootLoader 2.uboot 3.uboot和bootLoader的关系 3.1uboot和bootloader的联系 3.2bootloader 与 uboot的区别 4.拓展 1 ...
最新文章
- 2016 linux发行版排行_Linux发行版排行榜榜首:MX 19.1操作系统自有它不凡的魅力...
- WCF 第十三章 可编程站点 所有都与URI相关
- IDEA mybatis 在service无法使用@Autowired , could not autowire
- 推荐一个非常COOL的开源相册程序!
- 10道C++输出易错笔试题收集(敢进来挑战吗?)
- 微软 Ignite 大会 PowerBI 划重点
- 目前服务器操作系统版本,目前服务器操作系统版本号
- angular,vue,react的基本语法—双向数据绑定、条件渲染、列表渲染、angular小案例...
- 电赛机器视觉——激光点定位
- JAVA柱形图动态显示,动态控制柱形图显示柱数
- 工业对5G网络的应用需求和通信过程
- word去掉自动编号格式但保留原编号内容(宏命令)
- springboot2.x 整合 elasticsearch 创建索引的方式
- 线性回归以及非线性回归
- java_232_GOF23设计模式_建造者模式详解_练习
- 程序语言翻译: 2.1在以阶段划分的编译器中,贯穿于编译器工作始终的是( )。2.2 对高级语言程序进行翻译时,源程序中的变量不可能映射到( )
- 看看中国科技巨头们在智能音箱行业的竞争
- 【BUUCTF】强网杯 2019随便注1 write up
- php微信公众点歌台,PHP实现微信公众平台音乐点播功能
- JAVA工具_PinyinConv
热门文章
- python循环语句-Python for循环控制语句一般格式及方法
- python看什么书-自学python看什么书
- python编程做什么工作-学习Python编程后在成都可以做哪些工作?
- python安装包-在Python中安装包的三种方法
- python1000个常用代码-Python常用代码(1)
- python装饰器函数-python函数装饰器之带参数的函数和带参数的装饰器用法示例
- 学会python之后-【一点资讯】学会Python后,人生简直开挂了!
- python创建新文件-python创建和删除文件
- zerodivisionerror什么意思python-Python 中的 else详解
- python语言入门u-Jupyter笔记-Python语法基础(U.1)