首页 / 操作系统 / Linux / 建立基于ARM-uClinux的MiniGUI开发环境
即交叉编译MiniGUI,使经过arm-elf-gcc编译后的MiniGUI程序能运行在ARM-uClinux平台上。准备的软件包:libminigui-str-1.6.2.tar.gz minigui-res-str-1.6.tar.gz 交叉编译过程如下:1)解压minigui-res-str-1.6.tar.gz,设置config.linux文件,将编译器设置为arm-elf-gcc。并将安装路径设置为arm-elf-gcc所在的目录。2)解压libminigui-str-1.6.2.tar.gz 配置编译环境如下:CC=arm-elf-gcc /CFLAGS="-D__linux__ -I/root/minigui_lib/include -fno-builtin -nostartfiles" /LDFLAGS="-Wall -elf2flt -static -L/root/minigui_lib/lib -lc" /./configure / --prefix=/opt/uClinux/arm-elf / --build=i386-linux / --host=i686-pc-linux-gnu / --target=arm-elf / --disable-shared / --enable-static / --with-osname=uclinux / --disable-lite / --enable-standalone / --disable-micemoveable / --disable-cursor / --disable-newgal / --enable-nativegal / --disable-galfbcon / --enable-fblin8 / --disable-textmode / --enable-dummyial / --enable-autoial / --enable-nativeial / --disable-qvfbial / --disable-latin9support / --disable-big5support / --disable-savebitmap / --disable-jpgsupport / --disable-pngsupport / --disable-imegb2312 / --disable-aboutdlg / --disable-savescreen / --enable-incoreres / --enable-mousecalibrate / --enable-fontsserif / --enable-fontcourier / --enable-fontsymbol / --enable-fontvgas / --enable-vbfsupport / --enable-rbfsupport / --enable-rbf16 /--enable-gifsupport 3) GAL移植需准备的程序:COMMLCD.C,LCDDRIVE.C,LCDDRIVE.H,LPC2294.H下面对这些程序进行分析。LPC2294.H定义ARM的各种寄存器,I/O口,中断口,串行口等的地址。LCDDRIVE.H和LCDDRIVE.C定义显示器驱动。COMMLCD.C图形引擎的定义。具体步骤如下:A) 在libminigui-str-1.6.2/src/gal/native下建立COMMLCD.C,LCDDRIVE.C,LCDDRIVE.H,LPC2294.HB) 在Makefile.am里的LIBNATIVE_LA_SOURCES变量所在行末尾添加LCDDRIVE.C LCDDRIVE.H COMMLCD.C LPC2294.HC) 修改libminigui-str-1.6.2/src/gal/gal.c,在GFX结构添加{“commlcd”,InitNative,TermNative}。D) 修改libminigui-str-1.6.2/src/gal/native.c,将#ifdef_Native_GAL_COMMLCD else if(strcmp(gfx->id,”commlcd”)==0)psd=commlcd.Open(&commlcd);#endif改为//#ifdef_Native_GAL_COMMLCD else if(strcmp(gfx->id,”commlcd”)==0)psd=commlcd.Open(&commlcd);//#endif即注销ifdef和endif 修改libminigui-str-1.6.2/src/gal/native.h,同样将extern SCREENDEVICE commlcd上下的ifdef和endif给注销掉。 4) IAL移植需要准备的程序:ADS7843.C ADS7843.H comm._drive.c comminput.c comminput.h CONFIG.H I2C.C I2C.H LPC2294.HADS7843.C和ADS7843.H是触摸屏控制电路的驱动程序。Comminput.c和comminput.h是普通输入设备(键盘,鼠标,触摸屏)驱动程序。I2C.C和I2C.H是连接键盘等输入设备的I2C总线控制程序。具体步骤如下:A) 在libminigui-str-1.6.2/src/ial下建立ADS7843.C,ADS7843.H,comm._drive.c,comminput.c,comminput.h,CONFIG.H,I2C.C,I2C.H LPC2294.HB) 配置Makefile.am,新增变量COMMINPUT_SRCS= ADS7843.C ADS7843.H comm._drive.c comminput.c comminput.h CONFIG.H I2C.C I2C.H LPC2294.HC) 在LIBIAL_LA_SOURCES变量后加入$(COMMINPUT_SRCS)。D) 修改ial.c,将#include “comminput.h” 上下的#ifdef和#endif注释掉。在INPUT结构中添加{“comm”,InitCOMMInput,TermCOMMInput}。接着编译和安装即可。安装完毕,便可交叉编译minigui源程序,如下#arm-elf-gcc –elf2flt –o helloworld helloworld.c –lminigui –lpthread编译后的程序便可在目标系统上运行。