3 i.MX51平臺移植
3.1 搭建LTIB開發環境
LTIB(LinuxTargetImageBuilder)是飛思卡爾公司開發的一個用於部署BSP的工具,含有U-Boot等引導加載程序,支持Bootloader和內核映像的構建。利用該工具,可以定製出符合GNU/Linux標準的跨平臺的根文件系統。本設計選擇使用飛思卡爾公司提供的L2.6.31_10.07.11_ER_source.tar.gz集成源碼包,在一臺安裝了Ubuntu10.04作業系統的PC機上配置安裝LTIB[4]。其過程如下:
(1)解壓縮源碼包,執行./install進入安裝LTIB的命令提示。
(2)執行./ltib進入LTIB的配置界面。
(3)在LTIB配置Platform時選擇i.MX51平臺。
(4)配置Kernel時選擇CLAAWVGAPanel(LCD觸控螢幕驅動)和SoCAudiosupportforIMX-SGTL5000(音效卡驅動),其他保持默認。
(5)將交叉編譯工具arm-none-linux-gnueabi-gcc加入PATH環境變量,在ltib根目錄執行下述命令,交叉編譯Qt庫:
./ltib-mprep-pqt-embedded.spec
./ltib-mscbuild-pqt-embedded.spec
(6)執行makeinstall,在ltib下的rootfs目錄就會生成相應的U-Boot、內核和文件系統,將將其複製到目標板的TF卡上。
3.2 架設NFS文件系統
為了簡化調試過程和縮短開發周期,在Linux主機上建立了NFS網絡文件系統,這樣就實現了宿主機與目標板的文件共享。開發過程簡化為:Linux主機編譯生成目標平臺的可執行文件→複製文件到NFS共享目錄→目標板運行程序,從而省去了重複製作鏡像、下載鏡像、重啟開發板等步驟,節省了大量的開發時間。
4 系統測試及結果
4.1 並發測試
並發測試主要用來測試多個用戶同時訪問同一個應用程式、同一個數據記錄時是否存在死鎖或其他問題。由於本系統是面向一個小區的住戶,因此系統的並發測試尤為重要。
資料庫並發測試:室內機開啟多個線程同時訪問中心機伺服器,界面並不會因大量的數據操作而出現「凍結」現象,CPU佔用穩定,資料庫返回結果顯示正常。
信息發布測試:中心機開啟多個線程同時發送廣播信息,各室內機接收正常,不會出現顯示錯誤或「丟包」現象。
4.2 跨網段測試
考慮到小區用戶一般在幾百甚至上千,一個網段的IP位址不能滿足需求。為了檢測在不同網段下通信模塊能否正常工作,使用一臺華為S5300交換機(switch)和兩臺華為5200交換機搭建了一個小型的網絡環境進行相關測試。測試採用IPv4靜態路由,使不同網段的任意兩臺室內機之間能夠互通。測試表明,分屬不同網段的室內機之間,可視通話、信息互發等模塊均正常工作,從而驗證了本設計方案的可行性。
4.3 可視對講性能測試
可視對講性能測試主要是檢測室內機終端中音視頻的採集、編解碼、收發和顯示。對於音視頻的採集、收發和顯示,可通過揚聲器和LCD顯示直觀地檢測。而對編解碼的測試則比較複雜,本設計是從最長時間、最短時間和平均時間三個方面來測試編解碼一幀音視頻所需要消耗的時間。 本文採用Linux和Qt相關技術,在飛思卡爾公司i.MX51平臺上設計了一種多功能的智能家居控制系統,實現了客戶端與伺服器的Socke通信和音視頻同步傳輸等核心功能。下一步還需要擴展家電控制、安防控制等功能。