在线中文-在线在线ccc66-在线永久免费观看的毛片-在线永久免费观看的a站视频-久久精品最新免费国产成人-久久精品综合一区二区三区

以文本方式查看主題

-  曙海教育集團(tuán)論壇  (http://www.bgl88.cn/bbs/index.asp)
--  Linux驅(qū)動(dòng)開(kāi)發(fā)  (http://www.bgl88.cn/bbs/list.asp?boardid=33)
----  Linux液晶屏驅(qū)動(dòng)開(kāi)發(fā)  (http://www.bgl88.cn/bbs/dispbbs.asp?boardid=33&id=1718)

--  作者:wangxinxin
--  發(fā)布時(shí)間:2010-11-24 10:30:54
--  Linux液晶屏驅(qū)動(dòng)開(kāi)發(fā)
FrameBuffer設(shè)備驅(qū)動(dòng)基于Linux/include/linux/fb.h和linux/drivers/video/fbmem.c這兩個(gè)文件,下面就詳細(xì)分析這兩個(gè)文件。

  首先分析linux/include/linux/fb.h文件,幾乎主要的結(jié)構(gòu)都是在這個(gè)文件中定義的。這些結(jié)構(gòu)包括:

  fb_var_screeninfo 這個(gè)結(jié)構(gòu)描述了顯示卡的特性,記錄了幀緩沖設(shè)備和指定顯示模式的可修改信息。其中變量xres定義了屏幕一行所占的像素?cái)?shù),yres定義了屏幕一列所占的像素?cái)?shù),bits_per_pixel定義了每個(gè)像素用多少個(gè)位來(lái)表示。

  fb_fix_screeninfon 這個(gè)結(jié)構(gòu)在顯卡被設(shè)定模式后創(chuàng)建,它描述顯示卡的屬性,并且系統(tǒng)運(yùn)行時(shí)不能被修改;比如FrameBuffer內(nèi)存的起始地址。

  struct fb_info Linux為幀緩沖設(shè)備定義的驅(qū)動(dòng)層接口。它不僅包含了底層函數(shù),而且還有記錄設(shè)備狀態(tài)的數(shù)據(jù)。每個(gè)幀緩沖設(shè)備都與一個(gè)fb_info結(jié)構(gòu)相對(duì)應(yīng)。其中成員變量modename為設(shè)備名稱(chēng),fontname為顯示字體,fbops為指向底層操作的函數(shù)的指針。

  fb_cmap描述設(shè)備無(wú)關(guān)的顏色映射信息?梢酝ㄟ^(guò)FBIOGETCMAP 和FBIOPUTCMAP 對(duì)應(yīng)的ioctl操作設(shè)定或獲取顏色映射信息。然后分析fbmem.h文件。

  幀緩沖設(shè)備屬于字符設(shè)備,采用“文件層-驅(qū)動(dòng)層”的接口方式。在文件層為之定義了以下數(shù)據(jù)結(jié)構(gòu):
幀緩沖設(shè)備數(shù)據(jù)結(jié)構(gòu)

  其成員函數(shù)都在Linux/driver/video/fbmem.c中定義,其中的函數(shù)對(duì)具體的硬件進(jìn)行操作,對(duì)寄存器進(jìn)行設(shè)置,對(duì)顯示緩沖進(jìn)行映射。

  對(duì)于/dev/fb,對(duì)顯示設(shè)備的操作主要有以下幾種:

  讀/寫(xiě)(read/write)/dev/fb 相當(dāng)于讀/寫(xiě)屏幕緩沖區(qū)。

  映射(map)操作 由于Linux工作在保護(hù)模式和每個(gè)應(yīng)用程序里都有自己的虛擬地址空間,在應(yīng)用程序中是不能直接訪問(wèn)物理緩沖區(qū)地址的。因此,Linux在文件操作file_operaTIons結(jié)構(gòu)中提供了mmap函數(shù),可將文件的內(nèi)容映射到用戶空間。對(duì)于幀緩沖設(shè)備,則可通過(guò)映射操作,可將屏幕緩沖區(qū)的物理地址映射到用戶空間的一段虛擬地址中,之后用戶就可以通過(guò)讀寫(xiě)這段虛擬地址訪問(wèn)屏幕緩沖區(qū),在屏幕上繪圖。

  I/O控制 對(duì)于幀緩沖設(shè)備,對(duì)設(shè)備文件的ioctl操作可讀取/設(shè)置顯示設(shè)備及屏幕的參數(shù),如分辨率、顯示顏色數(shù)和屏幕大小等。ioctl的操作是由底層的驅(qū)動(dòng)程序來(lái)完成的。

  在應(yīng)用程序中,操作/dev/fb的一般步驟為首先打開(kāi)/dev/fb設(shè)備文件,然后用ioctl操作取得當(dāng)前顯示屏幕的參數(shù),如屏幕分辨率,每個(gè)像素點(diǎn)的比特?cái)?shù),根據(jù)屏幕參數(shù)可計(jì)算屏幕緩沖區(qū)的大小。接下來(lái),將屏幕緩沖區(qū)映射到用戶空間。最后,映射后就可以直接讀寫(xiě)屏幕緩沖區(qū),進(jìn)行繪圖和圖片顯示了。典型程序段如下:
