建立基于ARM-uClinux的MiniGUI开发环境

2014-11-24 10:46:40 ? 作者: ? 浏览: 0

即交叉编译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.H


B) 在Makefile.am里的LIBNATIVE_LA_SOURCES变量所在行末尾添加LCDDRIVE.C LCDDRIVE.H COMMLCD.C LPC2294.H


C) 修改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.H


ADS7843.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.H


B) 配置Makefile.am,新增变量COMMINPUT_SRCS= ADS7843.C ADS7843.H comm._drive.c comminput.c comminput.h CONFIG.H I2C.C I2C.H LPC2294.H


C) 在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


编译后的程序便可在目标系统上运行。


-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: