五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

lcd相關(guān)參數(shù)的復習

2023-03-30 21:03 作者:秋名山西  | 我要投稿

一、LCD與SOC的硬件連接

LCD一般會需要SOC通過硬件電路提供如下幾個信號:

(1)屏幕背光

(2)[23:0]并行數(shù)據(jù)總線

(3)HSYNC:水平同步信號(行同步),作為一行數(shù)據(jù)開始的標志,是一個脈沖信號

(4)VSYNC:幀同步信號,作為一幀數(shù)據(jù)開始的標志,是一個脈沖信號

(5)VDEN:高電平時,表示正在傳輸有效數(shù)據(jù)

(6)VCLK:像素時鐘

以上的(3)、(4)、(6)都需要根據(jù)具體使用的LCD的數(shù)據(jù)手冊中提供的參數(shù)進行計算;

(1)HSYNC(脈沖寬度)=HSPW(數(shù)據(jù)手冊提供)+1;單位為vclk

(2)VSYNC(脈沖寬度)=VSPW(數(shù)據(jù)手冊提供)+1;單位為HSVNC

(3)VCLK(像素時鐘)=數(shù)組手冊中一行的長度(One Horizontal LINE)*一幀的行數(shù)*幀同步信號(典型值為60)

例如:

在800*480的lcd中,VCLK的值為:

VCLK=(800+256)*(480+45)*60=33.264Mhz

數(shù)據(jù)均來自于LCD數(shù)據(jù)手冊

二、LCD提供給驅(qū)動框架的信息

LCD固有的6個參數(shù):

(1)HSPW:脈沖寬度

(2)HBPD:行有效信號前肩,行有效信息前有HBPD+1個無效像素信息

(3)HFPD:行有效信號后肩,行有效信息后有HFPD+1個無效像素信息

(4)VSPW:脈沖寬度

(5)VBPD:幀有效信號前肩,幀有效信息前有VBPD+1行無效像素信息

(6)VFPD:幀有效信號后肩,幀有效信息前有VFPD+1行無效像素信息

一行信息的組成:

HSYNC(HSPW+1)+(HBPD+1)+行有效信息(分辨率個像素)+(HFPD+1)

一幀信息的組成:

VSYNC(VSPW+1)+(VBPD+1)+幀有效信息+(VFPD+1)

三、關(guān)于famebuffer

framebuffer可以簡單理解為顯存的代名詞,指的是任意一段存儲空間,可以指向顯存,也可以指向內(nèi)存,只需要在內(nèi)存分配后將其設(shè)置到顯卡的相關(guān)寄存器中即可。它是內(nèi)核使用代碼構(gòu)建出來的設(shè)備文件,為應用層將數(shù)據(jù)放進顯存提供便利。可以對framebuffer進行不同的配置,支持VGA和hdmi等。

從驅(qū)動角度來看,framebuffer構(gòu)建出來的設(shè)備fb是一個字符設(shè)備,在創(chuàng)建fb的同時,還創(chuàng)建了一個類sys/class/graphics。

LCD驅(qū)動所做的工作,就是初始化LCD控制器、申請內(nèi)存、建立顯存與LCD驅(qū)動器的映射關(guān)系。這樣應用程序只需要將需要顯示的圖像丟進frambuffer,硬件就可以自動完成顯示。

應用層與內(nèi)核的數(shù)據(jù)交換方式:

(1)使用copy_from_user和copy_to_user;適用于小數(shù)據(jù)量

(2)使用mmap(用于圖像顯示,大數(shù)據(jù)量)

四,framebuffer框架介紹

1、drivers/video/fbmem.c(驅(qū)動框架代碼)

主要任務:

(1)創(chuàng)建graphic類

(2)注冊字符設(shè)備fb驅(qū)動

(3)提供register_framebuffer(struct fb_info *fb_info)/unregister_frambuffer(struct fb_info *fb_info)給具體的framebuffer驅(qū)動調(diào)用來注冊fb。

framebuffer使用struct fb_info描述framebuffer設(shè)備,使用struct file_operations fb_fops來描述設(shè)備驅(qū)動實現(xiàn)的操作。

五、驅(qū)動介紹

針對于s5pv210,其lcd的驅(qū)動在s3cfb.c這個文件中,縱觀其代碼,我們可以發(fā)現(xiàn)lcd驅(qū)動是基于platform平臺總線進行開發(fā)的,那自然就會有platform_device和platform_driver的存在。其中platform_device是在內(nèi)核初始化的時候進行注冊的,所以當對應的驅(qū)動注冊時,會按照名字進行匹配,成功后就會自動執(zhí)行驅(qū)動中的probe函數(shù)。

(1)設(shè)備注冊

struct s3c_platform_fb

????這個結(jié)構(gòu)體是fb的platform_data結(jié)構(gòu)體,是platform設(shè)備的私有數(shù)據(jù)。這個數(shù)據(jù)存儲在platform_device.device.platform_data中存儲,需要在mach文件紅進行填充,然后在probe函數(shù)中通過傳參platform_device指針取出來。

struct s3cfb_lcd(可以設(shè)置分辨率),如果是移植新的開發(fā)板,修改這個結(jié)構(gòu)體即可。這個結(jié)構(gòu)體包含了分辨率、色深、時序信號燈和具體硬件有關(guān)的信息。


platform_device的信息(platform_data)會在mach_210.c中的smdkc110_machine_init函數(shù)中進行注冊,platform_data是調(diào)用s3cfb_set_platdat()函數(shù)進行設(shè)置,參數(shù)即為我們所使用的lcd屏幕的結(jié)構(gòu)體 struct s3c_platform_fb的一個對象。這個結(jié)構(gòu)體中的.lcd成員所指向的結(jié)構(gòu)體ek070tn93(struct s3cfb_lcd的一個實例),這個結(jié)構(gòu)體就包含了lcd的時序信息在里面。

這也是具體的硬件所在。

lcd相關(guān)參數(shù)的復習的評論 (共 條)

分享到微博請遵守國家法律
西宁市| 肇源县| 喀什市| 南华县| 三亚市| 杭州市| 米林县| 泾源县| 镇原县| 罗甸县| 遂溪县| 会宁县| 施甸县| 西贡区| 盘锦市| 广河县| 老河口市| 抚顺市| 衡水市| 鄂托克旗| 元阳县| 通化市| 新密市| 射洪县| 汽车| 兴山县| 浙江省| 醴陵市| 雅安市| 江西省| 准格尔旗| 吴忠市| 遵化市| 平江县| 韩城市| 林西县| 衡南县| 乌拉特前旗| 宜兰县| 黎城县| 濉溪县|