999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式Linux下S3C2410的調色板彩色顯示

2010-04-12 00:00:00陳喜春
現代電子技術 2010年8期

摘 要:嵌入式應用中,由于計算能力以及硬件資源的限制,常需要降低顏色深度,以獲得較高的分辨率,因此調色板彩色顯示是一種很重要的手段。在此以ARM9核的S3C2410芯片為例,探討分析調色板的概念及配置方法,通過修改驅動程序,實現了調色板彩色顯示,給出了編程實例,總結了實現方法。試驗表明,當LCD分辨率較高時,采用調色板彩色顯示,解決了屏幕抖動和不連貫現象的發生。

關鍵詞:ARM體系; 調色板; 嵌入式Linux; S3C2410

中圖分類號:TN21; TP368.1 文獻標識碼:A

文章編號:1004-373X(2010)08-0046-02

Color Display of S3C2410 Palette Working with Embedded Linux

CHEN Xi-chun, WU Zheng

(Shijiazhuang Mechanized Infantry School, Shijiazhuang 050083, China)

Abstract: In embedded application, a higher resolution is obtained by lowering the color depth quite of ten because ofthe limitation of computation capalility and hardware resources, so color display ofthe paletteis very important in these areas. Taking S3C2410 as an example, the concept of the palette and its configuration is analyzed, and the palette color display is implemented by modifying the driving program of LCD. Several programming examples and implementation methods are given. The research result shows that the screen dither can be avoided by the application ofpalette color display while theresolution ofLCD is high.

Keywords:ARM system; palette; embedded Linux; S3C2410

對于一個顯示設備,數據的更新率正比于畫面的像素數和色彩深度的乘積。在嵌入式Linux系統中,受處理器資源配置和運算能力的制約,當使用大分辨率顯示時(如在一些屏幕尺寸較大的終端上,往往需要640×480以上),需要降低顯示的色彩深度。否則,由于數據處理負擔過重會造成畫面的抖動和不連貫。這時,調色板技術將發揮重要作用。

ARM9內核的S3C2410在國內的嵌入式領域有著廣泛的應用,芯片中帶有LCD控制器,可支持多種分辨率、多種顏色深度的LCD顯示輸出。在此,將S3C2410的調色板技術,以及嵌入式Linux系統下調色板顯示的實現方法進行分析。

1 S3C2410調色板技術概述

1.1 調色板的概念

在計算機圖像技術中,一個像素的顏色是由它的R,G,B分量表示的,每個分量又經過量化,一個像素總的量化級數就是這個顯示系統的顏色深度。量化級數越高,可以表示的顏色也就越多,最終的圖像也就越逼真。當量化級數達到16位以上時,被稱為真彩色。但是,量化級數越高,就需要越高的數據寬度,給處理器帶來的負擔也就越重;量化級數在8位以下時,所能表達的顏色又太少,不能夠滿足用戶特定的需求。

為了解決這個問題,可以采取調色板技術。所謂調色板\\,就是在低顏色深度的模式下,在有限的像素值與RGB顏色之間建立對應關系的一個線性表。比如說,從所有的16位彩色中抽取一定數量的顏色,編制索引。當需要使用某種彩色時,不需要對這種顏色的RGB分量進行描述,只需要引用它的索引號,就可以使用戶選取自己需要的顏色。索引號的編碼長度遠遠小于RGB分量的編碼長度,因此在彩色顯示的同時,也大大減輕了系統的負擔。

以256色調色板為例,調色板中存儲256種顏色的RGB值,每種顏色的RGB值是16位。用這256種顏色編制索引時,從00H~FFH只需要8位數據寬度,而每個索引所對應的顏色卻是16位寬度的顏色信息。在一些對色彩種類要求不高的場合,如儀表終端、信息終端等,調色板技術便巧妙地解決了數據寬度與顏色深度之間的矛盾。

1.2 S3C2410中的調色板

ARM9核的S3C2410芯片可通過內置的LCD控制器來實現對LCD顯示的控制。以TFT LCD為例,S3C2410芯片的LCD控制器可以對TFT LCD提供1位、2位、4位、8位調色板彩色顯示和16位、24位真彩色顯示,并支持多種不同的屏幕尺寸。

