1. 程式人生 > 實用技巧 >Linux 驅動—LCD學習

Linux 驅動—LCD學習

始發:2014-05-04 13:32:49
版本資訊:

Linux :2.6.31
U-Boot:u-boot-2010.06
BusyBox: BusyBox 1.15.2
交叉編譯器:arm-linux- v4.3.3

這篇實踐有兩部分:一是驅動程式移植,二是製作自己的開機LOGO。

一、驅動移植

1、設定時鐘頻率,不採用原始碼中複雜的計算方式,直接修改。

修改drivers/video/s3c2410fb.c中的函式,如下紅色粗體:

在 struct s3c2410fb_display 結構體中並沒有 setclkval 成員,所以需要新增該成員:

arch/arm/mach-s3c2410/include/mach/fb.h

2、修改LCD的引數,這需要對照所用LCD的datasheet。

arch/arm/mach-s3c2440/mach-smdk2440.c

重要引數說明:

(1)pixclock — 畫素時鐘,即畫1個點需要的時間值,單位皮秒(ps)。比如,如果datasheet指定時鐘25MHz,那麼:

1000000/25 = 40000(ps)

(2)setclkval — 是LCDCON1暫存器CLKVAL值,由它決定VCLK(Pixel clock signal)的值,如下圖:

引數設定好後,還有一重要地方要改,就是其下面的函式:

3、配置核心,並支援啟動LOGO。

Device Drivers: 
	Graphics Support ---> 
		<*>support for frame buffer devices ---> 
			[*] Enable frameware EDID 
   			[*] Enable Vidoe Mode Handling Helpers 
		<*> S3C24X0 LCD framebuffer support 
 	Console display driver support ---> 
		<*> Framebuffer Console Support 
	[*] Bootup Logo ---> 
		<*> Standard 224-color Linux logo 

4、編譯並燒寫核心,可以看到左上角一隻企鵝,說明驅動移植正常。

二、LOGO製作

LOGO製作需要用到GNU開源軟體GIMP(GNU Image Manipulation Program)。

1、用光影魔術手或其他軟體得到320x240尺寸的圖片,複製到Linux系統,用GIMP開啟:

:若不轉換成320x240大小的圖片,圖片體積會很大

2、在圖片編輯區右鍵依次選擇:

Image—>Mode—>Indexed,出現圖片轉換配置選項,做如下設定:

點選Convert進行轉換。

3、得到.ppm格式的檔案:

右鍵依次:File—>Export,在彈出的對話方塊中作如下設定:

4、把檔案重新命名為logo_linux_clut224.ppm,複製到drivers/video/logo資料夾,覆蓋原檔案。

5、重新編譯核心,燒錄,啟動過程中即可看到我們的LOGO圖片: