QNX学习——10步开发一个QNX程序(QNX官方文档翻译))

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

QNX学习——10步开发一个QNX程序(QNX官方文档翻译)——第一步
原文地址:
写在QNX Neutrino实时操作系统下运行的程序,首先你需要的是QNX软件开发平台(SDP)。

这个包括QNX Momentics Tool Suite,包含你开发运行在QNX 操作系统下程序所需要的每样东西:编译器、链接器、库和其他QNX操作系统组件,预编译给所有QNX操作系统支持的CPU架构。

在windows和linux操作系统上,tool suite是一个广泛整合的开发平台(IDE)。

你能安装QNX SDP在一个QNX Neutrino实时操作系统用于自平台开发,或者你能安装它在windows或linux系统上:
开发主机运行QNX Momentics Tool Suite;目标机运行QNX系统加上你将开发的所有程序:
如果你没有QNX软件开发平台DVD,你可以现在一个验证版本在如果你只想
验证QNX在X86架构上,你可以下载QNX SDP安装和启动CD。

DVD包含了各个平台的安装。

你有一些目标系统的选择运行QNX系统:
PC目标机:你能安装开发平台的自主机版本在一个有一个大概3.0GB分区的普通PC。

(procnto微内核只要求700KB;可添加可选择组件到上面,你能创建每个东西从小型嵌入式系统到全桌面实时系统那个只要求300MB)安装系统不损坏任何存在的分区。

你也能启动QNX直接从DVD或者CD,在你没有足够空间的情况下。

其他硬件:你能运行QNX在一个参考平台一个参考设计由CPU厂商(PPC,ARM,MIPS或者SH)。

你将需要一个QNX板级支持包BSP用于你的平台。

BSP的文档解释了如何安装操作系统到这些目标机上。

更多关于BSP的信息访问。

虚拟机:你可以安装和运行QNX实时系统在一个虚拟机上。

即使VMware是一个便利的方法来尝试系统,你应该注意虚拟机不支持硬实时。

QNX被设计为同样的方式对于所有的平台且被使用在同一方法下,对于这个快速开始向导我们将使用windows作为一个开发主机,一个x86虚拟机作为目标机。

QNX学习——10步开发一个QNX程序(QNX官方文档翻译)——第二步这里我们要安装QNX软件开发平台在主机上。

启动主机系统后(windows系列)且插入QNX SDP的光碟。

如果安装没有自动开始,就运行程序qnxsdp-6.5.0-nnnnnnnnnnnn-Win32.exe(nnnnnnnnnnnn表示建立编号),这个程序一般在光盘的根目录下。

你将被安装向导引导。

关于这个更多的信息,见Installation Guide。

这个安装程序将询问你要一个license key。

如果你下载
一个验证版本的QNX SDP从官网上,你会收到一封电子邮件(包含了key)。

另外,你会找到你的key在光碟的盒子上。

安装完成后,你将找到一个图标对应QNX Momentics IDE在你的windows桌面上:
注意:qnxsdp-6.5.0最好安装到C盘,安在其他盘编译BSP会不通过,期待高手解决
QNX学习——10步开发一个QNX程序(QNX官方文档翻译)——第三步接下来,设置你的QNX Neutrino RTOS目标系统:
PC目标:插入QNX Software Development Platform QNX Neutrino RTOS Host DVD或者Install and Boot CD(x86 Targets)在你的第二个机器的光驱里且从它启动。

如果你没有这个盘,你科下载一个评估版本从。

在这里,你能选择直接的从DVD或者CD启动系统(用于初始化测试)或者安装QNX Neutrino RTOS在你的硬盘上。

请悬着安装到硬盘且按照屏幕上介绍来。

更多的描述,见安装向导。

虚拟机目标:DVD安装盘包含了一个VMware映像用于VMware Workstation 7或者Player3。

如果你没有安装DVD,你可下载VMware映像于。

你也可启动一个虚拟机从一个QNX Neutrino的ISO映像:虚拟机里的到CD/DVD光驱设置页,选择Use an ISO image,浏览ISO映像,重启你的虚拟机器,且安装QNX Neutrino。

