二、引导程序的特点
对于大多数智能电视而言,引导程序容量较小,一般单独存储于NOR Flash中,或者和主程序一起存于NAND Flash或eMMC中。引导程序处于软件系统的最前级,主要完成以下四项工作:
1.启动操作系统内核
引导程序先初始化DDR存储器和Flash存储器,然后将Linux内核程序从Flash存储器中读取到DDR存储器中,最后启动Linux内核,将控制权移交给Linux内核,这时引导程序停止运行。如果想要再次启动引导程序,需关机后重新开机。
2.部署整个操作系统
引导程序会先给linux内核准备一些启动参数,并放在内存中的特定位置。内核启动后,系统会到这个特定位置去下载引导程序预存的参数,然后在内核中解析这些参数。这些参数将被用来指导hnux内核的启动过程。
3.硬件驱动
为了执行一些功能任务,引导程序必须让相应的硬件工作,比如:在软件升级时,就要驱动Flash存储器;在升级过程中,屏上要显示升级进度条,则要驱动液晶屏;在人机交互时,则要驱动串口;在启动上网功能时,则要驱动网卡。
4.搭建人机控制台
在启动引导程序后,系统控制权将移交给引导程序,这时引导程序需搭建一个人机控制台,以便执行各项任务,比如在控制台下执行DDR检测、清空、升级等任务,执行完任务后会回到引导程序的命令行,再继续执行引导程序的其他命令。
一旦内核启动后,引导程序的“使命”就已完成,这时的控制台将变成安卓控制台,不会再执行引导程序下的控制命令。
提示:若引导程序异常,通常是无法正常开机的,甚至也无法强制升级。另外,在部分机型中,若引导程序对部分硬件驱动异常,则会出现开机后死机或自动关机故障。