嵌入式Linux下基于MiniGUI的GIS實現
3、MiniGUI在2410上的移植
系統采用由韓國Samsung公司生產的ARM核32位RISC微處理器S3C2410;交叉編譯工具采用由韓國Mizi公司開發和維護的 armv41交叉編譯工具鏈;MiniGUI源代碼采用libminigui-1.3.3.tar.gz、minigui-res- 1.3.3.tar.gz和mg-samples-1.3.0.tar.gz。 本系統采用MiniGUI-Threads模式,移植過程如下:
1)將armv41交叉編譯工具鏈拷貝到/opt/host/arm41/bin/目錄下。
2)在pc機的根目錄下建立minigui-free目錄,在該目錄中建立nfsroot目錄。
3)將MiniGUI的源代碼copy到/minigui-free目錄。解壓縮這三個軟件包。
4)在libminigui中配置lib。
l cd /minigui-free/libminigui-1.3.3
l ./configure --host=arm-unknown-linux --enable-jpgsupport=no --enable-pngsupport=no --enable-gifsupport=no --disable-lite --prefix=/minigui-free/nfsroot --enable-smdk2410ial=yes
l 修改configure,在文件開頭處增加以下代碼:
CC=/opt/host/arm41/bin/arm41-unknown-linux-gcc
CPP=/opt/host/arm41/bin/arm41-unknown-linux-cpp
LD=/opt/host/arm41/bin/arm41-unknown-linux-ld
AR=/opt/host/arm41/bin/arm41-unknown-linux-ar
RANLIB=/opt/host/arm41/bin/arm41-unknown-linux-ranlib
STRIP=/opt/host/arm41/bin/arm41-unknown-linux-strip
l make
l make install
l 刪除/minigui-free/nfsroot中的minigui目錄, *.a, *.la文件。
l 執行/opt/host/arm41/bin/arm41-unknown-linux-strip *。
5)配置res。
l cd /minigui-free/minigui-res-1.3.3
l 修改config.linux文件,指明TOPDIR=/minigui-free/nfsroot。
l make install
6)配置mg-sample。
l cd /minigui-free/mg-samples-1.3.1
l ./configure --build=i686-pc-linux-gnu --host=arm-unknown-linux --prefix=/minigui-free/nfsroot/ LDFLAGS=-L/minigui-free/nfsroot/lib CPPFLAGS=-L/minigui-free/nfsroot/include CFLAGS=-L/minigui-free/nfsroot/include
l configure文件的修改同4)。
l make
7)制作ramdisk。
l 將/minigui-free/nfsroot/lib中所有的庫文件copy到ramdisk的/lib中,將/minigui-free /nfsroot/usr/local/lib/minigui目錄copy到ramdisk的/lib目錄中。
l 在ramdisk中建立/usr/local目錄,在該目錄中建立連接ln –s /lib lib。
l Copy /minigui-free/MiniGUI.cfg文件到ramdisk的/etc目錄。
l Copy /minigui-free/mg-sample-1.3.1/src/目錄下所需要的文件到ramdisk中的/bin目錄。
8)將ramdisk燒寫到板子上。
4 GIS開發
在嵌入式產品中使用MiniGUI之前,開發人員通常先在PC機上安裝MiniGUI,然后使用PC機來編寫MiniGUI應用程序,調試運行成功后再將其移植到嵌入式產品上運行。我們根據這種編程模式利用MiniGUI開發了一個地理信息系統。該系統能完成電子地圖的顯示、放大、縮小、漫游等基本功能,為提高系統性能,系統采用了以下處理技術。
4.1 系統數據組織形式
為了使系統取得合理的響應時間,空間數據應根據應用目的、數據特點進行合理組織。由于嵌入式設備任意時刻屏幕顯示的圖形數據只是讀入數據的一部分,因此適當減少非屏幕顯示區域的數據,并不影響屏幕圖形數據的顯示。為此,系統將數據分為若干個數據卷,每個數據卷又包含多個數據集,-個數據集就是某個比例尺的地圖數據。一個數據集又分成若干個圖幅,一個圖幅又按矩形分塊方式劃分成若干個邏輯數據塊。在實際應用中,按照每一點的坐標確定其所在的塊。讀取數據時,只讀該點所在的數據塊,從而縮小了讀取的數據量,加快了顯示和分析的速度。
評論