在重启后,你的硬件将自动被检测。

如果你选择了图形模式,你能作为root用
户登录而不需要密码。

注意你的机器的IP地址在屏幕的右边;你将在后面需要它。

你现在在预设置的前面,完整特性的QNX Neutrino Realtime系统包含QNX Photon microGUI窗口系统。

(当然你也可以不需要图形模式运行该系统。

)在屏幕右边,你将找到一个图标栏。

从这里,打开一个shell由打开Utilities组且按下Terminal按钮。

查看在你系统中的进程列表,输入pidin | less。

各个进程是可选的,意味着在你的设计中,你可以移除进程来节省资源——或者你能添加其他进程来增长系统的功能。

这个应用于图形,网络,或者音频;各个QNX Neutrino RTOS组件是一个单独进程你能动态的读取。

输入q来推出less命令。

在安装了系统后,你能容易的自己熟悉许多QNX功能和特性。

所有这些不需要你自己创建和配置一个启动镜像!
QNX学习——10步开发一个QNX程序(QNX官方文档翻译)——第四步现在连接你的QNX Neutrino RTOS机器(你的目标机)到网络上。

你的开发机应该在同样的网络上。

如果DHCP服务可用,你的QNX Neutrino RTOS机器将自动接收一个IP地址。

你能观察你的IP或者改变它使用ifconfig 命令,如果Uilities Reference里的描述。

可选择的,你能使用来自QNX NeutrinoRTOS安装的网络配置工具。

你将找到它在右边屏幕的图标栏的Configure条目下,或者在Launch目录。

在Devices选项卡下,你能选择使用DHCP或者手动分配IP地址。

在Network 选项卡下,请输入网关和DNS的IP地址。

在你的Windows开发主机上,打开一个cmd窗口使用ping命令来检查你的Windows开发主机能否到达你的QNX Neutrino RTOS系统(目标)在网络上:
在同样的cmd窗口里,使用ipcinfig来确定你的主机IP地址。

在目标系统,使用这个IP来确定你的目标机能ping通你的主机:
注意:如果你的主机使用防火墙,你可能不能ping不通它。

在Windows XP 上你也许不得不允许Allow incoming echo request在ICMP设置里。

如果网络没有在你的目标机上工作,你也许使用了一个没有被QNX支持的网络卡。

要查看一个完整的支持硬件列表,访问。

如果你有更多问题关于硬件支持,请联系你的销售商。

Hint:完整的QNX Neutrino RTOS安装包使用自动硬件检测来开启相应的设备驱动。

使用enum-devices –n命令,你能看见何种硬件被枚举探测且何种驱动被开启在启动中。

QNX学习——10步开发一个QNX程序(QNX官方文档翻译)——第五步在你的开发主机上打开QNX Momentics IDE。

第一次打开IDE,它会询问你选择一个工作空间,一个能存放你的工程和其他文件的文件夹。

IDE随后显示它的欢迎页面。

当你准备开始,点击Workbench图标:
现在创建一个QNX C工程:从File菜单选择New>QNX C Project:
在弹出来的窗口中,给你的工程命一个名字。

确保Generate default file 被选中,保留Add project to working set不被选中,点击下一步。

你现在需要选择一个CPU架构。

选择Build Variants 选项卡。

对于PC目标,选择x86。

对于其他处理器上工程,选择正确的CPU类型:PPC、SH、ARM、MIPS。

你也能选择编译和/或debug信息;我们两个都选择,确保debug和releas variants 被同时选上。

点击Finish按钮。

一个有Makefile的准备使用的工程结构被创建,包含一个小程序(“Welcome to the QNX Momentics IDE”),你将找到在一个自动生成的资源代码文件里。

现在这个IDE选择了C/C++ perspective,带有导航、编辑和其他有用的视图、区域来显示关于这个任务的信息:
QNX学习——10步开发一个QNX程序(QNX官方文档翻译)——第六步你的目标系统必须能响应来自开发平台的请求(例子:比如你在windows下运行开发平台,那么你也要将安装了QNX的目标机要能使用网络连接你的开发平台,不然程序无法调试)。

