基于嵌入式处理器S3C44B0X的μC/GUI设计

时间:2012-03-23来源:网络

硬件平台中,S3C44B0X为显示单独分配一个专用DMA通道,这样可大大节省CPU资源,使系统速度更快。内存方面,系统分配一个规定大小的内存作为实屏显示内存,处理器按指定的刷新频率使用专用DMA通道将内存中的数据写入LCD的显示缓冲区,实现LCD的图形界面显示。

4. μC/GUI在S3C44B0X上的移植

4.1 移植步骤

一般的移植过程可分为以下步骤进行:

(1)定制自己需要的μC/GUI;(2)指定硬件设备的地址,编写接口驱动代码;(3)编译、链接、调试子程序;(4)测试、修改、增加自己需要的功能;(5)编写自己的应用程序;限于篇幅限制,本文只给出移植的核心步骤:接口驱动程序代码的编写。

4.2 μC/GUI与输入输出设备驱动接口模块设计

本文以LCD驱动接口模块设计为例介绍在μC/GUI移植过程中LCD驱动程序的编写,以最终实现图形显示。

驱动程序主要是LCD初始化,这个函数完成对44B0X LCD控制器的配置、显存的映射等。本文以笔者使用320×240彩色LCD为例给出初始化程序的编写。具体如下:

void LCD_Init(void)

{int i;

LCD_DisplayOpen(FALSE);// /* 关LCD显示 */

for(i=0; i320*240; i++) /* 初始化显存 */

*(pLCDBuffer256+i) = 0x0;

rPDATD = 0xff;;

rPCOND = 0xaaaa; /* PDATD[7 :0]: 此处初始化为0xff */

rPUPD = 0x00; /* PCOND[15:0]: 配置为功能端 */

/* 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; /* 使能8位单扫描/

rLCDCON1 = (1)|(DISMODE5)|(WDLY8)|(WLH10)|(CLKVAL12);

Delay(5000);

LCD_BkLight(TRUE); /* 开背光 */
LCD_DisplayOpen(TRUE); /* 打开LCD显示 */}

完成如上LCD驱动以后, 再设置相应的中断服务子程序(IS), μC/GUI即可以稳定地运行在S3C44B0X硬件平台上。

1 2 3

关键词: 嵌入式微处理器 S3C44B0X μCGUI

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版