ucgui 移植

来源:互联网 发布:java sha1 编辑:程序博客网 时间:2024/04/30 11:01

Uc/gui的移植似乎是很简单:简单配置一下,添加几个底层lcd驱动控制函数,网上的源码拷过来,编译,调试下就ok!

       要深入,关键还得了解lcd控制器的控制原理和lcd屏的参数特性:

     1. 查找表的设置

           针对s3c2410上来说:是用于设置16级灰度中的哪几级被选中,其中r:8,g:8,b:4,

     2. 临时调色板

          使能它可以让用户用一个单一的颜色(调色板值)来填充帧缓存器

     2. 缓存的设置

            unsigned short  (*frameBuffer16BitTft800X600)[800];       

                                                                                   //16bpp  开辟与每一行对应的数组指针,

       在这里,一般缓存可以通过动态内存分配,也可以使用一个固定的静态的内存空间,我在这里使用的是sdram里面的最末尾的4M空间。当然要保证程序运行过程中它不会被覆盖掉!

 

 另外说下lcd驱动实现的几个驱动接口函数:

 1,  int LCD_L0_Init (void)   //lcd控制器初始化函数,io引脚,寄存器,帧缓存的设置

 2,  void LCD_L0_On(void)   //开启LCD

 3,  void   LCD_L0_FillRect(int x0, int y0, int x1, int y1)   

 4,  void   LCD_L0_DrawHLine        (int x0, int y,int x1)

 5,  void  LCD_L0_DrawVLine(int x, int y0,  int y1)

 6,  void LCD_L0_DrawBitmap (int x0, int y0, int xsize, int ysize,
                             int BitsPerPixel, int BytesPerLine,
                             const U8* pData, int Diff, const LCD_PIXELINDEX* pTrans)
 7,  void LCD_L0_XorPixel(int x, int y)

 8,  void LCD_L0_SetLUTEntry  (U8 Pos, LCD_COLOR color)

 9,  void LCD_L0_SetOrg(int x, int y)

 另外还可以实现下DMA M2M传输控制,这个在进行MEMDEV拷屏时可以提高下刷新速度的!

 

 移植ok,以后就是针对gui的不同功能模块进行测试学习了,我的计划是从底层往上层走,这样理解学习起来会更透彻些!

      当然起始还有 mouse,touch_panel,keyboard驱动的整合!一步一步来!

原创粉丝点击