如何访问 QNX 中的硬件?

How to access the hardware in QNX?

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

注意:我在底部放了一个 LINK 代码示例。

我会尝试用 Linux and QNX.

之间的差异来解释它

QNX是一个RTOS,它的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 service 运行 连同 kernel main thread 因此位于同一个 memoryMonolithic kernels 更容易实施,但 bug 在某些部分,如 driver 会降低整个系统。

更多咆哮:

QNX 是基于 realtime OS 的完整 microkernel,而 Linuxmonolithic kernelQNX 可以在许多 Embedded platforms 上 运行,例如 mini computers 上有 satnavmusic controls 的汽车。(Jeep Cherokee),SCADA systems。构建 framework 的应用程序与 X11Linux 上的 Wayland 大不相同。如图QNX GUI更接近骨骼和金属

示例:在 Linux 中,如果您想在屏幕上画一个圆,这将像 X11 一样经历许多抽象层,在 QNX 中,事情需要更多直接路由使它在小芯片上更快,这导致丢失了大部分 networky 东西,而 X11 使 Linux.

成为可能

QNX 有点开箱即用,支持 framework 制作 embedded systems,而 GNU/LINUX 与此相反。

Real Time 方面是关于 timely responsesaccuracy of the response

查看 here 以了解 QNX 以及 coding 所需的不同部分。

QNX 可以找到示例代码 here

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

QNX Neutrino 系统架构指南是必读的。

总的来说,系统启动(请参阅构建嵌入式系统)和提供系统服务的进程(编写资源管理器)将需要硬件访问权限。首先,您将考虑拥有足够的权限来访问端口、附加中断处理程序并将硬件资源映射到程序的地址 space,然后创建初始化例程、中断处理程序(QNX Neutrino RTOS 程序员指南),以及当中断处理程序解除阻塞时,各种形式的事件响应程序在资源管理器进程中的线程中运行。 QNX Neutrino Cookbook 提供了一些示例。在库参考和搜索示例时查找 mmap* in* out* shm* 等函数。

但是,首先研究并真正学习系统架构,如果不了解架构和相关术语,将很难找到其余文档的方法并理解它。

玩得开心!