学习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上层开发人员需要学习的内容。
首先,如果你只是在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系统底层的,是嵌入式系统开发人员。
如果你是一个嵌入式开发人员,或者你希望成为一个嵌入式开发人员,或者你只是简单地对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学习过程中涉及到的面比较广,上层到下层都有,可以根据自己的情况选一个着重方向。
分享到:
相关推荐
学习QNX系统指令。
包括以下: QNX操作系统安装手册.doc QNX操作系统介绍-培训教材.doc SGU系统硬件安装及配置手册.doc 是难得的学习QNX资料
自己整理的QNX6.5学习资料,有中文和英文两种,由浅入深,资料比较丰富。从QNX系统介绍和命令使用开始,到开发。
QNX下的串口通信,在实际的机器上测试了一下,发现可以连续的发送数据。
QNX 源代码,仅仅参考学习用。 想了解更深入的可以阅读代码,QNX 源代码让你更了解设计架构。
GF (Graphics Framework) 是QNX出的,与Photon完全不同的一套图形系统。现在的QNX,基本上有三种(四种?)图形开发用的环境可选 。
X86平台QNX6.5系统下NVRAM驱动及测试程序
该文档详细介绍了qt代码移植到qnx环境下的过程,并且介绍了如何在qnx环境下编译和运行。
如何在qnx上获取进程内存,上传了一份文档,说明如何获取内存
The QNX Neutrino Persistent Publish/Subscribe (PPS) service is a small, extensible publish and subscribe service that offers persistence across reboots. It's designed to provide a simple and easy-to-...
知道QNX的就会下载了,在这里就不说了。。
QNX TSVN官方完全源代码 供学习参考 展开200M
QNX6源码不再开源,系统的资料相当少,要弄清系统结构,必须分析源代码,本代码是低版本的,但不影响原理的分析学习。
QNX下Time & Clock的培训PPT
在VMWare下安装qnx6 在VMWare下安装qnx6 在VMWare下安装qnx6 在VMWare下安装qnx6 在VMWare下安装qnx6 在VMWare下安装qnx6
使用开发包在windows中开发程序,然后连接到QNX中运行。原本是英文,看着不舒服,翻译出来,供大家参考。水平有限,错误难免。
使用QNX Momentics IDE 4.7开发的qnx串口通信程序,与linux的串口还是有点不同的
QNX系统常用命令,参考QNX7.0帮助文档和QNX工具手册,经过在板子上验证。文档包含QNX系统介绍,SHELL命令解释器,QNX常用命令使用说明。
QNX Neutrino实时操作系统下运行的程序
基于QNX RTOS平台下的简单的Socket测试程序,分别给出了Server、和Client的编码示例。