QNX系统与驱动
janet2013t
这个作者很懒,什么都没留下…
展开
-
QNX---SPI驱动分析。
QNX系统启动后,执行一系列脚本命令,然后加载SPI驱动。脚本SPI启动文件spi-master -u3 -d Touch-espi base=0x02010000,irq=65 当QNX执行该脚本时,会自动到指定目录搜索是否存在spi-master驱动,然后后面一串是参数设置。这一串参数就像Linux设备树一样,指定相关的硬件参数。具体参数意义在驱动力在详细解释。 ...原创 2018-03-13 10:10:03 · 3785 阅读 · 4 评论 -
QNX-----IMX6UL最简单的LED点灯程序
QNX-----IMX6UL最简单的LED点灯程序 QNX的应用开发程序比较简单,因为QNX 提供专门的集成开发工具QNX Momentics IDE ,通过该工具可以快速的进行应用程序设计,在QNX程序里,每一个应用都是从main开始的。 首先看硬件连接,在硬件原理图上,提供两个LED接口,分别接到了SN...原创 2018-09-21 22:00:29 · 1782 阅读 · 0 评论 -
QNX----第3章 进程间通信(1部分)
QNX----第3章 进程间通信(1部分)进程间通信在将微内核从嵌入式实时内核转换为全面的POSIX操作系统的过程中起着至关重要的作用。随着各种服务提供进程被添加到微内核中,IPC是将这些组件连接到一个内聚整体的粘合剂。虽然消息传递是QNX中微子RTOS中IPC的主要形式,但也有其他几种形式。除非另有说明,那些其他形式的IPC是在我们的本机消息传递之上构建的。策略是创建一个简单、健壮的IP...原创 2018-10-30 20:21:11 · 3545 阅读 · 0 评论 -
QNX--- memtester 工具使用
memtester的下载地址:http://pyropus.ca/software/memtester/ 有源码安装包等。在QNX上使用的是4.3.0版本。下载好源码后,提取源码文件,包括tests.c memtester.c等等,修改某些参数后,通过编译,生成可执行二进制文件。执行命令# memtest 1M 1 &串口超级终端输出:memtester ver...原创 2019-01-17 14:57:10 · 1944 阅读 · 0 评论 -
QNX----第2章 QNX Neutrino 线程 进程与调度策略(2部分)
同步服务QNX中微子RTOS提供了posix标准的线程级同步原语,其中一些在不同进程的线程之间是有用的。同步服务至少包括以下内容: 互斥:互斥锁互斥锁或互斥锁是最简单的同步服务。互斥用于确保对线程间共享的数据的独占访问。互斥对象通常被获取(pthread_mutex_lock()或pthread_mutex_timedlock()),并在访问共享数据(通常是关键部分)...原创 2019-01-16 17:11:02 · 2236 阅读 · 0 评论 -
QNX----第3章 进程间通信(2部分)
QNX----第3章 进程间通信(2部分)事件 QNX中微子内核设计的一个重大进展是事件处理子系统。POSIX及其实时扩展定义了许多异步通知方法(例如,不排队或传递数据的UNIX信号、可能排队和传递数据的POSIX实时信号等)。内核还定义了额外的QNX特定于中微子的通知技术,如脉冲。实现所有这些事件机制可能会占用大量的代码空间,因此我们的实现策略是在单个、丰富的事件子系统上构建所有...原创 2019-01-16 17:15:30 · 3441 阅读 · 0 评论 -
QNX添加BSP 到工程
1、到QNX官网下载QNX bsp包2、把BSP包导入工程中去具体流程如下:3、编译工程原创 2019-03-27 17:15:44 · 1407 阅读 · 0 评论 -
QNX ----IMX6UL移植NAND FLASH etfs文件系统
QNX ----IMX6UL移植NAND FLASH etfs文件系统1、IMX6UL 配置了一块256M的nandflash,其原理图如下:2、为了方便移植,到QNX官网下载IMX7的BSP中的NAND FLASH 源码,其源码支持nand4096 ,而本最小系统配置为nand2048,因此需要对其驱动进行相应修改。(1)修改 ...原创 2019-03-28 17:16:58 · 1636 阅读 · 0 评论 -
QNX---IMX6UL I2C 驱动分析
QNX---IMX6UL I2C 驱动分析I2C 是经常用到的一种总线协议,它只占用两个IO口资源,分别是SCL时钟信号线与SDA数据线,两根线就能将连接与总线上的设备实现数据通信,由于它的简便的构造设计,于是成为一种较为常用的通信方式。在QNX系统里,也提供了I2C驱动,它为我们提供了驱动模板,其驱动目录...原创 2019-03-29 13:31:11 · 1792 阅读 · 1 评论 -
QNX EMMC 分区
QNX---EMMC 分区 QNX EMMC 分区是通过fdisk实现的,其分区命令使用帮助信息如下:fdisk - create QNX disk partition (QNX)fdisk [-zf] [-B loader] drive [cmd [args]]Optio...原创 2019-07-17 21:27:47 · 3236 阅读 · 0 评论 -
QNX ---- IMX6UL SDMMC调试
QNX ---- IMX6UL SDMMC调试 在QNX下,QNX提供了一个build的配置文件,和相关驱动源码,下载《QNX SDP 6.6 BSP for the Freescale i.XM6 Solo X Sabre SDB》开发包,导入到工程就可以开始BSP调试了。我的开发是基于IMX6UL ARM Corte...原创 2018-09-21 16:14:49 · 1367 阅读 · 3 评论 -
QNX----I2C驱动框架
QNX----I2C驱动框架 I2C (interintegrated Circuit)是一种简单的串行协议,它以主从关系连接多个设备。多个主设备可以共享一个总线。在不同的事务中,同一设备可以同时充当主从设备。I2C规范定义了这些传输速度范围:≤ 100 Kbit/s ≤ 400 Kbit/s ≤ 3...原创 2018-09-26 19:04:53 · 4068 阅读 · 0 评论 -
QNX----第9章 文件系统
QNX----第9章 文件系统QNX Neutrino RTOS提供了丰富的文件系统。与OS中的大多数服务提供过程一样,这些文件系统在内核之外执行;应用程序通过POSIX API的共享库实现生成的消息来使用它们。如本书所述,这些文件系统中的大多数都是资源管理器。每个文件系统都采用部分路径名空间(称为挂载点),并通过标准POSIX API (open()、close()、read()、wri...原创 2018-09-20 17:38:59 · 7747 阅读 · 2 评论 -
QNX----知识 频道(Channel)与连接(Connect)
QNX频道的概念 : 频道(Channel)与连接(Connect) 消息传递是基于服务器与客户端的模式来进行的,那么客户端怎样才能与服务器端通讯呢?最简单的,当然是指定对方的进程号。要发送的一方,将消息加一个头,告诉内核“把这个消息发给pid 12345”就行了。其实这也是QNX4时候的做法。但QNX6开始完整支持POSIX线程后,这种方法似乎就不太适合了。如果服务器,有两个线程,分别进...原创 2018-10-30 20:25:17 · 2231 阅读 · 0 评论 -
QNX的GNS 部署
GNS 部署GNS的几种模式GNS实用程序以两种不同的模式运行:服务器模式和客户端模式。服务器模式管理器是存储通知服务并处理查找和连接请求的中央数据库。客户端模式管理器在本地应用程序和GNS服务器之间传递通知、查找和连接请求。以下是通过网络分布的GNS客户端和GNS服务器的简单布局例子:Figure 1. 一个简单的GNS布局设置。在本例中,设计了一个GNS客户端和一个GNS服务器。就应用程序而言...原创 2018-06-27 20:10:25 · 539 阅读 · 0 评论 -
QNX-----定时器的使用
QNX-----定时器的使用 1 创建定时器 QNX定时器首先需要创建一个定时器对象,设置通知类型,一般包括信号、脉冲或线程创建,并创建通知结构(结构sigevent),设置定时类型 (相对与绝对,一次与周期),最后启动它。 int timer_create( clockid_t clock_id, struct sigevent * evp, ...原创 2018-09-23 22:07:40 · 3560 阅读 · 0 评论 -
QNX ----Uart 驱动设计
QNX Uart 驱动设计e-mail 1098292007@qq.com QNX 串口的应用层和linux串口应用开发过程基本一样,可以通过访问文件的方式,进行串口读写操作。关键是需要配置好底层驱动,本驱动采用加载动态库的方式,因为针对应用层,水平层次不一样,不知道串口怎样操作,至少在我们公司是这样的感觉。废话不多说,先看应用层如何调用。首先定义一组串口接口操作方法...原创 2018-07-10 14:50:24 · 3453 阅读 · 7 评论 -
QNX----第2章 QNX Neutrino 线程 进程与调度策略(1部分)
QNX Neutrino RTOS的实现从历史上看,QNX的软件系统的"应用压力"是由内存有限的嵌入式系统从内存有限的嵌入式系统中得到的,一直到高端的SMP(对称多处理器)计算机,有千兆字节的物理内存。因此,QNX中微子的设计目标同时适用于这两种看似唯一的功能集。追求这些目标的目的是扩展系统的范围,远远超出其他操作系统实现所能解决的范围。POSIX实时和线程扩展由于QNX Neutri...原创 2018-09-23 21:49:33 · 4933 阅读 · 0 评论 -
QNX----QNX内核移植到IMX6UL
在IMX6ULL 移植QNX6.6 成功,采用QNX BSP开发包QNX SDP 6.6 BSP for the Freescale i.XM6 Solo X Sabre SDB,移植到i.XM6 Solo X Sabre SDB开发包为ARM Cortex-A9/M4架构,而本开发板为ARM Cortex-A7/M4,其他区别不大,移植难度不大,注意两种处理器的差异性即可。...原创 2018-09-20 11:14:04 · 2416 阅读 · 8 评论 -
QNX ----第4章插装微内核
QNX ----第4章插装微内核微内核(procnto-instr)的插装版本配备了复杂的跟踪和分析机制,可以让实时监视系统的执行。procnto-instr模块在单CPU和SMP系统上工作。procnto-instr模块使用的开销非常小,并且提供了非常好的性能——它的速度通常是插装内核的98%(当它不进行日志记录时)。插装的内核中额外的代码量(在x86系统上约为30kb)对于增加这个有用...原创 2018-09-20 11:21:12 · 1523 阅读 · 0 评论 -
QNX---- 第5章 多核处理
QNX--- 第5章 多核处理俗话说“三个臭皮匠,顶个诸葛亮”,计算机系统也是如此。在计算机系统中,两个或两个以上的处理器可以大大提高性能。多处理系统可以采用以下形式:离散或传统:一种系统,它有独立的物理处理器,以多处理模式连接到一个板级总线上。多核:一种具有一个物理处理器和多个互连cpu的芯片,在芯片级总线上。多核处理器通过并发提供更大的计算能力,提供更大的系统密度,并以低于单处理器...原创 2018-09-20 11:26:32 · 2457 阅读 · 2 评论 -
QNX----第1章 QNX Neutrino的原理
QNX----第1章 QNX Neutrino的原理QNX中微内核RTOS的主要目的是提供一种健壮的、可裁剪的基于POSIX API开放系统,这种系统广泛适用于从小型、资源受限的嵌入式系统到高端的分布式计算环境。该操作系统支持多种处理器架构,包括x86和ARM。为什么POSIX用于嵌入式系统?实时应用程序开发的一个常见问题是,每个实时操作系统都有自己的专用API。在没有行业标准的情况...原创 2018-09-20 11:41:22 · 4289 阅读 · 0 评论 -
QNX----基本命令的使用
QNX----基本命令的使用 QNX命令很多和Linux相似,本节只介绍QNX经常用到的命令,经常用的如ls rm mkdir chmod 就可以查看linux手册了。1、pidin 进程查看命令显示系统中进程的信息,其中 pid 是指进程号,tid 指线程号 name 指的是软件...原创 2018-09-25 21:38:04 · 16853 阅读 · 1 评论 -
QNX----QNX内核移植到ZYNQ7010 (黑金开发板)
QNX----QNX内核移植到ZYNQ7010 (黑金开发板) 在ZYNQ 平台移植QNX6.6 ,下载BSP_xilinx-zynq-7000-zc702_br-660_be-660_SVN848518_JBN92开包,根据自己搭建的軟核,修改相应的BSP驱动即可。 黑金硬件平台: 综合图如下:移植结果...原创 2019-09-10 14:22:09 · 1823 阅读 · 1 评论