QNX开发环境和QNX虚拟机都搭建好了,开始写第一个QNX程序。

关于QNX程序开发的最好参考是QNX官网上的pdf书《10 Steps to Developing a QNX Program: Quickstart Guide 》,清晰地说明了如何通过十个步骤开发第一个QNX应用程序。有好心人将它翻译成中文,中文名叫《10步开发一个QNX程序》。《10步开发一个QNX程序》一贴可以轻松地从网上搜索到,而英文的《10 Steps to Developing a QNX Program: Quickstart Guide 》一书可以从QNX官网上下载,再次共享一下QNX官网下载资料的地址:

http://www.qnx.com/download/group.html?programid=20945

因为以上两份资料已经很详细的说明了QNX程序的开发过程,下面就简单说明一下步骤:

环境准备:

1. QNX Neutrino 虚拟机

2. QNX Momentics 开发环境

关于以上环境的准备可以参考之前的博文。

关键步骤:

1. 创建、编译QNX C项目

1.1 在QNX Momentics环境中选择 “File -> new -> QNX C project”。

1.2 在项目创建向导的第一页填写项目名称

1.3 在项目创建向导的第二页选择X86为目标系统,因为我们使用的QNX虚拟机是VMware上运行的系统,使用X86体系的CPU。

1.4 点击“finish”按钮创建项目,创建项目后出现程序编辑界面,如下图:

1.5 编译项目,在左边导航栏中选择项目,点击右键,选择“Build Project”

2. 准备运行环境并调试应用

2.1 获取目标系统的IP,首先启动QNX Neutrino虚拟机,在QNX Neutrino系统中启动terminal窗口,在窗口中使用ifconfig获取目标系统的IP地址。如下图获得的IP是:192.168.201.128。

2.2 启动qconn程序,获取IP地址后同样在terminal窗口中使用qconn命令启动qconn程序。注意qconn程序运行后如果不出错的话没有任何输出,习惯DOS系统中命令运行成功会有提示的同学们需要习惯一下,运行界面如下图:

2.3 在Momentics中配置目标系统。 在Momentics环境中选择项目,点击右键,选择“Rus As -> Run Configuration”, 会出先目标系统配置界面,如下图。在配置界面左边的导航栏中选择“c/c++ QNX QConn(ip)”,点击左上方的“新建”图标,出现目标环境配置界面,需要配置的有:

2.3.1 名称,可以随便取个名字

2.3.2 项目,点击项目栏旁边的“Browse...”按钮,选择你希望调试的应用

2.3.3 应用,选择项目后点击“Search Project...”可以选择指定项目中可以运行的程序,如果之前编译成功的话,会出现两个同名的应用供选择,一个结尾带个g字,一个不带g字。带g字的是带有调试信息的,所以我选择了带g字的。

2.3.4 目标系统,点击目标系统栏右边的“Add New Target...”按钮,会出现目标系统配置界面,填写上一步获取的IP地址即可。

2.4 运行应用,上一步配置完成后,点击“Apply”按钮应用配置,再点击“Run”按钮运行程序,运行结果如下,注意printf输出的内容在Momentics的Console界面中显示出来:

 

