嵌入式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 系统数据组织形式
为了使系统取得合理的响应时间,空间数据应根据应用目的、数据特点进行合理组织。由于嵌入式设备任意时刻屏幕显示的图形数据只是读入数据的一部分,因此适当减少非屏幕显示区域的数据,并不影响屏幕图形数据的显示。为此,系统将数据分为若干个数据卷,每个数据卷又包含多个数据集,-个数据集就是某个比例尺的地图数据。一个数据集又分成若干个图幅,一个图幅又按矩形分块方式划分成若干个逻辑数据块。在实际应用中,按照每一点的坐标确定其所在的块。读取数据时,只读该点所在的数据块,从而缩小了读取的数据量,加快了显示和分析的速度。
评论