
把ZONE1作为运行区,ZONE2作为备份区,每次升级时先将代码写在ZONE2,并设置标志,然后重启,bootloader识别有升级标志,将ZONE2的代码拷贝至ZONE1区,并清标志,就可以了,每次都是跳转至ZONE1运行。
上电之后到U-boot的流程
暂不关心CP的启动,而主要关心AP
Android启动流程——1序言、bootloader引导与Linux启动
Bootloader是什么意思?最近就有网友问到这个问题,简单来说它属于安卓系统的一种模式,下面电脑百事小编为新手朋友科普一下bootloader到底是什么,有何用。
Bootloader
从字面意思来看,bootloader
是一个英文单词,中文含义为
「引导装载程序」,「引导模式」等。而日常我们一般提到这次,主要跟安卓手机有关,下面我们来看看专业的释义。
Bootloader是什么意思?
在嵌入式 *** 作系统中,BootLoader是在 *** 作系统内核运行之前运行,它可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用 *** 作系统内核准备好正确的环境。
在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。在一个基于ARM7TDMI
core的嵌入式系统中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。
简单来说,BootLoader就是在安卓 *** 作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用 *** 作系统内核准备好正确的环境。
举个例子:
Bootloader从字面上来看就是启动加载的意思。用过电脑的都知道,windows开机时会首先加载bios,然后是系统内核,最后启动完毕。那么bootloader就相当于手机的bios,它在手机启动的时候根据基带初始化硬件,然后引导系统内核,直到系统启动。
Bootloader在安卓手机中很重要,除了刷第三方的ROM,否者不必解锁bootloader,不当的 *** 作设置可能会导致引导出错,导致手机无法开机等。
一般来说,安卓手机出厂都会有bootloader锁,如果我们不解锁就无法直接卡刷第三方ROM或者获取root权限,虽然一定程度上保护手机系统安全,但是三星自带的安卓系统确实不算优秀,无法ROOT很多好玩的软件也无法使用。也就是说,它相当于安卓系统的一个初始化安全锁,有些安卓手机如何要ROOT或者刷机,需要先进行 Bootloader
解锁。
通常,Boot Loader 是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的 Boot Loader 几乎是不可能的。尽管如此,我们仍然可以对 Boot Loader 归纳出一些通用的概念来,以指导用户特定的 Boot Loader 设计与实现。
1 Boot Loader 所支持的 CPU 和嵌入式板
每种不同的 CPU 体系结构都有不同的Boot Loader。有些 Boot Loader 也支持多种体系结构的 CPU,比如 U-Boot 就同时支持 ARM 体系结构和MIPS 体系结构。除了依赖于 CPU的体系结构外,Boot Loader 实际上也依赖于具体的嵌入式板级设备的配置。这也就是说,对于两块不同的嵌入式板而言,即使它们是基于同一种 CPU 而构建的,要想让运行在一块板子上的 Boot Loader 程序也能运行在另一块板子上,通常也都需要修改 Boot Loader 的源程序。
2 Boot Loader 的安装媒介(Installation Medium)
系统加电或复位后,所有的CPU 通常都从某个由 CPU 制造商预先安排的地址上取指令。比如,基于 ARM7TDMI core 的 CPU 在复位时通常都从地址 0x00000000 取它的第一条指令。而基于CPU 构建的嵌入式系统通常都有某种类型的固态存储设备(比如:ROM、EEPROM 或 FLASH 等)被映射到这个预先安排的地址上。因此在系统加电后,CPU 将首先执行Boot Loader 程序。
下图1就是一个同时装有 Boot Loader、内核的启动参数、内核映像和根文件系统映像的固态存储设备的典型空间分配结构图。
图1 固态存储设备的典型空间分配结构
3 用来控制 Boot Loader 的设备或机制
主机和目标机之间一般通过串口建立连接,Boot Loader 软件在执行时通常会通过串口来进行 I/O,比如:输出打印信息到串口,从串口读取用户控制字符等。
4 Boot Loader 的启动过程是单阶段(Single Stage)还是多阶段(Multi-Stage)
通常多阶段的 Boot Loader 能提供更为复杂的功能,以及更好的可移植性。从固态存储设备上启动的 Boot Loader 大多都是 2 阶段的启动过程,也即启动过程可以分为 stage 1和 stage 2 两部分。而至于在 stage 1 和 stage 2 具体完成哪些任务将在下面几篇讨论。
5 Boot Loader 的 *** 作模式 (Operation Mode)
大多数 Boot Loader 都包含两种不同的 *** 作模式:"启动加载"模式和"下载"模式,这种区别仅对于开发人员才有意义。但从最终用户的角度看,Boot Loader 的作用就是用来加载 *** 作系统,而并不存在所谓的启动加载模式与下载工作模式的区别。
启动加载(Boot loading)模式:这种模式也称为"自主"(Autonomous)模式。也即 Boot Loader 从目标机上的某个固态存储设备上将 *** 作系统加载到 RAM 中运行,整个过程并没有用户的介入。这种模式是 Boot Loader 的正常工作模式,因此在嵌入式产品发布的时侯,Boot Loader 显然必须工作在这种模式下。
设备系统有损坏。
1、首先使用的工具不适用于修改该设备的bootloader。
2、其次设备已经被篡改或损坏,导致无法进行修改。
3、最后查看使用的工具的说明文档,了解其兼容性要求和使用方法。
简单地说,BootLoader就是在 *** 作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用 *** 作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。比如在一个基于ARM7TDMI core的嵌入式系统中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。
以上就是关于Stm8单片机bootloader中iap和app都要用中断全部的内容,包括:Stm8单片机bootloader中iap和app都要用中断、Android系统启动流程(二)BootLoader引导程序、bootloader是什么 Bootloader是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)