分享

移植ucGUI到s3c2440

 创科之龙 2011-02-25

移植ucGUI到s3c2440

特别说明:需要嵌入式UCOSII   ucGUI  arm和linux入门资料,项目资料,linux驱动资料可以加我QQ!!希望我的一些项目经验和资料可以带你进入嵌入式之门,在浩瀚的linux世界里找到属于你自己的舞台!!!希望大家多多支持

我的QQ:1653687969



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

1、在http://www./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 <windows.h>
      //??#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。
              四、逐步添加功能,如抗锯齿,窗口,触摸屏。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多