<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式Linux下S3C2410的調色板彩色顯示

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

作者: 時(shí)間:2010-06-02 來(lái)源:網(wǎng)絡(luò ) 收藏
用戶(hù)編程時(shí),應首先對進(jìn)行初始化處理(可由操作系統提供的驅動(dòng)程序來(lái)完成),賦予256色相應的顏色值;在進(jìn)行圖像編程時(shí),可以將圖像對象賦予所需的顏色索引值。程序運行時(shí),由芯片的LCD控制器查找,按相應的值進(jìn)行輸出。芯片圖像數據輸出端口VD[23:O]有24位,當使用不同的色彩深度時(shí),這24位數據可以表示一個(gè)或多個(gè)點(diǎn)的顏色信息。
1.3 調色板顏色的選擇
調色板中顏色的選擇可以由用戶(hù)任意定義,但為了編程方便,顏色的選取應遵循一定的規律。例如在Windows編程中,系統保留了20種顏色。另外,在Web編程中,也定義了216種Web安全色,這些顏色可以盡量保留。2調色板在系統下的使用ARM實(shí)現圖像時(shí),由LCD控制器將存儲系統中的視頻緩沖內容以及各種控制信號傳送到外部LCD驅動(dòng)器,然后由LCD驅動(dòng)器實(shí)現圖像數據的。實(shí)際應用中,常通過(guò)驅動(dòng)程序由操作系統對寄存器、調色板進(jìn)行配置。以 2.4內核為例,對調色板的配置是在驅動(dòng)程序fb.c中完成的。
在一些公司源碼包的S3C2410fb.c文件中,并沒(méi)有對調色板進(jìn)行配置,因此在8位以下的設置下。LCD不能正常工作。若需要使用調色板,必須對此文件進(jìn)行修改。
2.1 驅動(dòng)程序的修改
查S3C2410數據手冊,調色板的物理起始地址為0x4d000400,應先將調色板的物理地址映射到內核中的虛擬地址,然后對其進(jìn)行賦值。具體步驟如下:
(1)在S3C2410.h文件中添加:
#define MYPAL(Nb)__REG(Ox4d000400+(Nb)*4)
其作用是實(shí)現物理地址到虛擬地址的映射。
(2)在S3C24lOfb.h文件,通過(guò)下列語(yǔ)句定義256種顏色。
static const u_short my_color[256]={0x0000,0x8000,…}:
數組中的每個(gè)16位二進(jìn)制數表示一種顏色,RGB分量采用的是5:6:5格式。
(3)在S3C2410fb.c文件的S3C2410fb-activate_var(…)函數中,通過(guò)下列語(yǔ)句對這256個(gè)調色板進(jìn)行賦值。

(4)另外,注意改變LCD控制寄存器LCDCON1的BPPMODE值,設定為需要的顏色深度。
(5)重新編譯內核,燒寫(xiě)內核。
2.2 應用程序的編寫(xiě)
當S3C2410用于Linux操作系統時(shí),其圖形功能一般是依靠幀緩存(Frame buffer)實(shí)現的。屏幕上的每個(gè)點(diǎn)都被映射成一段線(xiàn)性?xún)却婵臻g,通過(guò)應用程序改變這段內存的值,就可以改變屏幕的顏色。當色深在16位以上時(shí),用戶(hù)直接指定顏色的RGB分量;當色深在8位以下時(shí),用戶(hù)應當指定顏色在調色板中的索引值。
當使用MiniGUI等圖形系統時(shí),只需要將界面元素的顏色值設為所需顏色的索引值即可。例如:
WinElementColors[i]=142;
就是將WinElementColors[i]的顏色設置為索引號為142的調色板顏色。

3 結語(yǔ)
在筆者開(kāi)發(fā)的某型指揮車(chē)仿真終端中,其顯示分辨率設置為640×480。如果色深設置為16 b/p,在系統使用時(shí),畫(huà)面將會(huì )出現明顯的抖動(dòng)、不連貫,這是由于芯片的運算負荷過(guò)重造成的。如果按本文中提到的方法對顯示驅動(dòng)加以修改,采用8位色深顯示,顏色的選取可以滿(mǎn)足需要,畫(huà)面的顯示將明顯穩定。這說(shuō)明,在顯示分辨率較高,色彩種類(lèi)要求比較簡(jiǎn)單的嵌入式應用中,調色板技術(shù)是一個(gè)非常值得重視的選擇。

本文引用地址:http://dyxdggzs.com/article/151827.htm
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>