實現乙個fb的驅動,聽起來很玄乎,那就讓我們看看是不是像我們想的那樣。
在寫驅動之前,應該先看下kernel/kernel/include/linux目錄下fb.h,以及kernel/kernel/drivers/video目錄下的fbmem.c.
在fb.h中定義了定義了乙個重要的核心空間的乙個struct,就是fb_info和file_ops.
fbmem.c是我們fb驅動的核心。我們需要實現fb驅動其實就是填充fb_info,在fbmem.c裡有registered_fb陣列和num_registered_fb,在底層顯示裝置呼叫register_framebuffer()的時候,會將fb_info放進陣列registered_fb裡,num_registered_fb加1.
在register_framebuffer之前,需要實現fb_ops中的一些方法
不是這裡面的所有函式都要我們去實現的,有些在fbmem.c中已經幫我們實現了的,比如說是fb_open,fb_release,fb_open,fb_write等。
在fb_info中有乙個變數就是指向這個fb_ops,然後將整個fb_info放到registered_fb陣列中。具體要實現哪些函式,以需求而定。
下一節將介紹fb在android中的應用。
framebuffer 程式設計
這是乙個關於如何程式設計的文件,因此,請在你編譯或執行例子之前,正確配置你的framebuffer裝置。用framebuffer裝置,你可以把你的計算機螢幕當成乙個真正的圖形裝置。你可以修改解析度,重新整理率,色彩深度等。最好的一點是,你可以把畫素點繪在任何你想要的地方。framebuffer裝置不...
Framebuffer程式設計How to
這是乙個關於如何程式設計的文件,因此,請在你編譯或執行例子之前,正確配置你的framebuffer裝置。用framebuffer裝置,你可以把你的計算機螢幕當成乙個真正的圖形裝置。你可以修改解析度,重新整理率,色彩深度等。最好的一點是,你可以把畫素點繪在任何你想要的地方。framebuffer裝置不...
顯示裝置framebuffer
分配 設定 註冊dispopr結構體,由display manager.c通過鍊錶管理。dispopr結構體包含顯示裝置的屬性和操作函式。其中fbshowpixel主要用於顯示字型點陣,showpage主要用於視訊記憶體管理。typedef struct dispopr t dispopr,pt d...