如何访问QNX中的硬件?

时间:2017-10-12 12:02:11

标签: c++ operating-system qnx

我在机器上安装了QNX。问题是,嵌入式系统还必须能够访问硬件,端口管理等。这是如何在QNX中实现的?在哪个方向学习?到目前为止,我发现这是文件,目录,用户,组等的组织。或者我不明白系统的工作原理

2 个答案:

答案 0 :(得分:5)

注意:我在底部提供了代码样本的链接。

我试着用Linux and QNX之间的区别来解释它。

QNXRTOS,其kernel可以称为Neutrino KernelKernel只是一个与H/W互动的基本骨骼,它是任何operating system的核心,但OSapplication softwareKernel组成在unison中有效,以达到computer system的目的。

Linux本身只是一个KernelGNU/Linux是一个完整的OS

Linux基于monolithic architecture,而QNX则为Micro Kernel

Monolithic kernel:所有OS servicekernel main thread一起运行,因此位于同一memoryMonolithic kernels更容易实现,但bug等某些部分driver会降低整个系统的效果。

更多RANT:

QNX是完整的microkernel,基于realtime OS,而Linuxmonolithic kernelQNX可以在许多Embedded platforms上投放mini computers,例如在satnavmusic controls的汽车上SCADA systems。{Jeep Cherokee),framework。应用程序构建X11WaylandLinux大不相同QNX GUI。如Linux所示,它更接近骨骼和金属。

示例:在X11中如果您想在屏幕上绘制一个圆圈,这将经历多个抽象层,如QNX,在networky中,事物采取更直接的方式这使得它在小芯片上变得更快,这导致X11使Linux成为QNX的大部分framework内容失去了。{/ p>

embedded systems有点开箱即用,支持GNU/LINUX支持Real Time,而timely responses则与此相反。

事情的{p> accuracy of the response方面涉及QNXcoding

查看here以了解QNX以及int index; for (int i = 0; i < arr.length; i++) { if (arr[i] != null) { index = i; break; } } 所需的不同部分。

ObjectUtils.firstNonNull可以找到示例代码here

答案 1 :(得分:2)

QNX SDP 7的文档位于http://www.qnx.com/download/group.html?programid=29184 - 您需要登录才能访问它(如果您还没有帐户,请创建一个帐户)。

必须阅读QNX Neutrino系统架构指南。

总体而言,系统启动(请参阅构建嵌入式系统)和提供系统服务的过程(编写资源管理器)将需要硬件访问。主要是你将看到有足够的权限来访问端口,连接中断处理程序,并将硬件资源映射到程序的地址空间,然后创建初始化例程,中断处理程序(QNX Neutrino RTOS程序员指南)和各种形式的事件响应者在中断处理程序解除阻塞时在资源管理器进程内的线程中操作。 QNX Neutrino Cookbook提供了一些例子。在库引用中以及搜索示例时,查找mmap * in * out * shm *等函数。

但是,首先要学习并真正学习系统架构,在不了解架构和相关术语的情况下,很难找到绕过其余文档的方法并理解它。

玩得开心!