平臺之上仍是平臺之下?QNX學習的分水領

學習QNX有一段時間了,應該回過頭總結一下學習過程,理一理思路,爲下一步學習理清方向,同時也能夠給各位共同窗習的朋友(我心中「同窗」的概念)提供參考。算法

 

看一看本身的文章和目前學習的內容,發現QNX學習涉及了兩個大的方面,一方面是QNX平臺的使用以及QNX平臺上的開發工做,另外一方面是QNX平臺自己的開發以及底層的軟硬件原理。對於一個學習者來講,這兩方面其實能夠比較獨立的。這也就是爲何我在標題中將它說成是「分水嶺」的緣由,學習者徹底能夠根據本身的技術積累,興趣,工做性質選擇其中一方面着重進行學習。編程

 

先看看QNX平臺的使用和QNX平臺上的開發工做,也就是平臺之上。由於QNX爲不一樣的CPU(X86,ARM,。。),不一樣的開發板(如我使用的BeagleBoard)提供了對應的BSP(board support package ),向上提供了統一的API以及使用界面(Shell 或者是Photon),因此QNX的使用者和開發者都不須要詳細瞭解底層的信息。也就是說QNX平臺屏蔽了不一樣硬件平臺的差別,向上提供了統一的編程接口和使用界面。若是咱們是爲QNX系統開發應用的開發人員,咱們不須要去了解硬件平臺上是使用了X86的CPU仍是ARM的CPU,咱們只須要掌握c\C++,掌握QNX的API就行了。架構

以我我的的認識,實際上QNX系統不會有太多直接的使用者,大多數QNX用戶都是經過QNX上層開發人員開發的界面操做QNX的,對他們來說QNX可能就是車載系統的顯示屏和幾個按鈕而已,甚至他們根本沒據說過QNX。因此這裏只討論QNX上層開發人員須要學習的內容。ide

首先,若是你只是在QNX平臺上開發應用,你不須要一個開發板,QNX Momentics和QNX 虛擬機已經足夠了。工具

QNX上層開發人員須要作的是安裝QNX Momentics和QNX 虛擬機,抱着QNX官網上的文檔好好學習(每天向上)。至於學習的範圍,《System Architecture》之類的須要先讀一讀,但不須要深刻,主要學習的是《Getting Started with QNX Neutrino》和《QNX Programmer’s Guide》這兩本,再備上《QNX Library Reference》就差很少了。學習一段時間,掌握了QNX基本編程技巧後,根據本身的狀況選擇Advanced Graphics圖形編程,Photon編程等。再後面可能就須要進一步考慮各類算法,更上層的接口封裝等等問題了。到那時你應該算是個高級工人了吧。學習

不過,話說回來,QNX平臺上層開發者的身份並不會限制你學習QNX平臺下的底層知識。只要你有足夠的時間和精力,儘管去學習吧,對底層瞭解的更多就更容易掌握上層工具。測試

 

說到底層,就看看QNX平臺平臺之下的學習內容。由於QNX須要爲不一樣的硬件平臺提供支持,因此它提供了不一樣硬件平臺對應的BSP。可是,打包好的BSP並非萬能的,不少狀況下都須要對BSP進行調整,多是增長某種輸入設備的支持,或者是減小某個系統模塊。使人開心的是QNX是開源的,就是說你們能夠看到BSP裏的源代碼,而後對其進行修改(有關商業許可?那是你公司老闆要考慮的問題吧,工程師不考慮它)。從中能夠看到,須要鑽到QNX系統底層的,是嵌入式系統開發人員。ui

若是你是一個嵌入式開發人員,或者你但願成爲一個嵌入式開發人員,或者你只是簡單地對ARM CPU感興趣,QNX系統能夠做爲一個不錯的學習方向。而學習QNX底層的時候必須要有一個開發板(若是是針對ARM固然就必需是ARM開發板)。對於開發板得選擇我本身是以爲BeagleBoard不錯,至少能夠有個人博客做參考,:-)。有些網友說BeagleBoard太貴了,那能夠考慮只買BeagleBoard板,不買開發板。若是隻買BeagleBoard板都以爲貴了,就選擇其它的一些便宜的開發板,不過有可能沒有合適的QNX BSP。固然,沒有人規定學嵌入式開發就必需學習QNX,按着開發板的相關資料開始學習就是了。那些就和QNX沒有關係了,在這裏不做討論。接口

拿上開發板,在PC上安裝QNX Momentics,將開發板環境設置好,開始你的學習。一樣,QNX官方文檔很須要,仍是先看《System Architecture》,再看《Building Embedded Systems》。看完本身編譯一個系統出來,測試運行成功後開始對系統進行裁剪,作到比較隨意地建構QNX系統。開發

進一步是各類各類硬件驅動,這個時候就須要對底層有更深的瞭解,須要學習各類CPU架構,彙編,不一樣硬件的文檔等等。我我的不是作嵌入式系統出身的,這些知識也在學習中,沒法給出更遠,更清晰的描述了。後面學習有進一步體會再和各位分享。

 

也就是說,根據我目前的學習體會,在QNX學習過程當中涉及到的面比較廣,上層到下層都有,能夠根據本身的狀況選一個着重方向。

相關文章
相關標籤/搜索