i.MX6q+QNX(学习笔记二)

本文深入探讨了QNX操作系统,一个由黑莓公司开发的微内核实时系统。文章介绍了QNX的任务调度机制,包括优先级抢占和三种调度策略:FIFO、时间片轮询和适应式调度。同时,强调了动态时间分区的重要特性。接着,详细阐述了QNX的启动流程,从IPL加载到内核启动procnto,以及Buildfile在构建操作系统映像中的作用,特别是引导脚本和启动脚本的角色。Bootstrap中,startup-*是首个程序,procnto是最后加载的,确保了系统的正确启动。
摘要由CSDN通过智能技术生成

QNX是加拿大黑莓公司的一款商业版的微内核实时操作系统。因此首先要清楚知道QNX的任务调度机制,一种优先级抢占的任务调度机制,在同优先级的情况下又有三种调度机制可供灵活选择:1.FIFO 2.时间片轮询调度 3.适应式调度。除此之外,还需要了解QNX的一个特色:动态时间分区(Adaptive Partitioning).

知道微内核的概念就好理解QNX了:除了Microkernel做内核存在外,其他任何功能模块(包括进程管理)都作为程序存在。

因此QNX启动时,先加载IPL(Initial Program Loader),完成必要的硬件初始化(CPU存储控制器、存储芯片、),然后复制拷贝系统镜像,引导系统启动。

然后QNX进入 startup程序,完成所有硬件初始化配置,如定时器 、时钟频率、中断控制器、缓存控制器等,但不包括配置串口波特率之类的东西。它也不会初始化标准周边设备,例如以太网控制器或EIDE硬件disk控制器——这些都留给驱动稍后启动以后来完成。

startup程序完成系统初始化后,把系统信息存放在系统页,就把控制权交给内核,内核进而启动procnto程序,一个进程管理程序。

 

其中的关键是构建Buildfile。通常一个嵌入式系统需要一个可启动的操作系统映象文件(OS Image)。对于基于QNX的嵌入式一个应用系统,就是根据所选择的CPU类型以及应用程序所需要的操作系统模块来定制嵌入式系统。构建Buildfile的过程就是配置操作系统映象的过程。简单来说Buildfile是一个产生映象文件所需遵守的一组规则、准则。Buildfile由三部分组成,其结构如下:

l        bootstrap script(启动引导脚本)

l        startup script(启动脚本)

l        file list(文件列表)

 

1.引导脚本

不同的CPU其启动的方式不同,相应的启动引导程序也就不同。启动引导脚本bootstrap script的作用就是配置和CPU相适应的微内核。一个典型的引导脚本如下:

 
[image=0x10800000]  
[virtual=armle-v7,raw +compress] .bootstrap = {  
  
        startup-imx6x-smart-device -v -W  
  
    PATH=/proc/boot procnto-smp-instr -ae   
}   

 
 

 

在这个例子中:

image=0x10800000-------->Imaged的加载地址;

virtual=armle-v7      -------->CPU类型

raw                          -------->产生Image的格式,我这里最后生成的就是 ifs-mx6q-sabresmart.raw

+compress            -------->Image是否压缩

.bootstrap               -------->固定名称,说明是一个启动脚本

startup-imx6x-smart-device-------->启动startup程序

PATH=/proc/boot     --------&

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值