平臺之上還是平臺之下?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上層開發人員需要學習的內容。

首先,如果你只是在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系統底層的,是嵌入式系統開發人員。

如果你是一個嵌入式開發人員,或者你希望成爲一個嵌入式開發人員,或者你只是簡單地對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學習過程中涉及到的面比較廣,上層到下層都有,可以根據自己的情況選一個着重方向。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章