視訊記憶體----
幀緩衝----顯示快取
framebuffer從本質上講是圖形裝置的硬體抽象。對開發者而言,framebuffer是一塊顯示快取,往顯示快取中寫入特定格式的資料就意味著向螢幕輸出內容。通過不斷的向frame buffer中寫入資料,顯示控制器就自動的從frame buffer中取資料並顯示出來。
幀緩衝裝置對應的裝置檔案為/dev/fb*,如果系統有多個顯示卡,linux下還可支援多個幀緩衝裝置,最多可達32個,分別為/dev/fb0到/dev/fb31,而/dev/fb0則為當前預設的幀緩衝裝置,通常指向/dev/fb0。幀緩衝裝置為標準字元裝置,主裝置號為29,次裝置號則從0到31.
訪問幀緩衝裝置---例項演示
1清除lcd
dd if=/dev/zero/fb0 bs=240 count=320 bs-- block size 以塊的方式,每個240位元組。
2執行應用程式,畫圖
./lcd
3清除lcd
dd if=/dev/zero of=/dev/fb0 bs=240 count=320
4顯示cat 7.bmp>/dev/fb0
-------------------系統架構-----------------------
裝置描述
linux核心使用struct fb_info來描述幀緩衝裝置。
struct fb_info;
可變引數
struct fb_var_screeninfo var記錄了使用者可以修改的顯示引數,包括螢幕解析度等。
struct fb_var_screeninfo ;
固定引數--------
struct fb_fix_screeninfo記錄了使用者不能修改的顯示器控制引數,如顯示快取的實體地址等。
操作集
struct fb_ops 包含了對控制器進行操作的函式指標。
若不實現,也可以,這時圖中,file_operations結構體中的read等,是核心給我們實現好的。若實現,則會使用自己定義好的。
struct fb_ops ;
裝置註冊
int register_framebuffer(struct fb_info *fb_info)
裝置登出
int unregister_framebuffer(struct fb_info *fb_info)
驅動分析-----------------------
配置s3c2440 lcd驅動程式
make menuconfig arch=arm
device drivers------s3c2410 frame buffer support-----3.5 2410 nec support
測試--------如上例項演示
虛擬幀緩衝驅動
嵌入式linux系統開發全程解析 是一本全面介紹嵌入式linux開發的專著,書中涵蓋了程式生成工具 除錯工具 引導載入器 linux系統結構 linux核心 驅動程式 使用者空間程式設計 使用者空間中介軟體等方面的內容。嵌入式linux系統開發全程解析 內容前後照應 貼近實踐,且有較強的延伸型,有利...
幀緩衝儲存器
幀緩衝儲存器 frame buffer 簡稱幀快取或視訊記憶體,它是螢幕所顯示畫面的乙個直接映象,又稱為位對映圖 bit map 或光柵。幀快取的每一儲存單元對應螢幕上的乙個畫素,整個幀快取對應一幀影象。幀緩衝是linux為顯示裝置提供的乙個介面,把視訊記憶體抽象後的一種裝置,他允許上層應用程式在圖...
Linux的幀緩衝裝置
linux的幀緩衝裝置 幀緩衝 framebuffer 是 linux 為顯示裝置提供的乙個介面,把視訊記憶體抽象後的一種裝置,他允許上層應用程式在圖形模式下直接對顯示緩衝區進行讀寫操作。這種操作是抽象的,統一的。使用者不必關心物理視訊記憶體的位置 換頁機制等等具體細節。這些都是由framebuff...