lcd顯示原理:
在jz2440上,想要讓lcd顯示,需要幾個部分1、lcd硬體 2、開發板上的lcd控制器 3、sdram記憶體存放資料frambuffer 4、可能還需要乙個調色盤(實際上是一塊記憶體,裡面資料可以組成各種顏色)
顯示原理:在開發板上操作lcd控制器,使得開發板向sdram記憶體裡去除資料傳送通過lcd資料引腳傳送到lcd屏上。
具體硬體操作步驟:
1、lcd引腳的連線,根據lcd原理圖配置引腳
2、根據lcd控制器手冊設定lcd控制器
3、分配視訊記憶體,並把位址告訴lcd控制器
lcd液晶屏顯示原理:
可以想象一下lcd後面有乙個電子槍,電子槍的作用就是將從frambuffer記憶體裡獲取到的顏色,乙個乙個的打到lcd螢幕上,怎麼打?順序為:
以液晶屏左上角開始,從左往右開始,乙個乙個顏色點打上去,打到後面沒有地方的時候,又開始換行又從左往右打;就比如你開啟乙個記事本按住某個字元符號不懂,
它會不斷的在記事本上輸出字母,當到邊界是開始換行輸出。直到輸出完為止。當然lcd液晶屏上空間有限,打的速率非常快的,是你感覺是影象是突然就出現到你
前面來一樣。
lcd驅動程式的框架
滿足字元裝置驅動程式的框架
1、應用程式通過open、read、write等函式進入核心進而呼叫dri_open、dri_read、dir_write等函式,通過裝置好找到lcd驅動的註冊id,進而
進入到到驅動函式的file_operation結構體函式,對硬體進行操作,主要框架如圖所示。
lcd驅動程式
問1. registered_fb在**被設定?
答1. register_framebuffer
怎麼寫lcd驅動程式?
1. 分配乙個fb_info結構體: framebuffer_alloc
2. 設定
3. 註冊: register_framebuffer
4. 硬體相關的操作
對lcd初始化:主入口函式要做的事情
1. 分配乙個fb_info結構體: framebuffer_alloc
struct fb_info ;
s3c_lcd->var.xres = 240;
s3c_lcd->var.yres = 320;
s3c_lcd->var.xres_virtual = 240;
s3c_lcd->var.yres_virtual = 320;
s3c_lcd->var.bits_per_pixel = 16;
/* rgb:565 */
s3c_lcd->var.red.offset = 11;
s3c_lcd->var.red.length = 5;
s3c_lcd->var.green.offset = 5;
s3c_lcd->var.green.length = 6;
s3c_lcd->var.blue.offset = 0;
s3c_lcd->var.blue.length = 5;
s3c_lcd->var.activate = fb_activate_now;
/* 2.3 設定操作函式 */
s3c_lcd->fbops = &s3c_lcdfb_ops;
/* 2.4 其他的設定 */
s3c_lcd->screen_size = 240*324*16/8;
3. 硬體相關的操作
/* 3.1 配置gpio用於lcd */
/* 3.2 根據lcd手冊設定lcd控制器, 比如vclk的頻率等 */
/* 3.3 分配視訊記憶體(framebuffer), 並把位址告訴lcd控制器 */
4. 註冊: register_framebuffer
/* 4. 註冊 */
register_framebuffer(s3c_lcd);
剩餘的對s3c_lcdfb_ops的配置以及硬體配置檢視lcd驅動(二)
lcd驅動程式
ok6410lcd測試程式 1.在螢幕上分別顯示紅綠藍三個長方形 自定義結構體用來在使用者空間裡管理幀緩衝的資訊 typedef struct fd dev fb dev t 實現緩衝裝置的開啟和關閉操作的介面 int fb open fb dev t fbd,char fbn 獲取lcd的可變引數...
LCD驅動程式移植
對lcd的操作可以像串列埠一樣,通過終端裝置層的封裝 dev tty 裝置 來輸出內容,也可以通過frame buffer dev fb 裝置 直接在視訊記憶體上 繪製 影象。tty 終端裝置 和frame buffer驅動程式的框架 下面根據每層的檔案講解一下上圖 1 顯示驅動程式 2 鍵盤驅動程...
LCD裝置驅動程式
對螢幕進行抓屏 cp dev fb0 myfile.png 幀緩衝裝置的主裝置號29,次裝置號0 31,也就是dev fb0 dev fb31 填充乙個fbinfo結構。用register framebuffer fbinfo 將fbinfo結構註冊到核心,對於fbinfo結構,最基本的是fs op...