FB列印與驅動分析

2021-06-21 10:51:30 字數 1230 閱讀 6933

一般來說,除錯資訊可以通過串列埠輸出,也可以通過lcd螢幕輸出。輸出的終端就是/dev/tty1

比如:ls -l > /dev/tty1

這時候就可以在lcd屏上看到輸出的列印字元。

當你想在螢幕上顯示「hello",echo "hello" > /dev/tty1

在程式中,可以開啟這個裝置,如:

#include #include #include #include #include int main()

程式中無法使用命令的功能。

fb是通過描點的方式

#include #include #include #include #include

int main () 

if (ioctl(fp,fbioget_fscreeninfo,&finfo))

if (ioctl(fp,fbioget_vscreeninfo,&vinfo))

screensize = vinfo.xres * vinfo.yres * vinfo.bits_per_pixel / 8;

//這就是把fp所指的檔案中從開始到screensize大小的內容給對映出來,得到乙個指向這塊空間的指標

fbp =(char *) mmap (0, screensize, prot_read | prot_write, map_shared, fp,0);

if ((int) fbp == -1)

//這是你想畫的點的位置座標,(0,0)點在螢幕左上角

x = 100;

y = 100;

location = x * (vinfo.bits_per_pixel / 8) + y * finfo.line_length;

*(fbp + location) = 100; // 藍色的色深 直接賦值來改變螢幕上某點的顏色

*(fbp + location + 1) = 15; // 綠色的色深

*(fbp + location + 2) = 200; // 紅色的色深*

*(fbp + location + 3) = 0; // 是否透明*

munmap (fbp, screensize);

close (fp);

return 0;

}

FB顯示驅動框架

fb顯示驅動框架從上到下分為 5層,如圖 1所示。fb裝置驅動是乙個抽象的顯示驅動模型,抽象出了顯示驅動公有的操作,為上層提供系統呼叫,為底層驅動提供介面。原始碼主要在 fb.h kernel include linux 和fbmem.c kernel drivers video 兩個檔案中。fb驅...

fb裝置驅動1 fb裝置的顯像原理和步驟

lcd的顯像原理 將ddr記憶體的一部分劃分出來作為視訊記憶體,視訊記憶體與lcd顯示螢幕之間做乙個雙向的對映,然後使用者只需要將需要顯示的內容放入視訊記憶體之中,然後視訊記憶體中的內容就會重新整理到lcd的儲存器中進行顯示。視訊記憶體 在核心之中申請一塊記憶體作為視訊記憶體,由於核心空間和使用者空...

linux列印驅動適配

國產作業系統適配 cups除錯和可能產生的問題 linux作業系統列印驅動適配。cups即common unix printing system,即通用unix列印系統,所有linux作業系統,均採用cups進行列印。cups提供了列印任務所需要的介面和工具。cups將上層的資料,通過其自帶的轉換工...