Linux高階驅動 LCD驅動框架分析

2021-09-06 16:26:07 字數 1904 閱讀 1257

功能:給使用者提供介面

fbmem_init  

//入口函式

/*1.申請主裝置號,註冊字元裝置*/

register_chrdev(fb_major(

29),

"fb",

&fb_fops)

/*2.建立乙個裝置類*/

fb_class

= class_create(this_module,

"graphics");

static

const

structfile_operations fb_fops

= ;: open(

"/dev/***",***)

======

====

====

====

====

====

====

=vfs

: sys_open

......

fbmem.c

structfile_operations fb_fops

.open

=  fb_open,

/*1.獲取此裝置號*/

intfbidx

= iminor(inode);

structfb_info

*info;

/*2.以此裝置號為下標,從register_fb陣列中取出fb_info結構體*/

info

= registered_fb[fbidx];

file

->private_data

= info;

if(info

->fbops

->fb_open)

搜尋registered_fb陣列,看在**被設定了?

s3c_fb_probe(

structplatform_device

*pdev)

......

for(win

=0; win

< s3c_fb_max_win; win

++) {

/*設定乙個硬體視窗:乙個視窗就是乙個幀緩衝裝置,乙個幀緩衝裝置用struct fb_info來描述*/

s3c_fb_probe_win     

//drivers\video\s3c-fb.c

/*構建fb_info:表示乙個幀緩衝裝置*/

/*設定fb_info*/

/*設定它的可變引數*/

/*設定它的固定引數*/

/*設定它的操作方法*/

/*註冊乙個fb_info結構體*/

register_framebuffer(

structfb_info

*fb_info)

/*將fb_info加入陣列項*/

registered_fb[i]

= fb_info;

@成鵬致遠

(blogs:

(email

[email protected]

(qq

552158509

from wiznote

Linux的LCD驅動分析

linux的graphics子系統介紹 一 lcd介紹 liquid crystal display液晶顯示器,lcd按材料分有 stn 超扭曲陣列 tft 薄膜電晶體 ltps 低溫晶體多晶矽 oled 有機發光二極體 等。lcd的介面種類有 ttlrgb 數字rgb顏色介面 i80 又稱mcu介...

linux系統LCD驅動(一)

出來工作兩年,隨著工作的深入,一直很少有時間寫部落格,並且隨著工作各種零碎的除錯,有時候很容易忘記自己所學的一些東西,近期就像用寫部落格來鞏固自己剛入門時的一些基礎知識以及往後學到的一些知識。linux系統lcd驅動也稱framebuff驅動,驅動框架如下圖 應用程式通過開啟裝置節點dev grap...

lcd驅動架構

lcd的硬體特性以及使用方法比較簡單,再次就不羅嗦了,主要寫一下驅動架構方面 兩個關鍵檔案fbmem.c 和s3c2410fb.c fbmem.c中是linux的緩衝幀函式,緩衝幀就是一塊記憶體,是顯示緩衝區的一種抽象,往該記憶體中寫入顏色的資料就會在lcd上顯示。應用程式操作lcd時通過fbmem...