蛋卷鞋官网:移植ucGUI到s3c2440

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 16:25:55

移植ucGUI到s3c2440



说明:此文档,可能遗漏一些修改过的地方,根据编译情况,自行修改。
      会在以后的完善过程中更新文档。

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。
              四、逐步添加功能,如抗锯齿,窗口,触摸屏。