
QNX系统启动经历过7个阶段:
PLL => IPL => Startup => BaseSystem(Kernel,Core OS) => Boot Script => SLM => Apps
PLL阶段:
硬件时钟稳定阶段,锁相环将外部晶振稳定到系统内部的所有频率(Sysclk,timer等),消耗时间大概在32ms左右;属于纯硬件动作;
IPL阶段:
基本操作包括:CPU、内存、外部存储等控制器的初始化,将启动程序从映像文件系统IFS(包括启动程序、内核、启动脚本、驱动程序、应用程序等)拷贝到内存,并跳转到内存继续执行;IPL阶段执行的程序,类似于UBoot,UEFI(XBL,ABL)等启动引导程序。
Startup阶段:
可引导OS映像中的第一个程序是一个启动程序,其目的是完成所有硬件初始化配置,如定时器 、时钟频率、中断控制器、缓存控制器等,但不包括配置串口波特率之类的东西。它也不会初始化标准周边设备,例如以太网控制器或EIDE硬件disk控制器——这些都留给驱动稍后启动以后来完成,然后将控制加载并转移到内核(procnto或procnto-smp)。
Base system阶段:
内核初始化内存管理单元(MMU),创建结构来处理分页、进程和异常,以及启用中断。 一旦这个阶段完成,内核就完全可操作了,可以开始从引导脚本加载和运行用户进程。
Boot Script阶段:
每个硬件产品有不同的脚本集,以支持不同的配置。 构建文件中的脚本块允许您指定启动哪些驱动程序和应用程序,以及以什么顺序启动。下面是可能会在引导脚本中加载的程序:
1、屏幕和摄像服务
2、音频服务和早期编钟工具
3、磁盘驱动器(然后挂载磁盘)
4、调试实用程序,如slogger2和dumper
5、BSP驱动,如串行驱动,实时时钟,和其他硬件实用程序
6、SLM和系统调试控制台
SLM(系统启动和监控) 阶段:
SLM是启动系统所需进程的服务。 通常,有些进程和应用程序不是立即需要的,比如网络连接(io-pkt),或者需要在主应用程序之前启动的进程,比如人机界面(HMI)。 此时,SLM将等待进一步的指示。 SLM由一组配置文件(SLM -config-all.xml和SLM -config-platform.xml)控制,它们告诉SLM要启动哪些模块,以及这些模块内部或模块之间是否存在依赖关系。
系统启动Screen时间轴:

QNX系统启动分为7个阶段:PLL、IPL、Startup、Base System、Boot Script、SLM和Apps。PLL阶段是硬件时钟稳定;IPL阶段负责CPU、内存等初始化,加载启动程序;Startup阶段完成硬件配置并转移控制到内核;Base System阶段内核初始化MMU和中断处理;Boot Script阶段根据产品定制加载驱动和应用;SLM阶段启动非紧急服务和进程,等待进一步指令。

4629

被折叠的 条评论
为什么被折叠?



