4.3
寸24bpp
屏驅動筆記
一、2442平台
1 ,
先在eboot
中的main.c
檔案修改
initdisplay
()函式,目的是先摸索針對該款
lcd硬體特性設定
2442
的lcd
控制器,這樣只要通每次燒個
eboot
進去,就能看到效果,
修改:⑴
lcdcon1tft lcd pannel
選24bpp
(必須)
⑵ lcdcon5
第0位,hwswp――――――――0
(必須)
⑶lcdcon5
第6位,invvden -------------0
(必須)
⑷ 硬體上把原來de腳上0歐到地的電阻去掉
(必須)
⑸lcdcon3hbpd-------------45
⑹ 原來的乘2變為乘4,這樣才能變為全屏,本來只能顯兩半屏(必須)
s2440lcd->lcdsaddr2 = m5d((image_framebuffer_dma_base + (480 * 272 * 4)) >> 1);
⑺ s3c2440disp.cpp檔案中, m_colordepth = 32;//24bpp的屏,(必須)是32
結果:成功在eboot中控制lcd顯示各種顏色,
2 在driver 資料夾中修改display資料夾中的驅動,這是進入到ce系統時的驅動
要修改的檔案有:
a wince500/platform/smdk2442/src/inc--
às3c2440a_lcd.h
主要有lcd
控制器的暫存器定義、
lcd控制器的工作時序定義、解析度的定義等等。
b wince500/platform/smdk2442/src/kernel/oal –init.c
initdisplay()
函式中,設定lcd控制器的引數
(發現剛進到initdisplay馬上就跳出來了,所以本bsp中沒用到裡面的配置)
跟蹤發現,也沒有進入off.c中的initdisplay
()函式
(1)display資料夾中,s3c2440disp.cpp檔案,函式s3c2440disp::s3c2440disp()是負責設定lcd引數的。regopenkeyex()開啟登錄檔,
regqueryvalueex
()查詢登錄檔
(2)getrotatemodefromreg()獲得旋轉模式,讀登錄檔
regopenkeyex()
開啟登錄檔,
regqueryvalueex
()查詢登錄檔
總結:1 在eboot裡設了lcd控制器,後面就不用設了,在driver裡的s3c2440disp.cpp只要設一些螢幕引數就可以了,如m_cxphysicalscreen m_cyphysicalscreen等
m_colordepth = 32;//24bpp
的屏,必須是32
二、2450平台1
修改了bsp_cfg.h
加入lcd_module_p043f1a4 模式,並選
2 加入預編譯巨集#ifdef lcdp043f1a4
只要在source.cmn檔案中加入定義就可切換
4 修改
lcd_vbpd = 2;//
lcd_vfpd = 4;//
都是典型值,沒有-1
操作 lcd_vspw = 10;// 10
lcd_hbpd = 4;//
lcd_hfpd = 8;//
lcd_hspw = 41;// 5
修改clkval = 9;
使輸出vclk
=9.5mhz
hsync
=15.7khz
vsync
=54.9hz 6
改變wincon0
中的第2
位為winconx_24bpp_888
模式7
修改vidw00add1b0
視窗0 buffer
結束位址
(非常重要
) 如果沒改好,
lcd控制器不工作
s2450lcd->vidw00add1b0 = (uint32)((image_framebuffer_dma_base&0x007fffff + lcd_width*(lcd_height+1))); 8
修改vidw00add2b0
虛擬屏頁寬
(非常重要
) 如果沒改好,
lcd控制器不工作
s2450lcd->vidw00add2b0 = (offsize_in_byte< 9
關掉half-word swap ,
因為如果反轉,資料將變為b-
g-r藍色在高8位了
//s2450lcd->wincon0 |= (1<
//enable half-word swap
以上是去掉原來
2450
驅動中的語句
10*pfb
要改為unsigned int 型11
進入init.c
中,在initdisplay()
函式中,在開始就加入
return;
因為不想再初始一次
lcd控制器,
12修改
drivers
資料夾中的
dir檔案,使只編譯
display
資料夾13 14
,在drivers/display
資料夾中,
s3c2450disp.cpp ---->s3c2450disp::s3c2450disp()函式,
修改引數如下:
m_redmasksize = 8;
m_redmaskposition = 16;
m_greenmasksize = 8;
m_greenmaskposition = 8;
m_bluemasksize = 8;
m_bluemaskposition = 0;
m_colordepth = 32;//
必須的m_framebuffersize = m_nscreenheight * m_cbscanlinelength*2;
15drivers/display
資料夾,
surf.cpp----> setvisiblesu***ce函式如
7,8步修改引數,否則在關閉
media player
時,進入這裡重新初始會把
lcd控制器破壞,
變成白屏
16drivers/display -----ddoverlay.cpp
檔案:initoverlay()
函式,如果要用成
24位,記得在這裡要進行修改,不然一旦呼叫
overlay,
就會使得
lcd控制器不工作了
2 4寸METER開發總結
1.環境配置 s14使用的是微控制器,需要使用keil來編譯,批處理生成二進位制檔案通過串列埠燒進機器 只需要按照s14開發環境配置流程裡的步驟一步一步來即可 2.理解結構體欄位 理解online listitem llist 和online dataentry data entry 結構體中每個字...
2 4寸液晶控制方法
2.4寸液晶控制方法 有兩種控制方法 1.對控制暫存器操作 2.對視訊記憶體操作 兩種控制方法實際都是通過對lcd控制器 spf5408 的暫存器進行操作 該控制器提供乙個索引暫存器 index register 對該暫存器的寫入操作可以指定操作的暫存器索引,提供了rs控制線來區別對index re...
24英吋iMac與27英吋iMac詳細對比
蘋果至今仍在銷售21.5英吋和27英吋的imac,它們於2020年8月進行了更新,為它們提供了固態驅動器和新的英特爾晶元。27英吋具有最大的計算能力和更好的顯示效果。那麼,新的24英吋imac與曾經是頂級產品的27英吋imac有何不同?27英吋imac具有10核intel core i9處理器,並且...