linux bsp 高速启动(uboot, linux kernel内核,rootfs根文件系统,drivers驱动,电源管理)
- 技术简介
随着数字家电的高功能化,将易于开发的Linux用作OS的情况越来越多,因此,启动时间成为问题。因为:OS比RTOS(real-time operating system)尺寸大,所以,Linux系统的机型启动更加耗费时间。
日本嵌入式软件开发商 Ubiquitous 公司日前宣布,他们已经开发出了一种名为 QuickBoot 的技术,可以让电视、机顶盒、汽车电脑、智能本、智能手机等 ARM 架构平台产品,在 1 秒钟内完成 Linux 或 Android 系统的冷启动过程。
QuickBoot利用先进的休眠技术,可以瞬间将设备从完全断电状态、恢复到正常状态。
该技术的核心在于,将系统启动所必需的核心数据,优先从非易失性存储设备(闪存),复制到内存,完成初步启动工作后,再依次传输其他应用程序数据。相比常见的休眠模式需要将所有内容复制到内存后才完成启动,这种 QuickBoot 模式的速度更快,而且启动速度也与系统内存容量无关。

QuickBoot对系统内存进行分析,并确定最有效的方法,将系统恢复到完全启动状态。
这是一种冷启动技术,使用QuickBoot时,设备无需保持待机功率或耗费电池电量。
- 技术亮点
- 安全启动
- 增强性能
- 优化启动时间
- 支持Multi-Core
- 开源
- 支持Linux和Android系统
- 启动时间的对比
在 Ubiquitous 的演示中,两台同样由 Atmark 公司制造的 Armadillo-500 FX Android 开发平台,均搭载 Freescale i.MX31 400MHz ARM11 处理器,128MB SDRAM。对比如下:
- 基于 QuickBoot 技术的系统,在 1.4 秒内即可完成了 Android 系统启动,可以正常进行操作。
- 对比系统,则花了将近 20 秒。
- 支持平台与操作系统
QuickBoot 技术目前支持 ARM9、 ARM11 和 Cortex-A8 系列平台,Linux 和 Android 系统,他们将向客户厂商提供一套 QuickBoot SDK R1.0 以实现该技术。而未来,他们计划将该技术,推广到 Cortex-A9 系列的多核平台,以及更多的操作系统。
- QuickBoot构成
由三个软件构成,如下:
(1)独立的自举程序(Boot Loader)。
(2)将运行状态调往内存的Intelligent Resource Allocator(IRA)。
(3)保存运行状态的快照驱动(Snapshot Driver)。
- QuickBoot的用法:
Linux高速启动,分为2个步骤:
1.保存高速启动镜像【红色箭头】:
(1)出厂前,运行uboot -> IRA -> linux kernel和dts -> drivers -> applications。
(2)当HMI显示后,启动Linux电源管理suspend,让driver把每个外设的寄存器状态,保存到RAM。
(3)把RAM数据(包含:kernel + APP + 外设状态),保存为一个镜像文件Image,存储到Flash或eMMC。
2.高速启动【灰色箭头】
(1)上电后,uboot不再引导linux kernel和dts。
(2)uboot引导IRA -> IRA从Flash或eMMC,读取高速启动镜像Image,然后,恢复到RAM。
(3)恢复Linux电源管理,让各个driver,从RAM读取外设状态,写入到外设Register。
(4)至此,Linux恢复到休眠时的状态,HMI显示成功,然后,Linux可以继续向下运行。。

- QuickBoot引导迁移至多个状态:参考《下图》。
- 自举程序调出IRA。
- IRA从事先用快照驱动保存的运行状态中,选出必要程序,写入内存。
- 然后回归到通常的内核。
- 当保存有多个运行状态时,可以通过按下某个按钮接通电源,从而启动特定运行状态。

==================== 如果感觉不错,请帮点赞、关注、收藏!====================
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)