程序段

  由于準(zhǔn)備在LCD 上顯示一幅256色BMP圖片,關(guān)于BMP 圖片方面的知識(shí)請(qǐng)見(jiàn)相關(guān)鏈接。

  4.幀緩沖驅(qū)動(dòng)的縮寫(xiě)

  了解了上述知識(shí)后,在編寫(xiě)驅(qū)動(dòng)的時(shí)候就簡(jiǎn)單多了。源程序共將程序分為初始化幀緩沖模塊fb_init(),調(diào)色板獲取色彩模塊get_cmap(),圖片顯示模塊display_bmp(),main函數(shù)4個(gè)函數(shù)。其中調(diào)色板獲取色彩模塊的功能是從文件中獲得圖像顯示色彩,重置系統(tǒng)調(diào)色板,使圖像能正確的顯示色彩。
程序

  圖片顯示函數(shù)部分重要代碼為:
圖片顯示函數(shù)部分重要代碼

  在主函數(shù)中,建立一個(gè)進(jìn)程調(diào)用圖片顯示函數(shù)
進(jìn)程調(diào)用圖片顯示函數(shù)

  至此LCD的驅(qū)動(dòng)程序就編寫(xiě)完成了,經(jīng)過(guò)調(diào)試,編譯鏈接,然后用串口下載到實(shí)驗(yàn)板上,一幅256色BMP圖片就可以出現(xiàn)在液晶屏幕上了。

  5.應(yīng)用價(jià)值

  液晶屏點(diǎn)亮了,這只是第一步,我們可以在此基礎(chǔ)上進(jìn)一步進(jìn)行應(yīng)用程序的開(kāi)發(fā),比如筆者將此應(yīng)用在一個(gè)視頻監(jiān)控系統(tǒng)中。在這個(gè)視頻監(jiān)控系統(tǒng)中,圖像處理占很大的比重,基本的圖像處理構(gòu)成如下:

  圖像采集模塊圖像采集模塊需要兩種裝置,一種是將光信號(hào)轉(zhuǎn)換成電信號(hào)的物理器件,如攝像機(jī);另一種是能夠?qū)?nobr id="nobr93" style="CURSOR: pointer; COLOR: #cb4bfc; BORDER-BOTTOM: rgb(102,0,255) 1px="1px" dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" jquery1290565785015="62">模擬電信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)的器件,如圖像采集卡。

  圖像處理模塊對(duì)圖像的處理一般可用算法的形式描述,但是對(duì)于特殊的問(wèn)題需要特殊的解決方法,圖像處理模塊中不但包含了對(duì)圖像的一般處理方法,也包括一些特殊的算法處理。

  圖像顯示模塊對(duì)于采集得到的圖像,經(jīng)過(guò)處理以后,最終需要顯示給用戶看。在系統(tǒng)的實(shí)時(shí)采集部分中,需要對(duì)展開(kāi)的圖像進(jìn)行滾屏顯示:在圖像編輯部分中,需要瀏覽所要拼接的圖像。所以圖像顯示對(duì)于系統(tǒng)來(lái)說(shuō)非常重要。

  圖像儲(chǔ)存模塊由于圖像中包含有大量的信息,并且由于系統(tǒng)所采用8位真彩色格式,因此需要大量的空間。因此,在本系統(tǒng)中需要大容量和快速的圖像存儲(chǔ)器


主站蜘蛛池模板: 亚洲国产精品自在现线让你爽 | 男人的天堂日本 | 欧美精品99| 九月丁香激情综合婷婷玉立 | 欧美人成一本免费观看视频 | 久久久国产高清 | 欧美综合图片一区二区三区 | 精品欧美一区二区三区精品久久 | 国产成人午夜片在线观看 | 综合久久一区二区三区 | 欧美日韩久久 | 亚洲六月丁香色婷婷综合久久 | 中文字幕一级片 | 丁香视频在线观看播放 | 综合色网站 | 欧美日韩永久久一区二区三区 | 高清欧美不卡一区二区三区 | 久久久精品日本一区二区三区 | 自拍偷拍欧美 | 亚洲国产天堂在线观看 | 伊人婷婷涩六月丁香七月 | 久久久久久亚洲精品中文字幕 | 这里只有精品国产 | 九九精品免费视频 | 精品在线小视频 | 开心色99| 久久国产精品视频 | 久久一区二区三区免费播放 | 久久精品欧美一区二区 | 一级 在线播放 | 在线观看午夜 | 中文字幕久热精品视频免费 | 99热在线精品播放 | 波多野结衣中文字幕在线视频 | 伊人干综合 | 夜爱视频 | 五月开心六月伊人色婷婷 | 精品国产中文字幕 | 99精品国产成人一区二区在线 | 五月深爱网 | 羽月希母乳 |