S3C2410的調色板\\其實是256個16位的存儲單元,每個單元中存儲有16位的顏色值。根據16位顏色數據中,RGB分量所占位數的不同,調色板還可以采取5∶6∶5(R∶G∶B)和5∶5∶5∶1(R∶G∶B∶1)兩種格式。當采用5∶6∶5(R∶G∶B)格式時,它的調色板如表1所示\\。

表1 S3C2410調色板的結構

索引號

數據位位置

15…1110…54…0地址

00HR4…R0G5…G0B4…B00x4D000400

01HR4…R0G5…G0B4…B00x4D000404

 

FFHR4…R0G5…G0B4…B00x4D0007FC

表1中,第一列為顏色索引,中間三列是R,G,B三個顏色分量對應的數據位,分別是5位、6位和5位,最后一列是對應顏色條目的物理地址。當采用5∶5∶5∶1(R∶G∶B∶1)格式時,R,G,B三個顏色分量的數據位長度都是5位,最低位為1。

用戶編程時,應首先對調色板進行初始化處理\\(可由操作系統提供的驅動程序來完成),賦予256色調色板相應的顏色值;在進行圖像編程時,可以將圖像對象賦予所需的顏色索引值。程序運行時,由芯片的LCD控制器查找調色板,按相應的值進行輸出。S3C2410芯片圖像數據輸出端口VD[23:0]有24位,當使用不同的色彩深度時,這24位數據可以表示一個或多個點的顏色信息\\。

1.3 調色板顏色的選擇

調色板中顏色的選擇可以由用戶任意定義,但為了編程方便,顏色的選取應遵循一定的規律。例如在Windows編程中,系統保留了20種顏色。另外,在Web編程中,也定義了216種Web安全色,這些顏色可以盡量保留。

2 S3C2410調色板在嵌入式Linux系統下的使用

ARM實現圖像顯示時,由LCD控制器將存儲系統中的視頻緩沖內容以及各種控制信號傳送到外部LCD驅動器,然后由LCD驅動器實現圖像數據的顯示。實際應用中,常通過驅動程序由操作系統對寄存器、調色板進行配置。以Linux 2.4內核為例,對調色板的配置是在驅動程序S3C2410fb.c中完成的\\。

在一些公司Linux源碼包的S3C2410fb.c文件中,并沒有對調色板進行配置,因此在8位以下的顯示設置下,LCD不能正常工作。若需要使用調色板,必須對此文件進行修改。

2.1 驅動程序的修改

查S3C2410數據手冊,調色板的物理起始地址為0x4d000400,應先將調色板的物理地址映射到內核中的虛擬地址,然后對其進行賦值。具體步驟如下:

(1)在S3C2410.h文件中添加:

#define MYPAL(Nb) __REG(0x4d000400 + (Nb)*4)

其作用是實現物理地址到虛擬地址的映射。

(2)在S3C2410fb.h文件,通過下列語句定義256種顏色。

static const u_short my_color[256] = {0x0000,0x8000,…};

數組中的每個16位二進制數表示一種顏色,RGB分量采用的是5∶6∶5格式。

(3) 在S3C2410fb.c文件的S3C2410fb_activate_var(…)函數中,通過下列語句對這256個調色板進行賦值。

for(i = 0; i < 256; i++)

{

MYPAL(i) = my_color[i] ;

}

(4) 另外,注意改變LCD控制寄存器LCDCON1的BPPMODE值,設定為需要的顏色深度。

(5) 重新編譯內核,燒寫內核。

2.2 應用程序的編寫

當S3C2410用于嵌入式Linux操作系統時,其圖形功能一般是依靠幀緩存(Frame buffer)\\實現的。屏幕上的每個點都被映射成一段線性內存空間,通過應用程序改變這段內存的值,就可以改變屏幕的顏色。當色深在16位以上時,用戶直接指定顏色的RGB分量;當色深在8位以下時,用戶應當指定顏色在調色板中的索引值。當使用MiniGUI等嵌入式圖形系統\\時,只需要將界面元素的顏色值設為所需顏色的索引值即可。例如:

WinElementColors[i] = 142;

就是將WinElementColors[i]的顏色設置為索引號為142的調色板顏色。

3 結 語

在筆者開發的某型指揮車仿真終端中,其顯示分辨率設置為640×480。如果色深設置為16 b/p,在系統使用時,畫面將會出現明顯的抖動、不連貫,這是由于芯片的運算負荷過重造成的。如果按本文中提到的方法對顯示驅動加以修改,采用8位色深顯示,顏色的選取可以滿足需要,畫面的顯示將明顯穩定。

