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

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwgxyf.html