嵌入式图形用户界面在S3C44B0X上的移植
/* 关LCD显示 */
for(i=0; i320*240; i++)
/* 初始化显存 */
*(pLCDBuffer256+i) = 0x0;
rPDATD = 0xff;;
/* PDATD[7 :0]: 此处初始化为0xff */
rPCOND = 0xaaaa;
/* PCOND[15:0]: 配置为功能端 */
rPUPD = 0x00;
/* PUPD [7 :0]: 允许相应位的上拉电阻(0=允许, 1=禁止) */
rLCDCON1 = (0)|(DISMODE5)|(WDLY8)|(WLH10)|(CLKVAL12);
/* disable,8B_SNGL_SCAN,WDLY=16clk,WLH=16clk, CLKVAL=10*/
rLCDCON2 = (LINEVAL)|(HOZVAL10)|(LINEBLANK21);
/* 彩色模式, LCDBANK=0xc000000, LCDBASEU=0x0 */
rLCDSADDR1= (MODESEL27) | (((U32)pLCDBuffer256>>22)21) |
M5D((U32)pLCDBuffer256>>1);
rLCDSADDR2= M5D(((U32)pLCDBuffer256+(LCDWIDTH*LCDHEIGHT))>>1) |
(MVAL21);
rLCDSADDR3= PAGEWIDTH | (OFFSIZE9);
rREDLUT = 0xfdb97531;
/* 设置红绿蓝三色的颜色值*/
rGREENLUT = 0xfdb97531;
rBLUELUT = 0xfb73;
rDITHMODE = 0x0;
rDP1_2 = 0xa5a5;
rDP4_7 = 0xba5da65;
rDP3_5 = 0xa5a5f;
rDP2_3 = 0xd6b;
rDP5_7 = 0xeb7b5ed;
rDP3_4 = 0x7dbe;
rDP4_5 = 0x7ebdf;
rDP6_7 = 0x7fdfbfe;
/* enable,8B_SNGL_SCAN,WDLY=16clk,WLH=16clk, CLKVAL=10*/
rLCDCON1 = (1)|(DISMODE5)|(WDLY8)|(WLH10)|(CLKVAL12);
Delay(5000);
LCD_BkLight(TRUE);
/* 开背光 */
LCD_DisplayOpen(TRUE);
/* 打开LCD显示 */
}
完成如上LCD驱动以后, 再设置相应的中断服务子程序(IS), μC/GU I就可以稳定地运行在μC/OS-II和目标平台之上了。
3.4 μC/GUI配置文件参数的修改
主要是LCDConf.h配置文件的修改,如果LCD选用320×240彩色,就要作如下修改LCDConf.h的内容:
/*LCDConf.h*/
#ifndef LCDCONF_H
#define LCDCONF_H
#define LCD_XSIZE (320)
/* LCD水平分辨率 */
#define LCD_YSIZE (240)
/* LCD竖直分辨率 */
#define LCD_BITSPERPIXEL (8)
#endif
另外,还涉及到LCD寄存器常量的设置等这里不一一详述。
到这里μc/GUI的移植基本完成。本文只介绍了μc/GUI结合LCD在基于S3C44B0X的μC/OS-II上的移植。如果涉及到输入设备键盘、鼠标以及触摸屏的移植还要编写相应的驱动程序和其相关参数的修改。
4 结束语
本文详细介绍了嵌入式图形用户界面在基于μC/OS-II目标平台上的移植过程,实际表明在具有图形界面的嵌入式系统的开发中,采用基于μC/OS-II的图形系统μc/GUI,移植简便、使用方便灵活,目前基于 μC/OS-II的μc/GUI系统已成功移植到了系统效率测试仪上,系统的电能参数(电流、电压、功率)可以实时采集和实时波形显示;参数设置以菜单、编辑框的形式实现,界面的切换以窗口的形式实现。充分利用了μc/GUI强大的图形功能,使人机界面更加丰富、友好。实践表明系统具有良好的实时性和稳定性。
评论