尽可能快的启动系统,对于自动化设备是非常重要的。系统能够在用户无法感知的时间内启动,也就意味着在不需要工作时,可以完全切断电源,而不是挂起 进入休眠状态。本文基于Atmel AT91系列片上系统和NAND闪存,经过一系列的优化,将Linux系统启动时间,从最初的11秒,降低到最终的656毫秒。 背景知识 系统从上电到完全启动,需要经过许多过程。一个简化的启动流程大概包含: 硬件重置 启动引导程序(bootloader) 操作系统初始化 应用程序执行 其中硬件非常关键,但是硬件一般难以更改。后续的优化,主要针对引导程序、Linux内核和应用程序展开。 引导程序优化 引导程序主要完成对CPU的基础