LCD驱动的移植

 linux-2.6.22.6内核移植—LCD驱动的添加

【实验目的】

       在嵌入式系统中经常使用LCD进行交互,这里我们通过修改平台代码使我们的内核支持LCD,完成相应功能!

【实验环境】

1、  Ubuntu 10.10发行版

2、  u-boot-2010.03

3、  FS2410平台

4、  交叉编译器 arm-linux-gnu-gcc (3.4.5)

【实验步骤】

       s3c2410 LCD的驱动内核中已经存在,我们需要完成的工作就只使这个驱动能够正常的工作,这需要我们修改平台代码

1、 头文件的添加

arch/arm/mach-s3c2410/mach-smdk2410.c中添加头文件

#include <asm/arch/fb.h>

2、 添加相应LCD相关平台信息

在arch/arm/mach-s3c2410/mach-smdk2410.c中添加如下内容:

  static struct s3c2410fb_mach_info smdk2410_lcdcfg __initdata={
   .fixed_syncs=0,
   .regs={
    .lcdcon1=(7<<8)|(0<<7)|(3<<5)|(12<<1),
    .lcdcon2=(14<<24)|(239<<14)|(11<<6)|2,
    .lcdcon3=(37<<19)|(319<<8)|19,
    .lcdcon4=(13<<8)|29,
    .lcdcon5=(1<<11)|(1<<10)|(1<<9)|(1<<8)|(0<<7)|(0<<6)|(1<<5)|(1<<3)|(0<<1)|(1),
   },
   .width=320,
   .height=240,
   .type=S3C2410_LCDCON1_TFT,
   .lpcsel=((0xCE6)&~7)|1<<4,
   .width=320,
   .height=240,
   .xres={
    .min=320,
    .max=320,
    .defval=320,
   },
   .yres={
    .min=240,
    .max=240,
    .defval=240,
   },
   .bpp={
    .min=16,
    .max=16,
    .defval=16,
   },
  };

再函数smdk2410_init中添加如下内容

 s3c24xx_fb_set_platdata(&smdk2410_lcdcfg);

 

3、 配置内核

Device Drivers  --->

        Graphics support  --->

               <*> Support for frame buffer devices  --->
                       <*> Support for frame buffer devices  
                         [*]   Enable firmware EDID 
                         [*]   Enable Video Mode Handling Helpers   

                      <*>   S3C2410 LCD framebuffer support
                        <*> Virtual Frame Buffer support 
                     Console display driver support  --->  
                             <*> Framebuffer Console support 

         [*] Bootup logo  --->
                [*]   Standard 224-color Linux logo 

这些选项在这个内核有些已经选上了,这里列出来让大家知道添加LCD驱动涉及到的内容!

4、 编译内核

$ make  uImage

5、 拷贝内核镜像到tftpboot下

$ cp arch/arm/boot/zImge  /tftpboot

6、 插上LCD,启动目标系统,设置uboot参数

(X,Y分别用开发主机IP和开发板IP替换)
FS2410 #
setenv serverip 192.168.7.X
FS2410 # setenv ipaddr 192.168.7.Y
FS2410# setenv gatewayip 192.168.7.1 
FS2410 # setenv bootcmd tftp 30008000 zImage \; go 30008000
FS2410 #  setenv bootargs console=ttySAC0,115200 init=/linuxrc ethaddr=08:00:3e:26:0a:XX root=/dev/nfs rw nfsroot=192.168.7.X:/opt/filesystem ip=192.168.7.Y:192.168.7.X:192.168.7.1:255.255.255.0:farsight_XX:eth0:off
(X,Y分别用开发主机IP和开发板IP替换,这一行参数需在一行)
FS2410 # saveenv

启动系统后发现LCD上有一个可爱的企鹅LOGO,这就是我们Linux的吉祥物


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值