<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > S5PV210(TQ210)學(xué)習筆記——LCD驅動(dòng)編寫(xiě)

S5PV210(TQ210)學(xué)習筆記——LCD驅動(dòng)編寫(xiě)

作者: 時(shí)間:2016-11-28 來(lái)源:網(wǎng)絡(luò ) 收藏
  • lcd_info->screen_size=800*480*4;
  • lcd_info->pseudo_palette=pseudo_palette;
  • lcd_info->fbops=&lcd_fbops;
  • /*配置硬件資源*/
  • /*映射內存*/
  • display_control=ioremap(0xe0107008,4);
  • gpf0con=ioremap(0xE0200120,4);
  • gpf1con=ioremap(0xE0200140,4);
  • gpf2con=ioremap(0xE0200160,4);
  • gpf3con=ioremap(0xE0200180,4);
  • gpd0con=ioremap(0xE02000A0,4);
  • gpd0dat=ioremap(0xE02000A4,4);
  • vidcon0=ioremap(0xF8000000,4);
  • vidcon1=ioremap(0xF8000004,4);
  • vidtcon0=ioremap(0xF8000010,4);
  • vidtcon1=ioremap(0xF8000014,4);
  • vidtcon2=ioremap(0xF8000018,4);
  • wincon0=ioremap(0xF8000020,4);
  • vidosd0a=ioremap(0xF8000040,4);
  • vidosd0b=ioremap(0xF8000044,4);
  • vidosd0c=ioremap(0xF8000048,4);
  • vidw00add0b0=ioremap(0xF80000A0,4);
  • vidw00add1b0=ioremap(0xF80000D0,4);
  • shodowcon=ioremap(0xF8000034,4);
  • /*配置GPIO*/
  • *gpf0con=0x22222222;
  • *gpf1con=0x22222222;
  • *gpf2con=0x22222222;
  • *gpf3con=0x22222222;
  • *gpd0con&=~0xf;
  • *gpd0con|=0x1;
  • *gpd0dat|=1<<0;
  • *display_control=2<<0;
  • /*使能時(shí)鐘*/
  • lcd_clk=clk_get(NULL,"lcd");
  • if(!lcd_clk||IS_ERR(lcd_clk)){
  • printk(KERN_INFO"failedtogetlcdclocksource");
  • }
  • clk_enable(lcd_clk);
  • /*配置LCD控制器*/
  • *vidcon0=(4<<6)|(1<<4);
  • *vidcon1=(1<<6)|(1<<5)|(1<<4);
  • *vidtcon0=(17<<16)|(26<<8)|(4<<0);
  • *vidtcon1=(40<<16)|(214<<8)|(4<<0);
  • *vidtcon2=(479<<11)|(799<<0);
  • *wincon0&=~(0xf<<2);
  • *wincon0|=(0xb<<2);
  • *vidosd0a=(0<<11)|(0<<0);
  • *vidosd0b=(799<<11)|(479<<0);
  • *vidosd0c=480*800;
  • //物理地址
  • lcd_info->screen_base=dma_alloc_writecombine(NULL,
  • lcd_info->fix.smem_len,(dma_addr_t*)&(lcd_info->fix.smem_start),GFP_KERNEL);
  • *vidw00add0b0=lcd_info->fix.smem_start;
  • *vidw00add1b0=lcd_info->fix.smem_start+lcd_info->fix.smem_len;
  • *shodowcon=0x1;
  • //開(kāi)啟狀態(tài)
  • *wincon0|=1;
  • *vidcon0|=3;
  • /*注冊fb_info*/
  • ret=register_framebuffer(lcd_info);
  • returnret;
  • }
  • staticvoidlcd_exit(void){
  • unregister_framebuffer(lcd_info);
  • dma_free_writecombine(NULL,lcd_info->fix.smem_len,
  • (void*)lcd_info->screen_base,(dma_addr_t)lcd_info->fix.smem_start);
  • iounmap(shodowcon);
  • iounmap(vidw00add1b0);
  • iounmap(vidw00add0b0);
  • iounmap(vidosd0c);
  • iounmap(vidosd0b);
  • iounmap(vidosd0a);
  • iounmap(wincon0);
  • iounmap(vidtcon2);
  • iounmap(vidtcon1);
  • iounmap(vidtcon0);
  • iounmap(vidcon1);
  • iounmap(vidcon0);
  • iounmap(gpd0dat);
  • iounmap(gpd0con);
  • iounmap(gpf3con);
  • iounmap(gpf2con);
  • iounmap(gpf1con);
  • iounmap(gpf0con);
  • framebuffer_release(lcd_info);
  • }
  • module_init(lcd_init);
  • module_exit(lcd_exit);
  • MODULE_LICENSE("GPL");
  • 將上面的代碼在自己的內核環(huán)境下編譯,然后下載到開(kāi)發(fā)板上試運行即可。

    本文引用地址:http://dyxdggzs.com/article/201611/322809.htm

    在安裝驅動(dòng)程序前執行指令:

    1. ls/dev/fb*
    如果有fb0或者其他fb*存在,應該修改內和配置,取消其他fb的配置,如果看不到fb*設備,則可以按照如下步驟進(jìn)行測試。
    測試前還需要修改下內核配置,有兩個(gè)原因:

    (1) 內核默認配置下不支持Frame buffer

    (2) 我們的驅動(dòng)程序中用到了三個(gè)函數:

    1. .fb_fillrect=cfb_fillrect,
    2. .fb_copyarea=cfb_copyarea,
    3. .fb_imageblit=cfb_imageblit,
    這三個(gè)函數是引用的內核中的函數,不是我們自行實(shí)現的。



    關(guān)鍵詞: S5PV210LCD驅動(dòng)編

    評論


    相關(guān)推薦

    技術(shù)專(zhuān)區

    關(guān)閉
    国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
    <dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>