2017-10-12 63 views
2

我在機器上安裝了QNX。問題是,嵌入式系統還必須能夠訪問硬件,端口管理等。這在QNX中如何實現?在什麼方向學習?到目前爲止,我發現這是文件,目錄,用戶,組等等的組織。或者我不明白系統的操作原理如何訪問QNX中的硬件?

+1

可能很有用:http://www.qnx.com/developers/docs/7.0.0/#com.qnx.doc.pci_server/topic/server.html – xmojmr

回答

5

注意:我在底部放置代碼示例的鏈接。

我試圖用Linux and QNX之間的差異來解釋它。

QNXRTOS及其kernel可以被稱爲Neutrino KernelKernel只是一個光禿禿的骨頭與H/W相互作用,這是任何operating system的核心,但OSapplication softwareKernelunison作品達到computer system的目的。

Linux本身就是一個Kernel,GNU/Linux是一個完整的OS

Linux基於monolithic architecture而QNX是Micro Kernel

Monolithic kernel:所有OS servicekernel main thread一起運行,因此位於相同的memory中。 Monolithic kernels更容易實現,但bug的某些部分(如driver)可能會降低整個系統的性能。

更多RANT:

QNX是基於realtime OS一個完整的microkernel,VS Linux這是一個monolithic kernel。 (Jeep Cherokee),SCADA systems可以在許多Embedded platforms上運行,例如在mini computers上。應用程序大廈frameworkX11Wayland大不相同,您可以在Linux上獲得。如QNX GUI所示,它更接近骨骼和金屬。

例:Linux如果你想在屏幕上畫一個圓,這會經過許多抽象層像X11,在QNX事情采取更直接的路線,這使得它更快的一個小缺口,這個結果在丟失大部分networky東西,其中X11使Linux成爲可能。

QNX有些開箱,支持framework用於製造embedded systems,VS GNU/LINUX是這種多一點的對面。

Real Time一面的東西大概都是timely responsesaccuracy of the response

請看here瞭解QNX以及您需要的不同部件coding

QNX示例代碼可以找到here

2

QNX SDP 7的文檔在http://www.qnx.com/download/group.html?programid=29184 - 您需要登錄才能訪問它(創建一個帳戶,如果您還沒有的話)。

QNX Neutrino系統體系結構指南是必讀文章。總的來說,系統啓動(請參閱構建嵌入式系統)和提供系統服務的過程(編寫資源管理器)需要硬件訪問權限。首先你會看到有足夠的權限訪問端口,附加中斷處理程序,並將硬件資源映射到程序的地址空間,然後創建初始化例程,中斷處理程序(QNX Neutrino實時操作系統程序員指南)和各種形式的事件響應者在中斷處理程序解除阻塞時在資源管理器進程內的線程中運行。 QNX Neutrino食譜提供了一些例子。在庫引用和搜索示例時查找mmap * in * out * shm *等函數。

但是,首先要學習並真正學習系統架構,否則很難在不瞭解架構和相關術語的情況下找到其他文檔並理解它。

玩得開心!