微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 移植ucGUI到s3c2440

移植ucGUI到s3c2440

时间:11-10 来源:互联网 点击:
说明:此文档,可能遗漏一些修改过的地方,根据编译情况,自行修改。

会在以后的完善过程中更新文档。

1、在http://www.ucgui.com/zuoping.asp下载uc/GUI 3.24版源码

2、参考《基于MDK+jlink平台s3c2440裸机程序》建立工程S3C2440-ucGUI
直接用友善之臂裸机下的s3c2440 LCD底层驱动,在MDK环境调通LCD驱动。

3、复制源码到工程目录下
A.复制Config和gui目录到工程目录下。
B.复制Sample目录下的GUI_X目录到工程目录下,要用到GUI_X.c

4、添加源代码到工程中。
A.在Project Workspace下"New Group"建立以下组:
Config GUI-Core GUI-ConvertColor
GUI-ConvertMono GUI-LCDDriver GUI-Font GUI_X
B.把Config GUI-Core GUI-ConvertColor GUI-ConvertMono GUI-Font
相应的文件夹下的全部文件添加进相应的组下,
把GUI-LCDDriver下的LCDWin.c和GUI_X下的GUI_X.c添加进相应的组下。

5、修改配置文件
A.LCDConf.h
#define LCD_XSIZE (320)
#define LCD_YSIZE (240)

#define LCD_BITSPERPIXEL (16)
#define LCD_CONTROLLER 1375
B.GUIConf.h
#define GUI_OS (0)
#define GUI_SUPPORT_TOUCH (0)
#define GUI_SUPPORT_UNICODE (1)

#define GUI_DEFAULT_FONT &GUI_Font6x8
#define GUI_ALLOC_SIZE 12500

#define GUI_WINSUPPORT 0
#define GUI_SUPPORT_MEMDEV 0
#define GUI_SUPPORT_AA 0

6、修改.c文件
A.在GUI_X.c末尾添加:
void GUI_X_Warn(const char *s){}
void GUI_X_ErrorOut(const char *s){}
B.LCDWin.c
把以下几行注释掉:(否则,编译不了这个C文件)
//??#if defined(WIN32) && !defined(LCD_SIMCONTROLLER)

//??#include
//??#include "memory.h"

//#else
//#endif /* defined(WIN32) && defined(LCD_USE_WINSIM) */

在#include ..之后,添加以下代码:(前三个函数还没写好,目前只是为了编译通过)

int LCDSIM_GetPixelIndex(int x, int y){return 0;}
void LCDSIM_SetLUTEntry(U8 Pos, LCD_COLOR color){}
int LCDSIM_GetPixelColor(int x, int y){return 0;}
void LCDSIM_SetPixelIndex(int x, int y, int Index)
{
PutPixel(x, y, Index); /* 这个函数是底层控制LCD在指定点画点的函数 */
}

7、ucGUI的头文件路径:
Config
GUI/Core
GUI/Widget (如果使用到视窗控件库)
GUI/WM (如果使用视窗管理器)
将目前使用到的前两个包含路径添加进工程:
"Option for Target Target 1 -> "C/C++" -> "Include Paths"

8、测试程序:
在初始完LCD硬件的后面,初始化GUI
Lcd_Init();
Lcd_PowerEnable(0, 1);
Lcd_EnvidOnOff(1);//turn on vedio

Lcd_ClearScr( (0x00<11) | (0x00<5) | (0x00) );

GUI_Init();
GUI_DispString("Hello world!");

更新中............

主要步骤总结:一、调通LCD硬件的底层驱动。
二、将ucGUI源代码加入工程,想办法,通过构造空接口函数编译通过。
三、修改接口函数,让ucGUI能通过调用底层接口,控制LCD。
四、逐步添加功能,如抗锯齿,窗口,触摸屏

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top