平台之上仍是平台之下?QNX学习的分水领

学习QNX有一段时间了,应该回过头总结一下学习过程,理一理思路,为下一步学习理清方向,同时也能够给各位共同窗习的朋友(我心中“同窗”的概念)提供参考。算法

 

看一看本身的文章和目前学习的内容,发现QNX学习涉及了两个大的方面,一方面是QNX平台的使用以及QNX平台上的开发工做,另外一方面是QNX平台自己的开发以及底层的软硬件原理。对于一个学习者来讲,这两方面其实能够比较独立的。这也就是为何我在标题中将它说成是“分水岭”的缘由,学习者彻底能够根据本身的技术积累,兴趣,工做性质选择其中一方面着重进行学习。编程

 

先看看QNX平台的使用和QNX平台上的开发工做,也就是平台之上。由于QNX为不一样的CPU(X86,ARM,。。),不一样的开发板(如我使用的BeagleBoard)提供了对应的BSP(board support package ),向上提供了统一的API以及使用界面(Shell 或者是Photon),因此QNX的使用者和开发者都不须要详细了解底层的信息。也就是说QNX平台屏蔽了不一样硬件平台的差别,向上提供了统一的编程接口和使用界面。若是咱们是为QNX系统开发应用的开发人员,咱们不须要去了解硬件平台上是使用了X86的CPU仍是ARM的CPU,咱们只须要掌握c\C++,掌握QNX的API就行了。架构

以我我的的认识,实际上QNX系统不会有太多直接的使用者,大多数QNX用户都是经过QNX上层开发人员开发的界面操做QNX的,对他们来说QNX可能就是车载系统的显示屏和几个按钮而已,甚至他们根本没据说过QNX。因此这里只讨论QNX上层开发人员须要学习的内容。ide

首先,若是你只是在QNX平台上开发应用,你不须要一个开发板,QNX Momentics和QNX 虚拟机已经足够了。工具

QNX上层开发人员须要作的是安装QNX Momentics和QNX 虚拟机,抱着QNX官网上的文档好好学习(每天向上)。至于学习的范围,《System Architecture》之类的须要先读一读,但不须要深刻,主要学习的是《Getting Started with QNX Neutrino》和《QNX Programmer’s Guide》这两本,再备上《QNX Library Reference》就差很少了。学习一段时间,掌握了QNX基本编程技巧后,根据本身的状况选择Advanced Graphics图形编程,Photon编程等。再后面可能就须要进一步考虑各类算法,更上层的接口封装等等问题了。到那时你应该算是个高级工人了吧。学习

不过,话说回来,QNX平台上层开发者的身份并不会限制你学习QNX平台下的底层知识。只要你有足够的时间和精力,尽管去学习吧,对底层了解的更多就更容易掌握上层工具。测试

 

说到底层,就看看QNX平台平台之下的学习内容。由于QNX须要为不一样的硬件平台提供支持,因此它提供了不一样硬件平台对应的BSP。可是,打包好的BSP并非万能的,不少状况下都须要对BSP进行调整,多是增长某种输入设备的支持,或者是减小某个系统模块。使人开心的是QNX是开源的,就是说你们能够看到BSP里的源代码,而后对其进行修改(有关商业许可?那是你公司老板要考虑的问题吧,工程师不考虑它)。从中能够看到,须要钻到QNX系统底层的,是嵌入式系统开发人员。ui

若是你是一个嵌入式开发人员,或者你但愿成为一个嵌入式开发人员,或者你只是简单地对ARM CPU感兴趣,QNX系统能够做为一个不错的学习方向。而学习QNX底层的时候必须要有一个开发板(若是是针对ARM固然就必需是ARM开发板)。对于开发板得选择我本身是以为BeagleBoard不错,至少能够有个人博客做参考,:-)。有些网友说BeagleBoard太贵了,那能够考虑只买BeagleBoard板,不买开发板。若是只买BeagleBoard板都以为贵了,就选择其它的一些便宜的开发板,不过有可能没有合适的QNX BSP。固然,没有人规定学嵌入式开发就必需学习QNX,按着开发板的相关资料开始学习就是了。那些就和QNX没有关系了,在这里不做讨论。接口

拿上开发板,在PC上安装QNX Momentics,将开发板环境设置好,开始你的学习。一样,QNX官方文档很须要,仍是先看《System Architecture》,再看《Building Embedded Systems》。看完本身编译一个系统出来,测试运行成功后开始对系统进行裁剪,作到比较随意地建构QNX系统。开发

进一步是各类各类硬件驱动,这个时候就须要对底层有更深的了解,须要学习各类CPU架构,汇编,不一样硬件的文档等等。我我的不是作嵌入式系统出身的,这些知识也在学习中,没法给出更远,更清晰的描述了。后面学习有进一步体会再和各位分享。

 

也就是说,根据我目前的学习体会,在QNX学习过程当中涉及到的面比较广,上层到下层都有,能够根据本身的状况选一个着重方向。

相关文章
相关标签/搜索