Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1069889
  • 博文数量: 135
  • 博客积分: 10182
  • 博客等级: 上将
  • 技术积分: 1565
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-07 16:05
文章分类

全部博文(135)

文章存档

2011年(5)

2010年(20)

2009年(3)

2008年(16)

2007年(91)

分类: LINUX

2007-04-24 19:46:42

                   

一、移植LCD驱动程序

                              

  通过上面的工作,在串口中已经看到了linux2.6.14的启动信息,但是在LCD上没有任何显示,这是因为我们还没有对LCD进行初始化,linux2.6.14已经包含了lcd的驱动程序,驱动程于 /linux2.6.14/drivers/video/目录下,文件名是s3c2410fb.c,头文件是s3c2410fb.h.。我们在这里可以不研究这个文件。只要我们对lcd进行以下初始化就可以了。我们打开/linux-2.6.14/arch/arm/mach-s3c2410/mach-smdk2410.c,首先在这个文件里增加包含文件(见贴图)。然后增加LCD初始化的代码,

 static struct s3c2410fb_mach_info gggggg_lcdcfg

__initdata = {

               .fixed_syncs=       0,

               .regs={

                      .lcdcon1=

S3C2410_LCDCON1_TFT16BPP | \

                                                S3C2410_LCDCON1_TFT | \

                                                S3C2410_LCDCON1_CLKVAL(6),

                       

                     .lcdcon2=  

S3C2410_LCDCON2_VBPD(2) | \

                                                S3C2410_LCDCON2_LINEVAL(319) | \

                                                S3C2410_LCDCON2_VFPD(0) | \

                                                S3C2410_LCDCON2_VSPW(4),

                       

                      .lcdcon3=  

S3C2410_LCDCON3_HBPD(47) | \

                                                S3C2410_LCDCON3_HOZVAL(239) | \

                                                S3C2410_LCDCON3_HFPD(15),

                       

                       .lcdcon4=  

S3C2410_LCDCON4_MVAL(1) | \

                                                S3C2410_LCDCON4_HSPW(31),

                       

                        .lcdcon5=  

S3C2410_LCDCON5_FRM565 | \

                                                S3C2410_LCDCON5_INVVLINE | \

                                                S3C2410_LCDCON5_HWSWP,

                        },

                .lpcsel=    0x0,

                .gpccon=    0xaaaaaaaa,

                .gpccon_mask=   0xffffffff,

                .gpcup=     0xffffffff,

                .gpcup_mask=    0xffffffff,

                .gpdcon=    0xaaaaaaaa,

                .gpdcon_mask=   0x0,

                .gpdup=     0xffffffff,

                .gpdup_mask=    0xffffffff,

                .width=     240,

                .height=    320,

                .xres=      {240,240,240},

                .yres=      {320,320,320},

                .bpp=       {16,16,16},

                            };

   static void __init sdmk2410_init(void)
{

                                set_s3c2410fb_info(&hfrk_lcdcfg);

}

在系统初始化中增加对lcd的初始化。
 MACHINE_START(SMDK2410, "SMDK2410")

/* @TODO:request a new identifier and switch

* to SMDK2410 */

/* Maintainer: Jonas Dietsche */

……

  .map_io     = smdk2410_map_io,

  .init_irq   = smdk2410_init_irq,

  .init_machine   = sdmk2410_init, /*这一句是新增加的*/

  .timer      = &s3c24xx_timer,

  MACHINE_END

                             

现在我们重新保存这个文件,现在需要重新进入配置菜单,检查一下LCD的相关选项是否选上,[Device

                        Drivers->Graphics

                        support->]这个配置菜单下面是相关LCD的配置。回到根目录下,输入make编译内核,重现烧写内核到开发板,再次启动 linxu2.6.14以后就可以在lcd上看到一个小的企鹅。我们的lcd驱动已经移植完成了。不详之处请参阅贴图。

阅读(3535) | 评论(5) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-08-23 21:51:43

你好!我在linux jx2410开发板上移植madplay播放音乐,用的是创维特公司的实验设备试验箱,系统自带的一首 mp3个可以正确播放,我另找了一首歌,包括格式,频率,码率等都和自带的那首歌一样,但必须改变授权才能播放,但歌曲的速度减慢了,还有些失真,这是什么问题?该怎样解决?

chinaunix网友2008-01-05 18:02:00

你的文件贴图怎么看不见?我的现在是找不到那个函数set_s3c2410fb_info 应该是要头文件,请指示