当前位置:首页 > 单片机 > 单片机
[导读]PC主机:Ubuntu 10.4 和redhat 9.0目标板:TQ2440开发板 Linux内核:2.6.30屏幕型号:WXCAT35-TG3#001F 分辨率: 320X240本文将介绍如何移植LCD设备。在移植前,先配置下内核,将LCD设备编译进内核。1.移植移植LCD设

PC主机:Ubuntu 10.4 和redhat 9.0

目标板:TQ2440开发板 Linux内核:2.6.30

屏幕型号:WXCAT35-TG3#001F 分辨率: 320X240


本文将介绍如何移植LCD设备。

在移植前,先配置下内核,将LCD设备编译进内核。


1.移植

移植LCD设置只须修改位于arch/arm/mach-s3c2440/mach-smdk2440.c中的两个结构体的数据。

1.1 s3c2410fb_display结构

修改后的内容如下:



/*LCDdriverinfo*/

staticstructs3c2410fb_displaysmdk2440_lcd_cfg__initdata={

.lcdcon5=S3C2410_LCDCON5_FRM565|

S3C2410_LCDCON5_INVVLINE|

S3C2410_LCDCON5_INVVFRAME|

S3C2410_LCDCON5_PWREN|

S3C2410_LCDCON5_HWSWP,

.type=S3C2410_LCDCON1_TFT,

.width=320,//240,

.height=240,//320,

.pixclock=156250,//166667,/*HCLK60MHz,divisor10*/

.xres=320,//240,

.yres=240,//320,

.bpp=16,

.left_margin=20,

.right_margin=38,//8,

.hsync_len=30,//4,

.upper_margin=15,//8,

.lower_margin=12,//7,

.vsync_len=3,//4,

};


上面的参数是如何修改的呢?我们来看下。


type表示显示模式,这里为TFT模式。

width和height表示屏幕的分辨率,我的分辨率是320X240。

xres和yres分别等于width和height。

bpp表示所每个像素点位数,这里使用16位。

left_margin,right_margin,hsync_len,upper_margin,lower_margin,vsync_len这六个参数的值由LCD的手册给出。下图为LCD中的参数:


在这里,我给出上面6个参数和LCD手册中数据的对应关系:


.left_margin = Hsync front porch = 20

.right_margin = Hsync back porch = 38

.hsync_len = Hsync pulse width = 30

.upper_margin = Vsyncbackporch = 15

.lower_margin = Vsync front porch = 12

.vsync_len = Vsync pulse width = 3


pixclock的值是用来计算CLKVAL的。在S3C2440的datasheet中,CLKVAL的计算公式为:

CLKVAL = HCLK / VCLK / 2 -1,而VCLK即为上面图中的Dclk,值为6.4MHz。


/*s3c2410fb_activate_var

*

*activate(set)thecontrollerfromthegivenframebuffer

*information

*/

staticvoids3c2410fb_activate_var(structfb_info*info)

{

structs3c2410fb_info*fbi=info->par;

void__iomem*regs=fbi->io;

inttype=fbi->regs.lcdcon1&S3C2410_LCDCON1_TFT;/*regs.lcdcon1在s3c2410fb_check_var设置*/

structfb_var_screeninfo*var=&info->var;

intclkdiv=s3c2410fb_calc_pixclk(fbi,var->pixclock)/2;

dprintk("%s:var->xres=%dn",__func__,var->xres);

dprintk("%s:var->yres=%dn",__func__,var->yres);

dprintk("%s:var->bpp=%dn",__func__,var->bits_per_pixel);

if(type==S3C2410_LCDCON1_TFT){

s3c2410fb_calculate_tft_lcd_regs(info,&fbi->regs);/*根据var,计算出控制寄存器需要设置的值*/

--clkdiv;

if(clkdiv<0)

clkdiv=0;

}else{

s3c2410fb_calculate_stn_lcd_regs(info,&fbi->regs);

if(clkdiv<2)

clkdiv=2;

}

fbi->regs.lcdcon1|=S3C2410_LCDCON1_CLKVAL(clkdiv);/*设置CLKVAL*/

/*writenewregisters*/

dprintk("newregisterset:n");

dprintk("lcdcon[1]=0x%08lxn",fbi->regs.lcdcon1);

dprintk("lcdcon[2]=0x%08lxn",fbi->regs.lcdcon2);

dprintk("lcdcon[3]=0x%08lxn",fbi->regs.lcdcon3);

dprintk("lcdcon[4]=0x%08lxn",fbi->regs.lcdcon4);

dprintk("lcdcon[5]=0x%08lxn",fbi->regs.lcdcon5);

/*把计算好的值填入LCD控制器中*/

writel(fbi->regs.lcdcon1&~S3C2410_LCDCON1_ENVID,

regs+S3C2410_LCDCON1);/*仍然禁止LCD*/

writel(fbi->regs.lcdcon2,regs+S3C2410_LCDCON2);

writel(fbi->regs.lcdcon3,regs+S3C2410_LCDCON3);

writel(fbi->regs.lcdcon4,regs+S3C2410_LCDCON4);

writel(fbi->regs.lcdcon5,regs+S3C2410_LCDCON5);

/*setlcdaddresspointers*/

s3c2410fb_set_lcdaddr(info);/*设置LCD帧缓冲起始地址*/

fbi->regs.lcdcon1|=S3C2410_LCDCON1_ENVID,

writel(fbi->regs.lcdcon1,regs+S3C2410_LCDCON1);/*使能LCD*/

}

staticunsignedints3c2410fb_calc_pixclk(structs3c2410fb_info*fbi,

unsignedlongpixclk)

{

unsignedlongclk=clk_get_rate(fbi->clk);/*获取当前时钟频率(Hz)*/

unsignedlonglongdiv;

/*pixclkisinpicoseconds,ourclockisinHz

*

*Hz->picosecondsis/10^-12

*/

div = (unsigned long long)clk * pixclk;

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