QNX环境的更多相关文章

  1. Nginx 1.10.2 php 7 环境安装

    1.安装编译工具和库文件,红色部分提示在centos镜像站点上查不到包,用yum安装的时候要认真看那些包没有找到,用yum的时候尽量不要使用-y选项 yum install gcc automake ...

  2. QNX 实时操作系统(Quick Unix)

    Gordon Bell和Dan Dodge在1980年成立了Quantum Software Systems公司,他们根据大学时代的一些设想写出了一个能在IBM PC上运行的名叫QUNIX(Quick ...

  3. Vxworks、QNX、Xenomai、Intime、Sylixos、Ucos等实时操作系统的性能特点

    Vxworks.QNX.Xenomai.Intime.Sylixos.Ucos等实时操作系统的性能特点 VxWorks操作系统 VxWorks 操作系统是美国WindRiver公司于1983年设计开发 ...

  4. mosquitto在Linux环境下的部署/安装/使用/测试

    mosquitto在Linux环境下的部署 看了有三四天的的源码,(当然没怎么好好看了),突然发现对mosquitto的源码有了一点点感觉,于是在第五天决定在Linux环境下部署mosquitto. ...

  5. QNX简介<转载>

     QNX QNX是由QNX软件系统有限公司开发的实时操作系统. http://blog.csdn.net/happyhell/article/details/7087199 基本特征 * QNX是一个 ...

  6. Python零基础学习系列之二--Python介绍及环境搭建

    1-1.Python简介: Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年.像P ...

  7. 【嵌入式开发】 Bootloader 详解 ( 代码环境 | ARM 启动流程 | uboot 工作流程 | 架构设计)

    作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42462795 转载请著名出处 相关资源下载 :  -- u-boo ...

  8. CentOS裸机环境下安装php-7.3.1

    安装步骤如下 安装必要的软件 获取源码 编译安装 安装过程可能遇到的一些问题 编译参数详解 安装步骤如下 安装必要的软件 yum install -y autoconf automake libtoo ...

  9. 【Python学习】Python3 环境搭建

    参考地址:http://www.runoob.com/python3/python3-install.html Python3 环境搭建 本章节我们将向大家介绍如何在本地搭建 Python3 开发环境 ...

随机推荐

  1. OpenJudge 2753 菲波那契数列

    1.链接地址: http://bailian.openjudge.cn/practice/2753 2.题目: 总时间限制: 1000ms 内存限制: 65536kB 描述 菲波那契数列是指这样的数列 ...

  2. setInterval()与setTimeout()计时器

    JavaScript是单线程语言,但是它可以通过设置超时值和间歇时间值来指定代码在特定的时刻执行.超时值是指在指定时间之后执行代码,间歇时间值是指每隔指定的时间就执行一次代码. 超时调用 超时调用使用 ...

  3. js中的in-for循环

    <!doctype html><html lang="en"> <head> <meta charset="UTF-8" ...

  4. java Object类

    常用的共性内容 1,实现任何对象的比较,一般比较同一种对象的比较 Object1.equals(Object obj);等同于Object1 == obj: 只有当两个引用指向同一个对象时方法返回tr ...

  5. 《Nodejs开发加密货币》之二十七:开发通用的HTML组件

    人的懒惰常常是麻烦的开始.多数程序员都希望自己的工作一劳永逸,一次开发,到处使用,成了人人追逐的目标,我也不例外.最初写<Nodejs开发加密货币>系列文章,因为不喜欢设定好了去写,所以目 ...

  6. iOS局部刷新

    iOS: TableView如何刷新指定的cell 或section //一个section刷新 NSIndexSet *indexSet=[[NSIndexSet alloc]initWithInd ...

  7. PHP之图形处理

    图形处理 PHP 的图形处理,主要功能集中在 PHP 的图形处理函数. 需要先掌握一些要点.什么叫图片,怎么显示图片. 所谓的图片,其实也是一种文件,只是内容不是我们肉眼直接可见的.如果我们用记事本打 ...

  8. js日期范围初始化,得到前一个月的日期

    今天做时间范围的初始化设定,开始时间是当前时间的前一个月,终于找到完美的解决方案了. Date.prototype.format = function(format) {     var o = { ...

  9. 【jpa】 引用包的问题

    Hibernate使用Annotation(注解)需加                         hibernate-jpa-2.0-api-1.0.0.Final.jar Hibernate3 ...

  10. tomcat session思考

    最近在做统计服务器在线人数时,按照当前服务器session数量来实现,具体方法:实现HttpSessionListener接口来,每次sessionCreate的时候增加1,sessionDestro ...