如何访问 QNX 中的硬件?
How to access the hardware in QNX?
我在机器上安装了 QNX。问题是,嵌入式系统还必须能够访问硬件、端口管理等。这在 QNX 中是如何实现的?在什么方向学习?到目前为止,我发现这是文件,目录,用户,组等的组织。或者我不了解系统的工作原理
注意:我在底部的代码示例上放了一个链接。
我试图用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
更容易实现,但某些部分(如driver
)的bug
可能会降低整个系统。
更多咆哮:
QNX
是基于realtime OS
的完整microkernel
,而Linux
是一个monolithic kernel
。QNX
可以在许多Embedded platforms
上运行,例如在有satnav
或music controls
的汽车的mini computers
上运行。(吉普切诺基),SCADA systems
.应用程序构建framework
与X11
有很大不同,或者Wayland
你上Linux
。如QNX GUI
所示,它更接近骨骼和金属。
示例:Linux
如果你想在屏幕上画一个圆圈,这将经历许多抽象层,如X11
,QNX
事物采取更直接的路线,使其在小芯片上更快,这会导致丢失大部分networky
的东西,X11
使Linux
成为可能。
QNX
有点开箱即用,支持framework
制作embedded systems
,而GNU/LINUX
与此相反。
事情Real Time
方面是关于timely responses
和accuracy of the response
的。
查看此处以了解coding
所需的QNX
和不同部件。
QNX
示例代码可以在这里找到。
QNX SDP 7 的文档 http://www.qnx.com/download/group.html?programid=29184 - 您需要登录才能访问它(如果您还没有帐户,请创建一个帐户)。
QNX 中微子系统架构指南是必读的。
总的来说,系统启动(请参阅构建嵌入式系统)和提供系统服务的进程(编写资源管理器)都需要硬件访问。首先,您将考虑拥有足够的权限来访问端口、附加中断处理程序以及将硬件资源映射到程序的地址空间,然后创建初始化例程、中断处理程序(QNX Neutrino 实时操作系统程序员指南)以及各种形式的事件响应程序,这些响应程序在被中断处理程序解锁时在资源管理器进程内的线程中运行。QNX 中微子食谱给出了一些例子。在库参考和搜索示例时查找 mmap* in* out* shm* 等函数。
但是,首先学习并真正学习系统架构,如果不了解架构和相关术语,就很难找到绕过其余文档的方法并理解它。
玩得愉快!
- 如果编译的源代码是特定于它编译的硬件的,我们如何分发它
- 错误:(-210:不支持的格式或格式组合)功能'create'中的硬件视频解码器不支持视频源
- QNX Momentics: GoogleMock - 返回有价值,在函数中返回 void 错误
- FFmpeg——使用硬件加速进行视频解码
- 有关图像处理应用程序的硬件和软件安全性的建议
- HAL 中的硬件特定库
- 无法使用 aarch64-unknown-nto-qnx7.0.0-g++-5.4.0 编译器交叉编译 QNX 平台的
- 我们能否在stm32f中使用硬件定时器控制两个独立的进程
- 在 QNX 中,如何管理服务器和客户端之间的 IPC 连接?
- 是否可以将 Clang-Tidy 与 QNX 一起使用?
- 硬件抽象层 (HAL) 中实现的动态切换
- 需要实例化不同类/对象并在启动时确定的硬件插槽的设计模式
- ZMQ::send() 抛出异常并终止 QNX 进程.为什么以及如何从中恢复?
- 在硬件SIMD矢量指针和相应类型之间进行"interpret_cast"是一种未定义的行为吗
- 使用 SDL2 操作硬件纹理
- 标准::计时::时钟、硬件时钟和周期计数
- C++11 在异国情调的硬件上
- 编译器如何识别其主机的硬件?哪个组件?
- 在C++中拆分硬件依赖类
- 如何访问 QNX 中的硬件?