Welcome 微信登录

首页 / 操作系统 / 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编译后的程序便可在目标系统上运行。