機電之家資源網(wǎng)
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
Linux-2.6.20的LCD驅(qū)動分析(一)(轉(zhuǎn)載)
Linux-2.6.20的LCD驅(qū)動分析(一)(轉(zhuǎn)載)
 更新時間:2009-8-12 16:51:14  點擊數(shù):0
【字體: 字體顏色
http://blog.chinaunix.net/u1/49924/showart_495463.html 

一、讓LCD顯示可愛的小企鵝

還是先說說環(huán)境吧,處理器為S3C2410,linux的版本當然是2.6.20的。下面先說說怎樣讓LCD上顯示出可愛的小企鵝。最直接的步驟如下(記住不要問為什么哈~_~,一步一步跟著走就行了):

1.       添加s3c2410處理器的LCD控制寄存器的初始值,具體做法為在文件arch/arm/mach-s3c2410/mach-smdk2410.c中添加struct s3c2410fb_mach_info類型的寄存器描述訊息,如下所示:

static struct s3c2410fb_mach_info smdk2410_lcd_platdata = {

    .fixed_syncs=0,

    .type = S3C2410_LCDCON1_TFT,

    .width= 240,

    .height= 320,

    .xres = {

    .defval= 240,

        .min= 240,

        .max= 240,

    },

    .yres = {

        .defval= 320,

        .min= 320,

        .max= 320,

    },

    .bpp = {

        .defval= 16,

        .min= 16,

        .max= 16,

    },

    .regs = {

        .lcdcon1=  S3C2410_LCDCON1_TFT16BPP |        \

                            S3C2410_LCDCON1_TFT |             \

                            S3C2410_LCDCON1_CLKVAL(5) |      \

                            (0<<7),

 

        .lcdcon2=  S3C2410_LCDCON2_VBPD(2) |          \

                   S3C2410_LCDCON2_LINEVAL(320-1) |   \

                   S3C2410_LCDCON2_VFPD(2) |          \

                   S3C2410_LCDCON2_VSPW(4),

 

        .lcdcon3=  S3C2410_LCDCON3_HBPD(8) |          \

                   S3C2410_LCDCON3_HOZVAL(240-1) |    \

                   S3C2410_LCDCON3_HFPD(8),

 

        .lcdcon4=  S3C2410_LCDCON4_HSPW(6) |          \

                   S3C2410_LCDCON4_MVAL(13),

 

        .lcdcon5=  S3C2410_LCDCON5_FRM565 |

                   S3C2410_LCDCON5_HWSWP,

    },

    .gpcup= 0x0,

    .gpcup_mask= 0xFFFFFFFF,

    .gpccon= 0xaaaa56a9,

    .gpccon_mask= 0xFFFFFFFF,

 

    .gpdup= 0x0,

    .gpdup_mask= 0xFFFFFFFF,

    .gpdcon= 0xaaaaaaaa,

    .gpdcon_mask= 0xFFFFFFFF,

    .lpcsel= 0x00

};

 

2. 通過s3c24xx_fb_set_platdata函數(shù)向內(nèi)核注冊上面的信息。具體做法為:修改s3c24xx_fb_set_platdata函數(shù)(當然也可以重新起名字),修改如下:(此函數(shù)在arch/arm/mach-s3c2410/devs.c中)

 

void __init s3c24xx_fb_set_platdata(struct s3c2410fb_mach_info *pd)

{

s3c_device_lcd.dev.platform_data = pd;

}

 

然后在arch/arm/mach-s3c2410/mach-smdk2410.csmdk2410_map_io函數(shù)中調(diào)用s3c24xx_fb_set_platdata( ),具體為:

s3c24xx_fb_set_platdata(&smdk2410_lcd_platdata);

注:此處未采用內(nèi)核中提供的源函數(shù),因為系統(tǒng)會崩潰,估計是它調(diào)用kmalloc函數(shù)引起的。

 

3. make menuconfig的時候配置Linuxlogo選項,然后的時候在console選項中選上framebuffer console surpport,要不然看不到小企鵝。

上面這些步驟均來源于網(wǎng)上,感謝您們的無私貢獻!嘿嘿,到目前為止差不多也可以交差了,但我還想深入了解一下真正的驅(qū)動程序。呵呵,欲知后事如何且聽下回分解。

                                              To be continued……

                                                                                             ------ anmnmnly     

                                                                                             ------ 2008.03.13

  • 上一篇: 在嵌入式設備上運行高性能Java Jazelle&reg; DBX—— 來自ARM&reg;的Java加速技術
  • 下一篇: Linux-2.6.20的LCD驅(qū)動分析(二) (轉(zhuǎn)載)
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網(wǎng)友評論:(只顯示最新5條。)
    關于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1