久久中文视频-久久中文网-久久中文亚洲国产-久久中文字幕久久久久-亚洲狠狠成人综合网-亚洲狠狠婷婷综合久久久久


曙海教育集團論壇Linux專區Linux驅動開發 → Linux液晶屏驅動開發


  共有7643人關注過本帖樹形打印

主題:Linux液晶屏驅動開發

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


加好友 發短信
等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
Linux液晶屏驅動開發  發帖心情 Post By:2010-11-24 10:30:54

FrameBuffer設備驅動基于Linux/include/linux/fb.h和linux/drivers/video/fbmem.c這兩個文件,下面就詳細分析這兩個文件。

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

  fb_var_screeninfo 這個結構描述了顯示卡的特性,記錄了幀緩沖設備和指定顯示模式的可修改信息。其中變量xres定義了屏幕一行所占的像素數,yres定義了屏幕一列所占的像素數,bits_per_pixel定義了每個像素用多少個位來表示。

  fb_fix_screeninfon 這個結構在顯卡被設定模式后創建,它描述顯示卡的屬性,并且系統運行時不能被修改;比如FrameBuffer內存的起始地址。

  struct fb_info Linux為幀緩沖設備定義的驅動層接口。它不僅包含了底層函數,而且還有記錄設備狀態的數據。每個幀緩沖設備都與一個fb_info結構相對應。其中成員變量modename為設備名稱,fontname為顯示字體,fbops為指向底層操作的函數的指針。

  fb_cmap描述設備無關的顏色映射信息。可以通過FBIOGETCMAP 和FBIOPUTCMAP 對應的ioctl操作設定或獲取顏色映射信息。然后分析fbmem.h文件。

  幀緩沖設備屬于字符設備,采用“文件層-驅動層”的接口方式。在文件層為之定義了以下數據結構:
幀緩沖設備數據結構

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

  對于/dev/fb,對顯示設備的操作主要有以下幾種:

  讀/寫(read/write)/dev/fb 相當于讀/寫屏幕緩沖區。

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

  I/O控制 對于幀緩沖設備,對設備文件的ioctl操作可讀取/設置顯示設備及屏幕的參數,如分辨率、顯示顏色數和屏幕大小等。ioctl的操作是由底層的驅動程序來完成的。

  在應用程序中,操作/dev/fb的一般步驟為首先打開/dev/fb設備文件,然后用ioctl操作取得當前顯示屏幕的參數,如屏幕分辨率,每個像素點的比特數,根據屏幕參數可計算屏幕緩沖區的大小。接下來,將屏幕緩沖區映射到用戶空間。最后,映射后就可以直接讀寫屏幕緩沖區,進行繪圖和圖片顯示了。典型程序段如下:
程序段

  由于準備在LCD 上顯示一幅256色BMP圖片,關于BMP 圖片方面的知識請見相關鏈接。

  4.幀緩沖驅動的縮寫

  了解了上述知識后,在編寫驅動的時候就簡單多了。源程序共將程序分為初始化幀緩沖模塊fb_init(),調色板獲取色彩模塊get_cmap(),圖片顯示模塊display_bmp(),main函數4個函數。其中調色板獲取色彩模塊的功能是從文件中獲得圖像顯示色彩,重置系統調色板,使圖像能正確的顯示色彩。
程序

  圖片顯示函數部分重要代碼為:
圖片顯示函數部分重要代碼

  在主函數中,建立一個進程調用圖片顯示函數
進程調用圖片顯示函數

  至此LCD的驅動程序就編寫完成了,經過調試,編譯鏈接,然后用串口下載到實驗板上,一幅256色BMP圖片就可以出現在液晶屏幕上了。

  5.應用價值

  液晶屏點亮了,這只是第一步,我們可以在此基礎上進一步進行應用程序的開發,比如筆者將此應用在一個視頻監控系統中。在這個視頻監控系統中,圖像處理占很大的比重,基本的圖像處理構成如下:

  圖像采集模塊圖像采集模塊需要兩種裝置,一種是將光信號轉換成電信號的物理器件,如攝像機;另一種是能夠將模擬電信號轉換成數字信號的器件,如圖像采集卡。

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

  圖像顯示模塊對于采集得到的圖像,經過處理以后,最終需要顯示給用戶看。在系統的實時采集部分中,需要對展開的圖像進行滾屏顯示:在圖像編輯部分中,需要瀏覽所要拼接的圖像。所以圖像顯示對于系統來說非常重要。

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


支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

返回版面帖子列表

Linux液晶屏驅動開發








簽名
主站蜘蛛池模板: 中文字幕日韩精品中文区 | 香蕉久久综合精品首页 | 日本高清在线精品一区二区三区 | 狠狠综合久久久久综合 | 国产精品亚洲一区二区三区 | 在线视频久久 | 国产成人刺激视频在线观看 | 91成年人 | 欧美成人免费在线视频 | 一级一级 a爱片免费视频 | 深夜成人性视频免费看 | 干综合网 | 欧美日韩国产亚洲一区二区 | 欧美三级一级片 | 国产美女一区精品福利视频 | 精品欧美小视频在线观看 | 日韩午夜在线观看 | aaa成人永久在线观看视频 | 成人无遮挡毛片免费看 | 日韩在线一区二区三区免费视频 | 免费一级特黄 欧美大片 | 99热在线免费 | 日韩欧美成末人一区二区三区 | 久久精品久久精品久久 | 久久精品免费在线观看 | 性欧美另类老妇高清 | 日本免费成人网 | 美女白浆视频 | 一个色综合久久 | 国产97在线观看 | 欧美亚洲综合视频 | 色综合夜夜嗨亚洲一二区 | 亚洲精品亚洲人成毛片不卡 | 精品午夜一区二区三区在线观看 | 女同日韩互慰互摸在线观看 | 久久精品国产精品亚洲 | 手机黄色网址 | 2019国产精品 | 国产三级国产精品国产国在线观看 | 国产成人综合久久精品红 | 亚洲第一免费 |