【QNX】
文章平均质量分 89
玛丽奥ZJY
这个作者很懒,什么都没留下…
展开
-
什么是真正的实时操作系统
做嵌入式系统开发有一段时间了,做过用于手机平台的嵌入式Linux,也接触过用于交换机、媒体网关平台的VxWorks,实际应用后回过头来看理论,才发现自己理解的肤浅,也发现CSDN上好多同学们都对实时、嵌入式这些概念似懂非懂,毕竟如果不做类似的产品,平时接触的机会很少,即使做嵌入式产品开发,基本也是只管调用Platform team封装好的API。所以在此总结一下这些概念,加深自己的理解,同时也给新...转载 2019-04-12 15:00:03 · 1413 阅读 · 0 评论 -
qnx的ssh功能配置,nfs配置,scp配置,telnet配置
author:锋影e-mail: [email protected] 有些时候,作为调试,总是需要一些ssh功能,nfs功能,telnet功能,scp功能,这样才方便调试。自己琢磨了下,还真可以,并实现出来。其实方法差不多,参考Linux方案,然后改写程序,自动定制一个搞定。ssh功能需要确定以太网功能,配置sshd配置密钥开启ssh server转载 2017-10-10 15:22:56 · 1390 阅读 · 0 评论 -
QNX平台下QT开发环境的配置
1. 添加QCC编译器, 事先要装好SDP6.6 : qnx-sdp-6.6-201402230339.exe (官网上有下载)添加x86平台的QCC 添加arm平台的QCC2. 添加QT版本, 事先要装好 qt-5.3.1-201503051558.exe (官网上有下载)我安装在C盘C:\QNX-qt\配置x86平台的qt 版本配转载 2017-10-10 15:20:56 · 615 阅读 · 0 评论 -
QNX 如何制作目标系统,制作系统镜像,烧写系统文件
制作目标系统的方法如下:以CF卡为例 1.格式化CF卡 2.用dinit传系统 ,或者使用cp传文件3.拷贝必要的文件 如何简化以上步骤,向HDCOPY一样快速的生成呢直接读写/dev/hd0 和 /dev/hd1 的话,实际上就是 跳过了文件系统,直接读写设备。所以最好是在写 /dev/hd1之前,umount /fs/hd1-dos,cp转载 2017-10-10 15:17:11 · 1594 阅读 · 0 评论 -
移植QT到QNX,QNX开发QT程序,QT图形开发环境搭建
根据QT主页上提供的参数,修改4个地方。./configure -opensource -confirm-license -qpa -iconv -shared -release -xplatform blackberry-x86-qcc \ -little-endian -arch i386 -largefile -nomake examples -nomake demo转载 2017-10-10 15:15:40 · 605 阅读 · 0 评论 -
10步开发一个QNX程序(Debug)
0.说明此文章是根据QNX官方文档10 Setps to Developint a QNX Program QuickStart Guide翻译总结,感兴趣的可以到官网下载原文档。最近需要使用QNX开发,现在刚刚开始学习呢,刚好通过博客记录下来。一个QNX的hello world 只需要以下10步即可以实现。1.工具准备我打算在虚拟机中装2个系统,一个XP系统用于装编译工具转载 2017-10-10 14:33:28 · 1432 阅读 · 0 评论 -
第一个QNX程序(Run)
QNX开发环境和QNX虚拟机都搭建好了,开始写第一个QNX程序。 关于QNX程序开发的最好参考是QNX官网上的pdf书《10 Steps to Developing a QNX Program: Quickstart Guide 》,清晰地说明了如何通过十个步骤开发第一个QNX应用程序。有好心人将它翻译成中文,中文名叫《10步开发一个QNX程序》。《10步开发一个QNX程序》一贴可转载 2017-10-10 14:07:26 · 1658 阅读 · 0 评论 -
从API开始理解QNX -- 系统脉冲
系统脉冲 前面提到过,除了用户自己定义的脉冲外,系统(内核)也会向用户进程发送脉冲,用来通报某些状态的发生。在这些系统脉冲里,比较常见的应该是这几个: _PULSE_CODE_UNBLOCK _PULSE_CODE_DISCONNECT _PULSE_CODE_THREADDEATH _PULSE_CODE_COIDDEATH_PULSE_CODE_UNBL转载 2017-10-10 13:38:17 · 1654 阅读 · 3 评论 -
qnx驱动开发之编程基础
qnx驱动开发之编程基础 包括:线程与同步;QNX微内核进程间通信IPC; QNX时间相关 主题: 1.线程 2.同步 3.消息传递message 4.脉冲pulses 5.事件传送event 6.时间 7.总结1.线程 1.1 进程与线程 线程在进程中运行 a.一个进程中至少有一个线程 b.在一个进程中的线程共享该进程中所有资源转载 2017-10-10 10:33:40 · 1716 阅读 · 0 评论 -
从API开始理解QNX -- 消息传递
大家都知道QNX是个微内核结构的操作系统,靠的是进程间通讯来实现整个系统功能的。那么具体到写一个程序的时候,到底这个通讯是如何完成的呢?这章就是具体介绐最底层的消息传递API的。消息传递是通过内核进行的,所以所谓的API,实际也就是最底层的内核调用了。需要指出的是,真正在QNX上写程序的时候,很少会直接用到这些API,而是利用更高层的API,不过,知道这些底层的API对于将来理解建立在这些API上转载 2017-10-10 10:28:51 · 1325 阅读 · 0 评论 -
QNX 中的线程休眠
在多线程环境中,经常会需要让一个线程等待一段时间。象我这样之前使用java编程的人第一时间想到的当然是sleep()方法,因为它使用很方便。在QNX环境中也有sleep()方法,调用方式也很简单,在sleep()方法中传入一个整型参数就好了,如:sleep(10);以上方法会让线程休眠10秒,注意这里以秒作为单位,不像java中的sleep()方法那样以毫秒做单位。转载 2017-10-18 21:12:38 · 616 阅读 · 0 评论 -
QNX 上的多线程编程
在QNX 文本界面编程除了简单的键盘输入,控制台输出以外,还有好多重要的知识点需要学习,包括多线程,线程同步,进程通讯,资源管理器(硬件驱动)等等。首先了解一下QNX环境下的多线程编程。QNX环境实现了多线程并发,多线程切换时的复杂处理已经由内核实现了,开发人员需要做的就是创建启动线程。 在QNX下创建线程的方法是pthread_create方法,使用时需要导入pthrea转载 2017-10-18 21:09:50 · 863 阅读 · 0 评论 -
QNX Momentics里Target File System Navigator 视图的使用。
有关如何将编译好的文件上传到QNX虚拟机上,前两篇博文提到了两种方法,一种是使用FTP将文件上传到QNX虚拟机,另一种是通过QNX Momentics的运行设置,使应用在测试之后留在目标虚拟机上。看了上面提到的博文后,有网友告诉我说可以使用QNX Momentics里的Target File System Navigator视图,测试了一下,发现真的比较方便。在QNX Moment转载 2017-10-18 20:56:07 · 502 阅读 · 0 评论 -
QNX驱动开发——中断处理
在操作系统中,对于中断的处理一直是一件麻烦事,其实主要是对操作系统的中断管理机制不熟悉。当中断产生时,内核去执行中断服务程序ISR,中断服务程序中要做尽量少的工作,以提高系统执行效率,有些人在中断服务程序中使用延时函数和printf函数和malloc函数,其实是很不可取的。延时函数不仅大大降低了中断执行的效率,也可能会屏蔽下次中断的产生,从而丢失对中断的响应。对于printf函数为什么不行呢?可以转载 2017-10-09 19:50:33 · 572 阅读 · 0 评论 -
移植LINUX的外围设备驱动到QNX系统,linux程序移植到QNX
花了半年时间在QNX系统上,这是一个RTOS,这个系统是高安全级别的系统,在核物理站/天文空间站/电站/地铁/交通运输(飞机/汽车/地铁)等工业系统领域占有70%以上的市场份额。背景:本文将我个人在QNX上移植内核和开发驱动以及应用程序的部分经验记录在此,因公司商业机密,部分源码不便公开。我会框架性的讲解开发思路。为了简化文章复杂性,我只讨论相同板子的平台驱动转移,我手中是at91sam9转载 2017-10-10 15:23:59 · 1296 阅读 · 2 评论 -
QNX系统BSP开发研发与应用,QNX技术解答-项目开发-软件开发
目前总结了一些平时QNX开发过程中遇见的问题,先列举。6 qnx的开发平台,项目产品使用TI和freescale的系列产品,量产化几代产品。从QNX 6.4------到最新的QNX660等等比较常用的 TI AM335x, am437x, DRA6xx,Freescale imx6,imx5,imx30 QNX的开发环境,QNX IDE是qnx的开发软件,这里转载 2017-10-10 15:30:24 · 1053 阅读 · 0 评论 -
项目中QNX的USB驱动开发的反思
接触驱动层的东西,心里还有点小激动。总感觉自己比没搞之前提高了那么一点点,也不知是真的假的,拉出来遛遛。 1.整体思路 ★驱动层 先从驱动层说起,他将USB设备通过Resource Manager注册成一个文件,提供 IO服务:① :通过USB控制接口登陆回调函数② :通过USB的回调函数“insertion”,也就转载 2017-10-10 15:28:11 · 1107 阅读 · 0 评论 -
QNX的深度嵌入过程
QNX的深度嵌入过程 1.1 QNX目标系统嵌入利用QNX的模块性和和可裁剪性,其嵌入过程一般是:构建Buildfile -> 编译buildfile生成系统映象文件 -> 启动目标系统 ->嵌入式系统软件设计。其中的关键是构建Buildfile[19]。通常一个嵌入式系统需要一个可启动的操作系统映象文件(OS Image)。对于基于QNX...转载 2018-08-08 16:39:26 · 1137 阅读 · 0 评论 -
QNX资源下载地址
下载中心其实所在东西都在这里面。 BenchmarksQNX性能报告。(Performance benchmarks for the QNX Neutrino RTOS on several QNX supported hardware platforms.)预发布软件技术开发包 TDK-Technology Development Kits 驱动源码 DDK --Drive...转载 2018-07-19 09:49:23 · 5492 阅读 · 2 评论 -
libpcap详解
转载:https://blog.csdn.net/lianghe_work/article/details/45173295概述libpcap 是一个网络数据包捕获函数库,功能非常强大,Linux 下著名的 tcpdump 就是以它为基础的。 libpcap主要的作用1)捕获各种数据包,列如:网络流量统计。2)过滤网络数据包,列如:过滤掉本地上的一些数据,类似防火墙。3)分...转载 2018-07-02 17:14:50 · 4466 阅读 · 0 评论 -
Powerlink总线协议在QNX系统上的移植
一、硬件平台 通讯主站选用安装QNX系统的工控机,交叉编译工具选用QNX Momentics IDE,QNX Momentics IDE软件是基于WINDOWS系统下的QNX交叉开发环境,使用户可以使用熟悉的windows系统进行软件的开发工作。通讯从站选用以FPGA为核心的Powerlink控制板卡,由于FPGA的高通讯速率,使得Powerlink从站的反应时间大大缩减。 在此次实验中,主要的工...转载 2018-07-02 17:12:33 · 990 阅读 · 1 评论 -
QNX系统上用Berkeley Packet Filter直接进行原始数据的收发
这次我们讲的是在QNX系统上直接操作网络的数据链路层进行原始数据包收发的过程,即通过Berkeley Packet Filter我们可以绕过TCP/IP并且收发自己定义的协议。 在QNX系统的帮助文档上,很明确的写到:即伯克利包过滤语言通过网络接口提供数据链路层的数据的访问通道,具体实现步骤为: 1、打开 BPF 设备(即向系统声明使用BPF设备)/* using BPF device */ch...转载 2018-07-02 17:10:48 · 950 阅读 · 0 评论 -
QNX下ssh服务安装指南
QNX SDP 6.6.0系统。原文参考: Setting up SSH access to a QNX Neutrino target 下面只说几个关键的地方: 1. 生成Key之前,要确保inetd和random -p的执行; 2. /var下的几个目录:/var/chroot,/var/chroot/sshd要建立好; 3. chmod 700 /var/chroot/sshd要执行。 4....转载 2018-04-13 14:52:28 · 836 阅读 · 2 评论 -
QNX系统中添加自己编译的.so库
将自己编译生成的动态链接库文件打包到QNX系统中,主要修改的是打包所依赖的build配置文件。默认情况下,mkifs会根据build文件中所声明的库和脚本来生成系统bin文件;在解释build时会根据之前主机上的环境变量搜索指定的路径,当我们的so文件的路径不在环境变量所定义的路径中时,我们就需要显示的指定我们的so库的文件位置。一般情况下,build的默认搜索路径是从install/${CPU_...转载 2018-04-11 17:44:42 · 1440 阅读 · 0 评论 -
QNX BSP下AR8035 PHY驱动调试
转载:https://blog.csdn.net/sgbsgb/article/details/78110027问题背景:当前开发板用的是QNX 7的sabreARD的BSP,主芯片是imx6q,PHY芯片是atheros的AR8035,当把MAC与PHY之间的管脚配置好之后。启动io-pkt-v6-hc -d mx6x服务之后,PHY无论如何无也无法正常工作,具体信息如下:-->ifcon...转载 2018-04-10 09:22:22 · 1413 阅读 · 0 评论 -
QNX下如何使用优盘
第一步 打开QNX(小废话,呵呵)第二步 使用pidin | grep usb ,看看是否有USB驱动在运行第三步 如果没有相关的驱动运行 主动加载驱动程序 "mount -Tio-usb devu-ehci.so /dev/io-usb/io-usb.""mount -Tio-usb devu-ohci.so /dev/io-usb/io-usb.""mount -Tio-usb devu-u...转载 2018-04-10 09:14:10 · 1210 阅读 · 0 评论 -
Qt在QNX下的使用方法
本文简单介绍Qt在QNX下如何使用,不当之处还请各位专家斧正!本文主要介绍的使用方式是:首先在Windows上进行界面设计,待界面设计成功之后,再一次性放到QNX上编译运行即可。如果您已经能在Windows/Linux上成功运行Qt,或者说您只要有Qt的工程文件,您直接可以跳到第二步,而不需要参考第一步。可能有些人喜欢在Windows下的QNXMomentics IDE 上进行程序开发,文章末尾也...转载 2018-04-10 09:09:06 · 1565 阅读 · 5 评论 -
[i.MX6Q][QNX Neutrino 6.6.0]调试笔记------Buildfile
利用QNX的模块性和和可裁剪性,其嵌入过程一般是:构建Buildfile -> 编译buildfile生成系统映象文件 -> 启动目标系统 ->嵌入式系统软件设计。其中的关键是构建Buildfile。通常一个嵌入式系统需要一个可启动的操作系统映象文件(OS Image)。对于基于QNX的嵌入式一个应用系统,就是根据所选择的CPU类型以及应用程序所需要的操作系统模块来转载 2017-10-25 09:09:44 · 1502 阅读 · 1 评论 -
QNX配置网卡
用惯了emacs了,不习惯用鼠标了。。。连simulink和labview都想多加几个快捷键。。。上学的时候懒啊,很推崇这种图形化的编程形式,现在真心不觉得这种连线的编程方式是好东西了。。。。这次主题是QNX;初次接触到QNX是使用黑莓手机,然后关注黑莓公司,使用momentics软件,但是对qnx一直不太熟悉。真正使用到QNX是通过Opal-RT公司的下位机。微内核确实速度比较快,但转载 2017-10-11 11:13:28 · 2568 阅读 · 0 评论 -
QNX学习笔记之QNX Momentics IDE开发工具使用笔记
使用tftp,串口连接Target,下载内核1.uboot的使用1) 采用串口,波特率为115200, 采用QNX M IDE默认的设置,按任意键,即可进入uboot2) 常用的命令有: setenv serverip 192.168.0.1;设置服务器tftp地址 setenv ipaddr 192.168.0.2;设置本地tftp地址 tftp 2000转载 2017-10-10 15:27:16 · 3028 阅读 · 0 评论 -
QNX驱动开发——Resource manger framework
在QNX下开发驱动程序,最主要的工作除了了解底层硬件具体工作流程外,就是建立一个能与操作系统兼容且支持POSIX的Resource manger框架了。在任何一段程序的执行过程中一段都是从main函数开始的,然而在操作系统中的main函数还传递了两个参数:int argc, char **argv,这两个参数是用来传递从shell命令行或者buildfile中传来对Resource m转载 2017-10-09 19:41:25 · 1836 阅读 · 0 评论 -
QNX驱动开发—APP应用与resource manger的交互通信,进程间通信
QNX操作系统是一个类Unix实时操作系统,遵从POSIX规范,驱动程序具有良好的可移植性。 编写任何驱动程序都会遇到同样的一个问题:应用程序与驱动程序之间是如何进行交互的。其实这个问题很简单,QNX有大量资料说明这一点。 当客户端调用fd = open(“dev/mydevice”,O_RDWR)打开设备mydevice,并期望从设定的地址上读写数据时转载 2017-10-09 18:26:41 · 1372 阅读 · 1 评论 -
QNX驱动开发—进程调度和进程通信
QNX进程间调度和进程通信切换任务一、进程调度方法1.FIFO:先进先出队列法。一个最高优先级的线程可以一直执行到结束或是主动放弃CPU。高优先级的线程可以随时中断低优先级的线程,获得CPU的使用权限,与之相同优先级的CPU也只能等待其交出CPU的使用权限后才能按排队的顺序先后执行。2.Round Robin:循环法。除了对于最高的相同优先级的使用时间片轮转的方法外,其他特转载 2017-10-09 18:05:02 · 1866 阅读 · 0 评论 -
QNX手册学习————IPC(1)
读QNX_Neutrino_RTOS_System_Architecture手册IPC章 Synchronous message passing和Message copying以及Channels and connections节。进程之间的通信交互(Interprocess Communication简称IPC)在各类实时操作系统中扮演重要的角色。QNX提供了三个主要传递信息接口:Msg转载 2017-08-11 09:39:54 · 579 阅读 · 0 评论 -
搭建QNX开发环境-qnx系统环境开发
QNX是可以提供试用30天,目前发布最新的是qnx7.0版本,申请也是只能7.0,做好白老鼠的准备。老版本不再申请试用,其实多数时候,老版本的650,650sp1,和较新稳定的660版本,大部分功能已经完善量产,但不放出,需要直接购买。30天评估版页面:http://www.qnx.com/products/evaluation/在该页面下载所需软件,并转载 2017-08-17 16:15:55 · 2213 阅读 · 1 评论 -
QNX学习笔记之QNX Momentics IDE使用笔记
使用tftp,串口连接Target,下载内核1.uboot的使用1) 采用串口,波特率为115200, 采用QNX M IDE默认的设置,按任意键,即可进入uboot2) 常用的命令有:setenv serverip 192.168.0.1;设置服务器tftp地址setenv ipaddr 192.168.0.2;设置本地tftp地址tftp 200转载 2017-08-02 17:34:46 · 6645 阅读 · 0 评论 -
QNX Neutrino 命令手册,“使用宝典”!
因为QNX开发调试需要一些QNX Neutrino操作,所以进一步熟悉一下QNX操作,发现QNX官网上有完整的命令手册,真是如获至宝,官网文档网址如下,找其中的《QNX Neutrino Utilities Reference》。http://www.qnx.com/download/group.html?programid=20945 自己学习总结的经验是,如果之前没有接转载 2017-08-02 17:17:17 · 598 阅读 · 0 评论 -
QNX system architecture 16 - Adaptive Partitioning
QNX支持自适应分区,这里的分区并不是常见的磁盘分区,而是一个可分配资源集合。QNX通过自适应分区控制竞争进程间的资源分配控制。What are partitions在一些计算机系统中,需要把应用或者应用组同其他应用或应用组隔离起来。我们不希望一个应用程序(不管是不是恶意的)破换其他应用或者阻止其他应用执行。针对这个问题,某些系统使用虚拟墙,也称为分区,确保在这个分区内的一转载 2017-08-02 17:12:20 · 602 阅读 · 0 评论 -
QNX system architecture 11 - Character I/O
实时操作系统的一个关键性需求是高性能字符!/O字符设备和块设备的一个重要区别:字符设备包含了字节流序列,串行传输;不同于块设备数据永久存在于介质上,此外字符设备的数据是临时生成的。在POSIX和UNIX传统上,这些字符设备位于OS目录空间/dev/下。比如一个modem或者终端串口设备存在于/dev/ser1PC机上的典型硬件设备包括:serial port转载 2017-08-02 17:11:27 · 746 阅读 · 0 评论 -
QNX system architecture 6 - Process manager
进程管理器能够创建多个POSIX进程,每个进程可以包含多个POSIX线程。在QNX Neutrino RTOS,procnto系统进程包含microkernel, 进程管理模块,内存管理模块和路径管理模块。因此进程管理模块并不是微内核的一部分。进程管理 - 管理进程创建,销毁和进程属性比如uid和gid内存管理 - 管理一定范围的内存保护能力,共享库,以及进程间的POSIX共享内存转载 2017-08-02 17:10:46 · 517 阅读 · 0 评论