這說明,在顯示分辨率較高,色彩種類要求比較簡單的嵌入式應用中,調色板技術是一個非常值得重視的選擇。

參考文獻

[1][美]Charles Petzold. Windows程序設計[M]. 北京博彥科技發展有限公司, 譯. 北京: 北京大學出版社, 2003.

[2]杜春雷. ARM體系結構與編程[M]. 北京: 清華大學出版社, 2003.

[3]Samsung Electronics. User′s manual S3C2410x 32-bit RISC Microprocessor[M]. \\: Samsung Electsonics, 2003.

[4]陳賾. ARM9嵌入式技術及Linux高級實踐教程[M]. 北京: 北京航空航天大學出版社, 2006.

[5]陳峰, 李濱滔, 戈志華, 等. VGA TFT LCD的驅動電路設計[J]. 液晶與顯示, 2001, 16(1): 5258.

[6]齊開悅, 陳劍波. 基于Linux操作系統的液晶顯示屏驅動程序的開發[J]. 計算機工程, 2003, 29(6): 188190.

[7]孫天澤, 袁文菊. 嵌入式設計及Linux驅動開發指南——基于ARM9處理器[M]. 北京: 電子工業出版社, 2006.

[8]潘巨龍, 黃寧, 姚伏天, 等. ARM9嵌入式Linux系統構建與應用[M]. 北京: 北京航空航天大學出版社, 2006.

[9]FMSoft. MiniGUI programming guide[M]. \\: FMSoft, 2006.

主站蜘蛛池模板: 国产香蕉97碰碰视频VA碰碰看| 久久婷婷色综合老司机| 高清久久精品亚洲日韩Av| 动漫精品中文字幕无码| 亚洲天堂视频在线观看| 中字无码精油按摩中出视频| 亚洲精品午夜无码电影网| 99视频在线看| 福利视频一区| 啪啪啪亚洲无码| 亚洲日本韩在线观看| 男人的天堂久久精品激情| 日本精品中文字幕在线不卡 | 国产白浆在线| 玖玖精品视频在线观看| 欧美曰批视频免费播放免费| 亚洲精品不卡午夜精品| 美女高潮全身流白浆福利区| 国产成人调教在线视频| 九九精品在线观看| 国产无码在线调教| 国产精品福利在线观看无码卡| 久久综合丝袜日本网| 国产激情影院| 亚洲美女视频一区| 亚洲一区二区在线无码| 激情爆乳一区二区| 啪啪啪亚洲无码| 人妻无码中文字幕第一区| 另类专区亚洲| 日本高清免费一本在线观看 | 日韩福利在线视频| 日本a级免费| 特级精品毛片免费观看| 超清无码一区二区三区| av在线手机播放| 国产永久免费视频m3u8| 久久一本日韩精品中文字幕屁孩| 91福利免费视频| 青青草原国产精品啪啪视频| 欧美有码在线| 日本道中文字幕久久一区| 激情综合网址| 亚洲成人在线免费| 国产真实自在自线免费精品| 成人午夜视频在线| 亚洲日韩AV无码一区二区三区人| 国产无遮挡裸体免费视频| www.亚洲一区| 一边摸一边做爽的视频17国产 | 午夜激情婷婷| 青草视频网站在线观看| 超级碰免费视频91| 亚洲第一视频区| 在线观看视频99| 99re精彩视频| 成人免费黄色小视频| 在线不卡免费视频| 婷婷色在线视频| 亚洲大尺度在线| 亚洲一区黄色| 99热这里只有精品在线观看| 男女男免费视频网站国产| 午夜国产小视频| 亚洲黄网在线| 亚洲人成影院午夜网站| 国产女人综合久久精品视| 欧美区一区二区三| 三上悠亚在线精品二区| 狠狠色香婷婷久久亚洲精品| 尤物亚洲最大AV无码网站| 亚洲一级毛片免费看| 一级毛片免费观看久| 青草91视频免费观看| 欧美日韩第三页| 91成人在线免费观看| 毛片免费网址| 欧美综合区自拍亚洲综合绿色 | 国产xx在线观看| 色悠久久久久久久综合网伊人| 久久性视频| 国产黄在线免费观看|