要让这个成为可能,在目标机下开启程序qconn。

在一个PC运行QNX Neutrino RTOS的时候,你能使用一个终端窗口来做这些。

从IDE访问你的目标机,你必须创建一个目标工程。

打开System Information prespective:在Window菜单,选择Open Perspective > QNX System Information。

在空的Target Naviga视图中,点击右鼠标按钮且选择菜单栏中的New QNX Target。

如果你希望,你能不检查Same as hostname和提供一个名字给你的目标系统。

输入它的IP地址在相应的域。

点击Finish,然后选择你的新目标在Target Navigator。

你将看见一个在你的QNX Neutrino RTOS系统里的所有处理器列表。

这个视图(顶层的标签)提供其他信息给你。

你能找到更多有用的视图在Show View下的Window菜单里。

QNX学习——10步开发一个QNX程序(QNX官方文档翻译)——第七步现在选择在工具条右边的图标回到C/C++ perspective。

在你编译之前,你也许想选择编译时显示或不显示debug信息。

为了做这个,右击工程名在Project Explorer视图里,然后选择Properties。

点击QNX C/C++ Project,选择Build Variants,然后展开x86选项。

确保debug和release variants被选择。

点击OK;IDE重建工程。

在QNX C Project创建期间,产生一个QNX-made路径结构的Makefiles。

现在创建一个binary,右击工程名,然后选择Build Project。

编译器和链接器将开始它们的工作。

你将找到编译器的输出在Console视图里的C-Build输出,包括任何错误(你不应该看见任何错误,但是我们在下面的例子中添加了一个)。

但是,如果错误发生在编译期间,你将发现Problems视图更加的有用,因为它显示编译器的输出在一个解释的和比Console视图更加可读的方式。

Editor视图也给你关于一个错误的信息如果你遗留了指针。

在组建工作后,你的binaries将被显示在Binaries文件夹。

实际上,它们位于CPU路径在“o”(object)和“o-g”(-g表明编译器带debug功能)。

IDE 自动创建相关Makefile。

QNX库libc.so,包含了许多基本功能,默认同步链接到你的binary。

如果你想添加其他库,你能做这个在Project>Properties选项下。

来自这里,点击QNX C/C++ Project,然后链接,然后选择Extra Libraries在Category下拉框:
点击Add,输入库的名字,不要带有lib前缀或者扩展名。

例子,添加数学库,libm.so,你只需输入m在文本框:
点击OK。

链接器将链接库当你组建工程时候。

QNX学习——10步开发一个QNX程序(QNX官方文档翻译)——第八步运行和debug新组建的程序在你的目标机上,你需要创建一个launch configuration。

它包含影响一个程序如何开始的设置变量(例子:command-line 参数,环境变量)。

你设置一次,然后你就可以重复使用这些设置。

现在创建你自己的launch configuration:从工具条上的“bug”图标的旁边下拉菜单,选择Debug Configurations…:
一个图表窗口会打开,这里你能开始运行运行配置,改变它们,或者创建新的。

在左边,选择C/C++ QNX QConn(IP)。

这个运行配置的类型意味着对于在目标机上运行着QNX Neutrino RTOS的基于网络(交叉)开发,使用qconn程序。

现在点击New launch configuration图标:
你现在的所有提交的配置会全部用于处理开启你的可运行程序。

现在,只有Main标签需要你的输入。

但是,你也应该注意其他标签必须提供的。

如果你希望,你能改变默认配置名字在图表的顶层。

然后点击Project旁边的Browse…按钮,选择你的工程。

下一步到C/C++ Application,点击Search Project按钮选择你的binary。

编译带debug信息的binary名字包含一个_g的后缀。

我们会开启Debugger在下一步,请选择binary with the debug information。

点击OK。

确保你的目标系统在Target Options下被列表,然后点击Apply这个运行配置现在就准备好了:
QNX学习——10步开发一个QNX程序(QNX官方文档翻译)——第九步你应该还在Debug运行配置图表里。

