如何访问 QNX 中的硬件?
How to access the hardware in QNX?
我在机器上安装了QNX。问题是,嵌入式系统还必须能够访问硬件、端口管理等。这在 QNX 中是如何实现的?往什么方向学习?到目前为止,我发现这是文件、目录、用户、组等的组织。或者我不明白系统的运行原理
注意:我在底部放了一个 LINK 代码示例。
我会尝试用 Linux and QNX
.
之间的差异来解释它
QNX
是一个RTOS
,它的kernel
可以称为Neutrino Kernel
。 Kernel
只是与 H/W
相互作用的骨架,它是任何 operating system
的核心,但 OS
由 application software
和 Kernel
组成它在 unison
中工作以达到 computer system
.
的目的
Linux
本身只是一个Kernel
,GNU/Linux
是一个完整的OS
。
Linux
基于 monolithic architecture
而 QNX 是 Micro Kernel
.
Monolithic kernel:
所有 OS service
运行 连同 kernel main thread
因此位于同一个 memory
。 Monolithic kernels
更容易实施,但 bug
在某些部分,如 driver
会降低整个系统。
更多咆哮:
QNX
是基于 realtime OS
的完整 microkernel
,而 Linux
是 monolithic kernel
。 QNX
可以在许多 Embedded platforms
上 运行,例如 mini computers
上有 satnav
或 music controls
的汽车。(Jeep Cherokee),SCADA systems
。构建 framework
的应用程序与 X11
或 Linux
上的 Wayland
大不相同。如图QNX GUI
更接近骨骼和金属
示例:在 Linux
中,如果您想在屏幕上画一个圆,这将像 X11
一样经历许多抽象层,在 QNX
中,事情需要更多直接路由使它在小芯片上更快,这导致丢失了大部分 networky
东西,而 X11
使 Linux
.
成为可能
QNX
有点开箱即用,支持 framework
制作 embedded systems
,而 GNU/LINUX
与此相反。
Real Time
方面是关于 timely responses
和 accuracy 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* 等函数。
但是,首先研究并真正学习系统架构,如果不了解架构和相关术语,将很难找到其余文档的方法并理解它。
玩得开心!
我在机器上安装了QNX。问题是,嵌入式系统还必须能够访问硬件、端口管理等。这在 QNX 中是如何实现的?往什么方向学习?到目前为止,我发现这是文件、目录、用户、组等的组织。或者我不明白系统的运行原理
注意:我在底部放了一个 LINK 代码示例。
我会尝试用 Linux and QNX
.
QNX
是一个RTOS
,它的kernel
可以称为Neutrino Kernel
。 Kernel
只是与 H/W
相互作用的骨架,它是任何 operating system
的核心,但 OS
由 application software
和 Kernel
组成它在 unison
中工作以达到 computer system
.
Linux
本身只是一个Kernel
,GNU/Linux
是一个完整的OS
。
Linux
基于 monolithic architecture
而 QNX 是 Micro Kernel
.
Monolithic kernel:
所有 OS service
运行 连同 kernel main thread
因此位于同一个 memory
。 Monolithic kernels
更容易实施,但 bug
在某些部分,如 driver
会降低整个系统。
更多咆哮:
QNX
是基于 realtime OS
的完整 microkernel
,而 Linux
是 monolithic kernel
。 QNX
可以在许多 Embedded platforms
上 运行,例如 mini computers
上有 satnav
或 music controls
的汽车。(Jeep Cherokee),SCADA systems
。构建 framework
的应用程序与 X11
或 Linux
上的 Wayland
大不相同。如图QNX GUI
更接近骨骼和金属
示例:在 Linux
中,如果您想在屏幕上画一个圆,这将像 X11
一样经历许多抽象层,在 QNX
中,事情需要更多直接路由使它在小芯片上更快,这导致丢失了大部分 networky
东西,而 X11
使 Linux
.
QNX
有点开箱即用,支持 framework
制作 embedded systems
,而 GNU/LINUX
与此相反。
Real Time
方面是关于 timely responses
和 accuracy 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* 等函数。
但是,首先研究并真正学习系统架构,如果不了解架构和相关术语,将很难找到其余文档的方法并理解它。
玩得开心!