`
阿尔萨斯
  • 浏览: 4192744 次
社区版块
存档分类
最新评论

平台之上还是平台之下?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上层开发人员需要学习的内容。

首先,如果你只是在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学习过程中涉及到的面比较广,上层到下层都有,可以根据自己的情况选一个着重方向。

分享到:
评论

相关推荐

    node-v5.2.0-linux-armv7l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v4.4.0-linux-armv6l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v5.9.1-darwin-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v4.8.3-linux-armv6l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    paython作业,字典类型

    paython作业,字典类型

    西北工业大学-金工实习答案.pdf

    西北工业大学-金工实习答案.pdf

    一个自学VR开发用的demo repo.zip

    VR(Virtual Reality)即虚拟现实,是一种可以创建和体验虚拟世界的计算机技术。它利用计算机生成一种模拟环境,是一种多源信息融合的、交互式的三维动态视景和实体行为的系统仿真,使用户沉浸到该环境中。VR技术通过模拟人的视觉、听觉、触觉等感觉器官功能,使人能够沉浸在计算机生成的虚拟境界中,并能够通过语言、手势等自然的方式与之进行实时交互,创建了一种适人化的多维信息空间。 VR技术具有以下主要特点: 沉浸感:用户感到作为主角存在于模拟环境中的真实程度。理想的模拟环境应该使用户难以分辨真假,使用户全身心地投入到计算机创建的三维虚拟环境中,该环境中的一切看上去是真的,听上去是真的,动起来是真的,甚至闻起来、尝起来等一切感觉都是真的,如同在现实世界中的感觉一样。 交互性:用户对模拟环境内物体的可操作程度和从环境得到反馈的自然程度(包括实时性)。例如,用户可以用手去直接抓取模拟环境中虚拟的物体,这时手有握着东西的感觉,并可以感觉物体的重量,视野中被抓的物体也能立刻随着手的移动而移动。 构想性:也称想象性,指用户沉浸在多维信息空间中,依靠自己的感知和认知能力获取知识,发挥主观能动性,寻求解答,形成新的概念。此概念不仅是指观念上或语言上的创意,而且可以是指对某些客观存在事物的创造性设想和安排。 VR技术可以应用于各个领域,如游戏、娱乐、教育、医疗、军事、房地产、工业仿真等。随着VR技术的不断发展,它正在改变人们的生活和工作方式,为人们带来全新的体验。

    node-v5.7.1-darwin-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    5G网络优化案例:EPS FB语音cause34质差小区判断方法和闭环规则.docx

    5G网络优化案例:EPS FB语音cause34质差小区判断方法和闭环规则

    node-v4.1.0-linux-x86.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    基于STC单片机的烟雾报警+全部资料+详细文档(高分项目).zip

    【资源说明】 基于STC单片机的烟雾报警+全部资料+详细文档(高分项目).zip基于STC单片机的烟雾报警+全部资料+详细文档(高分项目).zip基于STC单片机的烟雾报警+全部资料+详细文档(高分项目).zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    zblog仿小k资源网模板.rar

    zblog仿小k资源网模板.rarzblog仿小k资源网模板.rarzblog仿小k资源网模板.rar

    基于puma560机械臂RRT路径规划matlab仿真源码(高分课设).zip

    基于puma560机械臂RRT路径规划matlab仿真源码(高分课设).zip个人经导师指导并认可通过的98分大作业设计项目,主要针对计算机相关专业的正在做课程设计、期末大作业的学生和需要项目实战练习的学习者。 基于puma560机械臂RRT路径规划matlab仿真源码(高分课设).zip个人经导师指导并认可通过的98分大作业设计项目,主要针对计算机相关专业的正在做课程设计、期末大作业的学生和需要项目实战练习的学习者。 基于puma560机械臂RRT路径规划matlab仿真源码(高分课设).zip个人经导师指导并认可通过的98分大作业设计项目,主要针对计算机相关专业的正在做课程设计、期末大作业的学生和需要项目实战练习的学习者。 基于puma560机械臂RRT路径规划matlab仿真源码(高分课设).zip个人经导师指导并认可通过的98分大作业设计项目,主要针对计算机相关专业的正在做课程设计、期末大作业的学生和需要项目实战练习的学习者。 基于puma560机械臂RRT路径规划matlab仿真源码(高分课设).zip个人经导师指导并认可通过的98分大作业设计项目,主要针对计算机相关

    node-v5.7.0-linux-armv6l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v4.7.2-linux-arm64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    nodejs-x64-0.11.10.tgz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    倍福PLC解密与安装序列号工具

    德国倍福PLC的安装序列号,与PLC密码破解的小工具

    咚淘买购物商城首页修改版asp.net三层架构

    asp.net三层架构咚淘买购物商城首页修改版 半成品 有首页和 分类 登陆 验证码

    node-v4.2.6-linux-arm64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    Docker in Docker原理与实战

    Docker in Docker(简称DinD)是一种使用Docker容器来运行Docker守护进程的技术。它允许开发者在容器内部运行Docker守护进程,从而在隔离的环境中构建和部署容器化应用。本文将为您详细介绍Docker in Docker的原理和实战应用。 一、Docker in Docker原理 Docker in Docker是通过以下几个关键步骤实现的: 1. 初始化外部Docker守护进程 在容器内部初始化一个外部Docker守护进程。这可以通过设置环境变量`DOCKER_HOST`来实现,将其指向外部Docker守护进程的unix socket或TCP地址。 2. 挂载Docker socket 将外部Docker守护进程的socket挂载到容器内部。这样,容器内部的进程就可以通过挂载的socket与外部Docker守护进程进行通信。 3. 设置容器的网络模式 将容器设置为`host`网络模式,使得容器内部的网络接口与宿主机网络接口处于同一网络命名空间。这样,容器内部的Docker守护进程可以访问宿主机上的Docker网络。 4. 启动Docker守护进程 在容器内部

Global site tag (gtag.js) - Google Analytics