基于zigbee的无线电子点菜系统 第7页a) 确保安装了交叉编译工具
在交叉编译之前首先要确保linux系统中已经安装有交叉编译工具,在这里使用的是博创公司提供的arm-linux-gcc。arm-linux-gcc 安装目录是/opt/arm-linux.可以在终 端用命令vi /root/.bash_profile打开此文件,然后在PATH=$PATH=$PATH:$HOME:/bin/opt/arm-linux配置一下arm-linux-gcc的路径,保存退出,然后终端输入命令:source /root/.bash_profile,则arm-linux-gcc 会自动给搜索到。
b) 交叉编译MiniGui的的库文件
这是最重要的一步,因为这会影响到交叉编译minigui的源程序所生成的可执行文件是否正常在开发板子上运行。在网上有很多资料都介绍了各种不同交叉编译MiniGui库文件的方法,在这里总结出比较简单而有效的交叉编译mnigui库文件的方法:
进入MiniGui库文件的安装目录,在终端输入命令:CC=arm- linux-gcc(CC 用来指定所使用的编译器,这里使用的是arn-linux-gcc),接着在终端输入./configure --target=arm-linux --prefix=/opt/arm-linux --build= i686pc-linux-gnu --host=arm-linux --disable-lite --disable-jpgsupport --disable-pngsupoort 编译命令参数说明:
ⅰ) --target 选项用于指定目标平台。-
ⅱ) -prefix选项用于指定MiniGUI函数库的安装路径,在这里minigui的库文件和头文件都分别安装在/opt/arm-linux/目录下的lib和include下,这样用arm-linux-gcc交叉编译minigui的程序时就会自动去该目录底下去搜索库文件和头文件。
ⅲ) --host选项与--arget一样用于指定目标平台。
ⅳ) --build选项用来指明宿主机的类型,这里使用i686-pc-linux-gnu 即可;--disable-lite 用来指定生成基于线程的MiniGUIThreads版本而不生成基于进程的MiniGUI-Lite 版本。
ⅴ) --disable-jpgsupport --disable-pngsupoort 这是在编译minigui库文件时先不用它去编译支持图片的库,因为arn-linux-gcc找不到这些库,如果不加上这两个选项在make 的时候会出错,minigui的jpeg ,png库要单独编译进arm-linux-gcc的库文件里面,后面有介绍。
在configure成功后会生成makefile文件,接下来就在终端输入make命令来编译(这是一过程需约几分钟时间),如果make 成功就可以执行make install 命令进行安装。
c) 交叉编译MiniGui的资源文件
进入minigui资源文件的安装目录,在执行make install操作之前,需要对目录中的configure.linux文件做一些修改。打开configure.linux文件,prefix选项部分的默认值为$(TOPDIR)/usr/local,需要将这里修改为prefix=$(TOPDIR)/ /opt/arm-linux-gcc,这样执行make install 操作之后,安装脚本会自动把MiniGUI资源文件安装到/opt/opt/arm-linux/lib/minigui/res/目录下.
d) 交叉编译minigui的jpeg ,png 库文件
首先编译jpeg,进入该安装目录,然后在终端运行命令:. CC=arm-linux-gcc && ./configure --target=arm-linux --prefix=/opt/arm-linux --build= i686pc-linux-gnu --host=arm-linux --disable-lite && make && make install.
e) 安装jpeg、png库
在安装完jpeg库文件后接着安装png库文件 :去到scripts 目录底下去分别复制makefile.*文件到它的上级目录(makefile).修改makefile 文件 分别是CC=arm-linux-gcc prefix=/opt/arm-linux . 在终端输入命令:make && make install
至此用arm-linux-gcc 编译minigui程序时所需要的头文件,库文件以及资源文件都安装完成,如果想测试是否安装成功可以去到找一minigui的程序例子来编译一下(这里以helloworld.c为例子)arm-linux-gcc helloworld.c –o helloworld –lminigui –ljpeg –lpng –lz –lpthread –lm –I/opt/arm-linux-lib/include –L /opt/arm-linux/lib(说明:这里一定要加上-lm,这是编译minigui要用到是数学库,否则会出错!–I/opt/arm-linux-lib/include –L /opt/arm-linux/lib 是编译时所要连接到的库文件和头文件)如果编译通过会在当前目录底下生成一个可执行的文件helloworld,这是一个arm体系结构的可执行文件,不能直接在PC上执行,而是运行在arm体系结构的开发板子上。
2 . MiniGui在PXA270运行环境配置实现
经过交叉编译出来的MiniGui的程序是不能直接在PXA270,因为MiniGui在运行时会先寻找它的配置文件MiniGui.cfg,然后根据该配置文件进行初始化MiniGui运行时的环境。如果初始化成功则能在开发板上运行经过交叉编译后生成的MiniGui的可执行程序,否则不能运行交叉编译后生成的MiniGui的可执行程序并会提示MiniGui.cfg文件初始化失败。在编译MiniGui源程序时有两种编译方式,一种是动态编译,另一种是静态编译。如果在编译的时候使用的静态编译,那么在板子上运行可执行文件时就不需要MiniGui的库文件,否则就要把上述中经过交叉编译生成的MiniGui的库文件移植到开发板对应的位置,一般是/usr/local/lib。
在PXA270的开发板上/usr/local/etc/MiniGui.cfg文件是这样配置的:
[system]
#GAL engine
Gal_engine=fbcon(PXA270已经移植好FrameBuffer设备,所以这里直接引用)
#IAL engine
Ial_engine=dummy (这是minigui的输入引擎的类型,在这里引用minigui自带的”哑”输入引擎,这是一个不需要任何输入设备的虚输入引擎,因为在这里只是让编译后的可执行文件在PXA270显示一下图像效果)
mdev=/dev/mouse
mtype=IMPS2
[fbcon]
Defaultmode=640X480-16bpp (这是开发板PXA270像素的分辨率)
修改完Mingui.cfg的配置文件后还不能在PXA270运行 Minigui的可执行程序。因为Minigui运行时要去默认的路径(/usr/local/lib/minigui)找资源文件,所以要把在PC机上的/opt/arm-linux/lib(/opt/arm-linux是MiniGui安装路径)下的文件夹Minigui拷贝到开发板的/usr/local/lib。(注意一点是,如果把minigui放在开发板的其他位置,一定要修改Minigui.cfg配置文件中相应的路径指向,否则运行出错)。经过以上的配置后,可以再PXA270上运行一个用arm-linux-gcc编译minigui生成的可执行程序。不过这只能在PXA270的液晶屏上显示一下,鼠标和键盘暂时无法使用,因为minigui的输入选了dummy,至于minigui如何实现输入引擎,如何在PXA270开发板上通过点击触摸屏来模拟鼠标的操作,在后续PXA270触摸屏章节介绍将详细介绍。
3. 无线点菜终端界面实现
在移植完成MiniGui的工作后,接下来进行的是用minigui来编写一个PDA点菜界面,MiiniGui主界面的编写参照了MiniGui里的listbox.c以及menu.c例子,主界面如5-1图
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>
基于zigbee的无线电子点菜系统 第7页下载如图片无法显示或论文不完整,请联系qq752018766