• Linux 驱动—LCD学习


    始发:2014-05-04 13:32:49
    版本信息:
    
    Linux :2.6.31
    U-Boot:u-boot-2010.06
    BusyBox: BusyBox 1.15.2
    交叉编译器:arm-linux- v4.3.3
    

    这篇实践有两部分:一是驱动程序移植,二是制作自己的开机LOGO。

    一、驱动移植

    1、设置时钟频率,不采用源码中复杂的计算方式,直接修改。

    修改 drivers/video/s3c2410fb.c 中的函数,如下红色粗体:

    在 struct s3c2410fb_display 结构体中并没有 setclkval 成员,所以需要添加该成员:

    arch/arm/mach-s3c2410/include/mach/fb.h

    2、修改LCD的参数,这需要对照所用LCD的datasheet。

    arch/arm/mach-s3c2440/mach-smdk2440.c

    重要参数说明:

    (1)pixclock — 像素时钟,即画1个点需要的时间值,单位皮秒(ps)。比如,如果datasheet指定时钟25MHz,那么:

    1000000/25 = 40000(ps)

    (2)setclkval — 是LCDCON1寄存器CLKVAL值,由它决定VCLK(Pixel clock signal)的值,如下图:

     

    参数设置好后,还有一重要地方要改,就是其下面的函数:

    3、配置内核,并支持启动LOGO。

    Device Drivers: 
    	Graphics Support ---> 
    		<*>support for frame buffer devices ---> 
    			[*] Enable frameware EDID 
       			[*] Enable Vidoe Mode Handling Helpers 
    		<*> S3C24X0 LCD framebuffer support 
     	Console display driver support ---> 
    		<*> Framebuffer Console Support 
    	[*] Bootup Logo ---> 
    		<*> Standard 224-color Linux logo 
    

    4、编译并烧写内核,可以看到左上角一只企鹅,说明驱动移植正常。

    二、LOGO制作

    LOGO制作需要用到GNU开源软件GIMP(GNU Image Manipulation Program)。

    1、用光影魔术手或其他软件得到320x240尺寸的图片,复制到Linux系统,用GIMP打开:

    :若不转换成320x240大小的图片,图片体积会很大

    2、在图片编辑区右键依次选择:

    Image—>Mode—>Indexed,出现图片转换配置选项,做如下设置:

    点击Convert进行转换。

    3、得到.ppm格式的文件:

    右键依次:File—>Export,在弹出的对话框中作如下设置:

    4、把文件重命名为logo_linux_clut224.ppm,复制到drivers/video/logo文件夹,覆盖原文件。

    5、重新编译内核,烧录,启动过程中即可看到我们的LOGO图片:

  • 相关阅读:
    简单工厂
    Java鲁棒性(健壮性)
    外部类,成员内部类,局部内部类能被哪些修饰符修饰
    Java枚举类的7种常用的方法
    同步,异步,阻塞,非阻塞
    对于面向对象的基本理解
    对于数组的一点理解
    类加载机制-双亲委派机制(三)
    架构- 数据库的优化
    python调用jenkinsapi
  • 原文地址:https://www.cnblogs.com/rockyching2009/p/13467744.html
Copyright © 2020-2023  润新知