安装和配置QNX Momentics 工具和QNX Neutrino 操作系统,然后开发程序。
1 要求
2 安装QNX Momentics 开发包
3 安装 QNX Neutrino 实时操作系统
4 与QNX Neutrino联网
5 创建工程
6 与QNX Neutrino 联网
7 编译和连接
8 为运行程序做准备
9 运行和调试
10 将程序变为自己的程序
1 要求
首先需要有QNX Momentics 开发包,然后才能编写在QNX Neutrino 实时操作系统下运行的程序。你可以把它安装在windows 2000 、Windows Xp、Linux、或者是Solaris,等操作系统下面,也可以安装在QNX Neutrino 系统下面。
如果你没有QNX Momentics 的CD,可以在从网上下载它的镜像文件。网址是:http://www.qnx.com/products/eval.
除了开发系统,你还需要一个运行QNX Neutrino RTOS 系统的平台以及你将要开发的程序。
通常有两种方法来熟悉QNX Neutrino,在普通PC机上安装QNX Neutrino操作系或者是在参照的平台上运行QNX Neutrino,通常这个平台由CPU开发商设计。由于QNX对所有的平台都采用相同的设计方法,而且使用方法页相同,因此在这个快速指南中我们使用PC机安装版。同样,如果使用参考平台,那么你需要在这个平台里面安装QNX Board Support Package(BSP)。BSP中的文档解释了怎样在目标系统上安装QNX Neutrino。
使用另外一个PC可以加快进度——这太PC机甚至可以很老。硬盘容量可以为300MB(如果你仅仅想要安装操作系统和必要的运行软件)但是如果你想要在QNX Neutrino系统里面安装开发环境,那么硬盘容量至少要2.5GB。在另一个分区的Windows操作系统不会受到损害。如果没有那么大容量的硬盘空间,也可以从CD上直接启动QNX Neutrino操作系统。
如果你没有QNX Neutrino的CD,可以从网上下载镜像文件。网址是:http://www.qnx.com/products/eval.
2 安装QNX Momentics 开发包
QNX Momentics 中包含你想要开发运行在QNX Neutrino 实时操作系统下运行的程序所需要的全部套件。这其中包括扩展的集成开发环境(IDE),编译器,连接器,库,以及QNX支持的所有CPU架构的QNX Neutrino套件。
启动Windows 2000或XP系统,插入QNX Momentics Windows Host CD。如果安装不能自动进行,则只需要运行光盘上的qnxSetupWin32.exe. 你将被指引着进行安装过程。读安装注意事项可以得到更多的信息。
安装程序需要系列号,如果是从网上下载的光盘映像,则相应的序列号会通过邮箱发给你。另外,在你购买QNX Momentics 开发包的时候会得到序列号。
安装程序会要求你选择哪些元件,默认的是全部安装。这里推荐全部安装,因为我们不知道需要哪些或是不需要哪些。
安装完成之后,会在Windows桌面上出项QNX Momentics IDE的图标,以及一个HTML文件。后者中含有关于QNX Momentics和QNX Neutrino的一些有趣信息。最后要确保你从网站的下载重心安装了最新的QNX Momentics 服务包。
3 安装QNX Neutrino实时操作系统
在第二台机器的光驱中插入QNX Neutrino CD然后启动机器。此时,你可以选择直接从光盘上启动或者是把QNX Neutrino 安装到硬盘上。请选择在按转到硬盘上,然后继续屏幕上出现的安装步骤。
系统安装期间,需要选择是否要在Neutrino中安装软件开发包。如果选择是的话,则完整的QNX Momentics 开发环境将被安装到QNX Neutrino系统中。然后你就可以在QNX Neutrino系统中直接进行开发编译和测试。
在重新启动之后,计算机会自动扫描硬件。如果选择图形模式,则不用密码就可以直接进入。在屏幕的右边可以找到图标栏。从这里可以实现很多功能,比如点击“clicking”打开shell程序。
现在在你面前的是预配置的,并且具有完整的QNX Neutrino特点的实时操作系统,系统中包括QNX Photon 微图形用户接口的窗口系统 (当然你也可以运行文本模式) 。同样要确保你从网站的下载重心安装了最新的QNX Momentics 服务包。
通过“pidin”命令,可以查看目前在系统中存在的进程。每一个进程都具有可选择性,这也就意味这在你以后的设计中,你可以移除进程来节省资源,或者添加其他进程来增加系统的功能。这同样适用于图形,网络和视频;每一个QNX Neutrino 组件都是一个单独的进程,可以动态的加载。通过你刚才创建的QNX安装过程,你可以很快的熟悉QNX的功能和特点。这些都不需要你亲自指定或者启动映像。
4 将QNX Neutrino 联入网络
现在将你的QNX Neutrino机器(目标计算机)联入网络。你的开发机应该在同一个网络中。通过DHCP服务,你的QNX Neutrino机器将会自动收到一个IP地址。你可以通过使用ifconfig en0命令进行查看。
在终端窗口中,使用ifconfig en0 IP_address来手动分配IP地址(用你想要分配给你的系统的IP地址替换原来的IP地址)。
另外,你可以使用与QNX Neutrino安装同时到来的网络配置工具。可以在屏幕右侧的图标栏找到“Configue”这一项,或者是“Launch”菜单。在“Devices”下,可以选择使用DHCP或手工分配IP地址。在网络中输入网关和DNS的IP地址。
使用“ping IP_address”命令,你可以检查你的开发机器(主机)可以连接到网络中的QNX Neutrino系统,同时目标机器也可以连接到主机。
注意: 如果主机中使用防火墙,那么你可能连接不到目标机器。在Windows XP SP2中,你需要在ICMP设置中使能“Allow incoming echo request”,在开始菜单中选择控制面板,然后选择安全中心,之后选择高级标签。
如果网络不能正常工作,你可能正在使用一个不支持的网卡。对于能支持网卡的清单,访问http://www.qnx.com/developers/hardware_support.如果对硬件支持有更多的问题,可以咨询本地的销售代理商。
提示:Neutrino全性能安装使用自动硬件检测来启动相应的硬件驱动。使用“enum-devices -n”可以看到检测器检测到了哪些硬件,以及在启动过程中开启了哪些驱动。
5 创建程序
在开发主机上,打开QNX Momentics IDE。创建一个QNX C 项目。“File”->“New”->“QNX C Project: ”
在弹出的对话框中,命名工程,并点击“Next”。下一步,为你要创建的二进制文件选择CPU框架。如果目标机为PC机,选择x86.对于其他处理器上的工程,选择对应的CPU类型:PPC, SH4,ARM,或者是MIPS。点击“finish”.
经过上述步骤,一个带有“makefile”的项目框架变的可用,其中包含一个小程序(“Hello World”),你可以在自动生成的源代码文件中找到这个小程序。
现在,进入IDE的C/C++界面。这个界面有众多特点。包括,指引,编辑器,以及其他有用的界面和显示与目前项目有关信息的区域。
6 与QNX Neutrino通信
你的目标系统应该能够对开发环境的请求进行相应。可以通过开始“qconn”程序,达到这一目的。在运行QNX Neutrino的PC机上,可以通过终端窗口做。
通过创建一个目标工程来连接目标系统。打开“System Information Perspective”在“Window”菜单中选择“Open Perspective ”,然后单击“Other”。选择“QNX System Information”,点击“OK”。
在控的“Target Navigator ”视图中,单击右键,选择“Add New Target”.
为你的目标系统命名,然后在相应的区域输入其IP地址。
点击“Finish”。然后你会看到在你的QNX Neutrino系统中运行的进程的清单。其他的视图提供一些信息。在“Show View”下的“Window”菜单,你甚至可以发现更有用的视图。
7编译和连接
有多种方法可以回到C/C++视图:在显示的右上角的的下拉菜单中选择“C/C++视图”。或者按下Ctrl键,重复按F8直到弹出菜单“C/C++”变为高亮,然后释放这两个键,又或者选择“Window”->“Navigation”->“Next Perspective”然后从弹出菜单中选择“C/C++”.
在编译之前,你可能需要设置编译是否需要调试信息。通过右击项目名,然后选择“Properties”可以达到z这个目的。点击“QNX C/C++ Projects”,点击“Build Variants”,之后点击“x86”后面的小加号。默认情况下编译会给出调试信息。如果不想这样的化,可以选择不带调试信息的编译。
在QNX C项目创建的过程中,还生成了一个带有“Makefiles”的QNX目录结构。现在生成二进制文件,右击项目名称,选择“Build Project”。编译器和连接器会自动做其工作。
在“Console”视图的“C-Build”输出中,会出现编译器输出,包括出现的错误。
然而,如果在编译过程中出现错误,你会发现错误视图会很有用,因为它会将编译器的输出以集成的以及更易读的形式显示。
如果你将指针放到错误上时,编辑器也会给出错误信息。
在编译完成后,二进制文件被放入“Binaries”文件夹。物理上,它们位于CPU目录中的O和o-g下。IDE自动创建相应的Makefiles。
QNX库“libc.so”在默认情况下,动态连接到你的二进制文件(库中含有很多基础的函数)。如果你想在此后添加其他的库,可以通过“Project”->“Properties”。在此,点击“Linker”然后在“Category”中选择“Extra Libs”。
点击“Add”,然后输入库的名字,不用输入名字的前缀和后缀。例如,如果想要添加数学运算库“libm.so”,你只需要在“Name ”区域输入m..
点击“OK”。连接器将在你编译程序时自动连接到该库。
8 为运行程序作准备
需要首先建立一个运行设置,然后才能在目标机上编译和运行你所创建的程序。包括设置能影响程序启动的各种变量(例如:命令行参数,环境变量等)。这些变量只需设置依次,然后就能反复的使用。
现在设置你自己的运行环境:在“Run”菜单喜爱,选择“Debug……”。然后打开一个窗口,你可以启动已经存在的设置,或者对应经存在的设置进行更改,甚至新建一个。在窗口的左边,选择设置的类型“C/C++ QNX QCnn (IP)”。这种模式意味这使用基于网络的开发环境,从机上运行QNX Neutrino 系统。点击“New”创建一个新的运行环境。现在你将不得不做出与你即将运行的程序有关的多项配置。默认情况下,只有“Main”项需要你的输入。当然,你也要了解其他的标签提供何种功能。
紧接着“C/C++ Appplication”,点击“Search”按钮然后选择将要运行的二进制文件。如果你在编译的时候选择了编译信息,那它会出现一个“bug”小标记。相反的,如果没有选择编译信息,那么则会出现“running man”标志。因为我们要在接下来的过程中运行调试,,因此,此处选择带有调试信息的二进制文件。在“Target Opition”下,选择你的目标系统,然后点击“Apply”,设置完成。
9 运行及调试
现在,屏幕上可能仍在显示运行设置对话框。之前已经为运行做了设置,此时可以在调试器中运行。点击“Debug”。
IDE转换到“Debug”视图,同时将你的程序从开发机通过网络传到目标的QNX Neutrino系统,然后开始调试。这时,调试器将停滞在程序的第一行。在Debug视图中,你会看到所有进程的概况,包括调用栈。在Debug视图中使用主工具条,可以控制调试。
使用“Step Over”按钮,跳到代码的下一行
在调试的过程中,可以通过右边的“Variables”视图查看程序中变量的变化。使用“Step Into”按钮,让调试跳到函数中的代码(当然,只有在你的源码中含有这个函数的代码才有用)。
将鼠标指针放到源码现实的左边框,点击右键从弹出的快捷菜单中选择“Toggle Breakpoint”,从而设置断点。断点以一个小的指针显示,当然也可以在写代码时添加或移除断点。
当程序运行到断点时,运行停止,这时你可以检查变量。点击“Resume”按钮,程序继续运行,知道遇到下一个断点。
点击“Terminate”按钮,停止程序的运行。
程序运行完成后,点击“Remove All Terminated Launches”停止调试,同时将二进制文件从目标系统中删除。
如果运行没有调试器的程序,再次使用“Run”菜单,但这次不是点击“Debug……”,而是点击“Run……”。然后点击“launch configuration”运行程序。或者是重新配置运行环境,然后选择没有调试信息的二进制文件。也可以使用系统信息视图的文件系统指引来传送文件(Window>Show View)然后从终端启动程序。安装共享的网络驱动同样可以完成这一目的。
10将程序变为你自己的程序
可以通过更改和扩展之前创建的程序将这个过程变成你的第一个QNX程序。利用一些典型程序,然后把代码复制到工程中。既然,你已经开始了你的QNX旅程,你一定想要得到更多信息,例如,怎样创建自己的线程,QNX的消息传递机制是怎样进行的,系统采用了哪一种进程同步机制,怎样得到IO的控制权,怎样建立QNX Neutrino资源管理器。不过不用担心,所有的这一切都和你刚才体验的快速入门一样简单。
“Welcome to QNX Momentics ”指南可以帮你找到你所想要的信息。我们推荐浏览“QNX Neutrino System Architecture Guide”(QNX Neutrino系统架构指南),“IDE User’s Guide”(IDE用户手册)以及“QNX Neutrino Programmer’s Guide”(QNX Neutrino 程序员指南)。在“Help”菜单下,点击“Help Contents”。在帮助窗口,选择“QNX Momentics Professional Edition”。
单击位于屏幕右侧的图标栏的“help”,可以在装有Neutrino的机器上查看文件资料。经常使用“search”功能会很有帮助。当然你也可以找到打印版的帮助文档。
给出的例子覆盖了线程创建,互斥的使用,消息传递以及其他的进程间通信的方式。在ftp服务文件ftp.qnx.de中还可以找到资源管理器的模板。作为FTP客户登陆,可以下载源码包。用户名是“qnx”,密码是“qnx!nettrino”。内容包括一个“ReadMe”文档,它展示了怎样把源码导入到QNX Momentics IDE。源码中还有许多扩展的内容,怎么做等等。如果你对一个函数感兴趣,可以在“Helpviewer”中找到帮助文档。
免责声明/版权申明 Passiontech
所有文章为网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果由您自己承担!
本站仅仅提供一个观摩学习的环境,将不对任何资源负法律责任。所有资源请在下载后24小时内删除。
若无意中侵犯到您的版权利益,请来信联系我们,我们会在收到信息三天内给予处理!