我在机器上安装了QNX。问题是,嵌入式系统还必须能够访问硬件、端口管理等等。这是如何在QNX中实现的?学习的方向是什么?到目前为止,我发现这是文件、目录、用户、组等的组织,或者我不理解系统的工作原理。
发布于 2017-10-12 12:51:13
注意:我在代码示例的底部放置了一个链接。
我试着用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(吉普切罗基),SCADA systems的汽车上运行。构建framework的应用程序与X11或在Linux上获得的Wayland有很大不同。如QNX GUI所示,它更接近骨和金属。
示例:在Linux中,如果您想在屏幕上画一个圆圈,这将经过许多抽象层,比如X11,在QNX中,事情会采取一种更直接的路线,这使得它在一个小芯片上更快,这将导致将X11在Linux上可能实现的大部分networky东西丢失到Linux上。
QNX有点出格,支持framework来制作embedded systems,vs GNU/LINUX则与此截然相反。
Real Time方面的事情是关于timely responses和accuracy of the response的。
查看这里以了解QNX和coding所需的不同部分。
QNX示例代码可以找到这里。
发布于 2017-10-13 00:59:24
QNX 7的文档位于http://www.qnx.com/download/group.html?programid=29184 --您需要登录才能访问它(如果您还没有帐户,请创建一个帐户)。
QNX中微子系统架构指南是必读的。
总的来说,系统启动(请参阅构建嵌入式系统)和提供系统服务的进程(编写资源管理器)需要硬件访问。首先,您将看到有足够的特权来访问端口、附加中断处理程序和将硬件资源映射到程序的地址空间,然后创建初始化例程、中断处理程序(QNX中微子RTOS程序员指南)以及各种形式的事件响应器,这些响应器在资源管理器进程中的线程中操作,当中断处理程序解除阻塞时。QNX中微子食谱给出了一些例子。在库引用中和搜索示例时查找mmap* in* out* shm*之类的函数。
但是,首先学习并真正学习系统体系结构,如果不了解体系结构和相关术语,就很难找到解决其余文档的方法。
玩得开心!
https://stackoverflow.com/questions/46709115
复制相似问题