你创建一个配置来运行你的程序,你现在能在debugger里开始。

来做这个,点击Debug。

这个IDE现在选择Debug透视和通过网络传输你的程序从开发机器到你的目标QNX Neutrino RTOS系统,然后在debugger的控制下开始。

你将看见debugger 停止在你的程序的第一行。

在Debug视图,你将看见你的进程的概貌,包含调用的栈。

使用在Debug视图的主工具条的按钮,你能控制debugger。

当你运行或者debug你来自于IDE的应用,任何输入从IDE的控制台读取,且任何输出也到控制台上。

当上图的程序运行过printf()的函数调用后,你应该看见“Welcome to the QNX Momentics IDE”信息在控制台窗口。

使用Step Over按钮,你能跳到下一行代码。

在debug期间,你能观察右边变量(Variables)视图,显示了你的变量的
改变。

你能使用Step Into按钮来让debugger运行到函数的代码里去(当然,只有你有这个函数的源代码的时候才会有用)。

设置一个断点,放置鼠标指针在资源显示的左边界,按下鼠标右键选择菜单中的Toggle Breakpoint。

这个断点看起来像一个小圆圈,你也可以设置或者移除当你写你的代码的时候。

当运行中的程序遇到一个断点,在debug中会停下来,这时你能,例如,解释你的变量。

如果你点击Resume按钮,你的程序继续运行直到下一个断点。

忽略程序执行,使用Terminate按钮。

在程序结束运行后,你能使用Remove All Terminated Launches按钮来清除所有来自于Debug视图的终端运行。

注意:debug保持工程的文件打开当程序在运行的时候。

在你尝试重建你的工程之前确保debug被终止,否则组建会失败。

要独立的运行你的程序(没有debug),打开Run图标旁的下拉菜单选择Run Configurations…:
然后你能使用运行配置(在上一步中有描述)来开始你的程序。

或者创建一个新的运行配置且选择不带debug信息的二进制生成。

你也能使用系统信息透视的目标文件系统导航(Window > Show View)来手动传输你的二进制,然后双击运行它(或者右击它选择Run)。

可以将二进制保留在一个共享的网络驱动盘中,连接驱动盘在你的QNX Neutrino 目标(见QNX Neutrino RTOS 单元描述里的fs-cifs条目),从那里运行二进制。

QNX学习——10步开发一个QNX程序(QNX官方文档翻译)——第十步转换这个默认程序到你自己的QNX程序中,你能修改和扩展这些我们创建的资源代码。

尝试我们的一些演示程序从它们复制代码到你的工程中。

现在你已经开始了,你将可能想需要更多的信息,例子如何创建你自己的线程,QNX Neutrino消息传递时如何工作,何种进程同步方法是可用的,如何访问一个I/O 区域,如何组建一个QNX Neutrino资源管理器。

不要担心:所有这个如果你经历的这个快速开始向导一样简单!(译者:前提大概是给钱才提供的吧,反正我是到处找资料都没有找到好多,几万美金啊!学习这个真坑爹)IDE包含许多教程来帮助你开始。

从IDE的工具条选择Help > Welcome,然后点击教程图标:
IDE的帮助系统包含QNX文档,随着关于这个Eclipse平台的信息。

在Help 菜单,点击Help Contents:
这个QNX Software Development Platform路线图将帮助你找出你需要寻找信息的位置。

我们建议浏览Welcome to the QNX Software Development Platform、QNX Neutrino RTOS System Architecture向导、IDE用户向导和QNX Neutrino RTOS Programmer’s向导。

在自己的系统上浏览文档,只需点击屏幕右边上的图标栏上的Help按钮。

打印文档也是可用的。

你也可能对将帮助你快速创建消费级音频、视频和图像产品的中间件产品的QNX Aviage portfolio感兴趣。

IDE包含源代码例子覆盖了线程创建、互斥体的使用、消息传递和其他进程间联系方法如同一个QNX资源管理器模板。

选择Help > Welcome,然后点击Samples 图标:。

相关文档
最新文档