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

基于EP9315的WindML3.0顯示驅動開發?

2011-04-02 06:54:44曾慶遠
電訊技術 2011年12期
關鍵詞:設備

曾慶遠

基于EP9315的WindML3.0顯示驅動開發?

曾慶遠

(中國西南電子技術研究所,成都610036)

為滿足目前高集成度嵌入式平臺下對功能性要求日益復雜和開發周期進一步縮短的需求,以ARM9處理器EP9315構建的平臺為實例,介紹了一種VxWorks實時嵌入式操作系統下標準多媒體開發庫WindML的顯示驅動開發方法和要點。描述了從驅動的安裝介入、初始化、繪圖函數的編寫和硬件加速功能的引入等方面內容,可為工程應用中顯示控制功能的開發提供參考。

嵌入式平臺;顯示驅動;多媒體開發庫;硬件加速

1 引言

隨著嵌入式硬件平臺和嵌入式操作系統的高速發展,嵌入式環境下對顯示應用的需求也逐步進入到一個日趨復雜化、標準化和可定制化的階段。顯示驅動程序作為顯示應用的底層基礎在所有嵌入式操作系統和圖形應用開發庫中都是不可或缺的組成部分。

在目前的工程應用中,顯示驅動的開發主要依賴顯示芯片生產商和操作系統開發商的支持。在VxWorks實時嵌入式操作系統下,可獲取的顯示驅動在支持的顯示控制器型號的廣泛性和對顯示控制器硬件功能利用的充分性方面都遠不及Windows和Linux等主流操作系統。而嵌入式應用中的高定制性和可裁剪性的需求造成硬件平臺的多樣化要求開發者在短周期內開發移植出適應不同平臺的顯示驅動程序[1]。

WindML是VxWorks下一個基本的標準多媒體應用開發包,其對顯示功能的支持能滿足絕大部分條件下的2D顯示應用和部分3D顯示應用,并且其顯示驅動程序能夠作為底層的驅動向更上層的圖形開發庫提供支持,是VxWorks下最為基礎的顯示驅動程序[2,3]。

本文首先介紹和分析了WindML的顯示驅動架構、配置方法和標準驅動接口函數的結構和編寫,然后描述了部分繪圖函數的實現并重點介紹了此過程中硬件加速功能的引入和實現,最后提出了開發中的一些要點和易遺漏失誤的問題。

2 W indML顯示驅動架構分析

WindML驅動在整個VxWorks操作系統中所處的位置和作用機制[4]如圖1所示。

WindML顯示驅動的主要任務是顯示控制邏輯、同步時序的管理、顯示圖像數據的產生和顯示緩沖區的填充和管理[4]。

顯示控制器硬件設備負責顯示的時鐘、同步、使能等控制信號的產生以及從顯示緩沖區到顯示屏的顯示數據傳輸。WindML顯示驅動首先要實現對顯示控制器的初始化和顯示控制。

顯示圖形數據的產生由WindML的API調用WindML驅動中的繪圖API函數實現,圖形可以直接繪制到顯示緩沖區或繪制到系統內存再搬移到顯示緩沖區。系統內存管理同WindML存儲區的協調分配由WindML的存儲池管理機制來實現,最終呈現在顯示設備上的畫面其實就是顯示緩沖區中窗口的內容[5]。

通過層層調用來操作緩沖區會在進行大規模搬移和填充的時候耗費較長的時間,使得顯示畫面的刷新延遲或者在畫面上留下作圖的痕跡,因此需要一種機制使得顯示驅動程序可以直接操作緩沖區,通過DMA方式對緩沖區進行快速的搬移和填充等操作,減輕CPU的負擔,這就是硬件顯示加速功能。同時,具有GPU的平臺可以利用GPU在圖形運算方面的速度優勢輔助或取代CPU進行顯示圖形產生的運算,再直接填充到顯示緩沖區,實現顯示內容的高速操作。

WindML具體的顯示驅動架構如圖2所示。

在WindML的圖形驅動源代碼中,通過定義一個標準的驅動控制結構體來注冊全部的基本繪圖函數,而顯示器同步控制邏輯和顯示緩沖區的產生全部由WindML初始化函數中的圖形驅動初始化函數實現[6]。下面將介紹顯示驅動開發的具體方法。

3 詳細驅動程序開發

本節以EP9315為核心的嵌入式平臺為例,介紹WindML顯示驅動開發的詳細方法和步驟。

3.1 W indML配置

在具體開發WindML顯示驅動之前,需要對WindML進行配置,目的是在WindML中裝入自己的顯示驅動程序,使得在編譯WindML時能將自己的驅動程序編入整個WindML的驅動包[7]。

首先需要修改WindML配置數據庫中文件:\$Windbase\host\resource\windML\config\database\windML-OUTPUT-DB.cfg

在這個文件中按上下文模板的格式插入自己的顯示器相關信息。

接著在同一目錄中創建自己的顯示驅動設備的配置文件,格式參考此目錄中其它顯示設備配置文件。其中重要的幾個配置參數如下:

(1)XX.OUTPUTTYPE:應該為上一步中插入的自己的顯示器設備名稱;

(2)XX.DIR:為顯示驅動程序的源碼存放目錄名稱,配置后編譯WindML時才會將此目錄中自己所開發的驅動程序源代碼編譯到WindML驅動庫中,該目錄應在target\src\ugl\driver\graphics\目錄中創建;

(3)XX.HEADER:驅動程序頭文件路徑和文件名,配置后WindML編譯時將會在這個頭文件中搜索一個名為UGL-GRAPHICS-CREATE的宏定義項,該項宏定義所指向的函數會作為整個顯示驅動程序的入口函數被裝入,圖形顯示設備的注冊、初始化和其它各種標準操作的驅動函數都將在這個函數中被注冊;

WindML顯示驅動數據結構全部包含在一個名為UGL-UGI-DRIVER的結構體中,接口函數UGL

GRAPHICS-CREATE所進行的操作就是創建這樣一個結構體并為其各個成員函數賦值。結構體初始化完成之后,WindML就從這個結構體中搜索所需用到的函數進行相應的操作。

完成上面幾步的配置之后,可以在WindML配置工具中發現新增的配置項,按此配置項對WindML進行編譯就能夠選取并裝入自己所開發的驅動程序。

通過上面分析可知,從代碼層面來看,顯示驅動開發的具體工作就是對UGL-UGI-DRIVER結構體中各個操作函數進行編寫開發。

3.2 顯示控制時序邏輯的實現

要在目標顯示器上進行相關內容的顯示,首先要對顯示控制器進行配置,使之輸出符合顯示器所需時序的控制和數據信號,該步驟包含顯示控制信號的產生和顯示緩沖區的定義和初始化[8]。

在UGL-UGI-DRIVER結構中,modeAvailGet和modeSet函數用于實現顯示控制設備的初始化和模式控制。modeAvailGet將讀取用戶指定的標準格式數組以獲取顯示設備的像素點個數、色深、色彩模式和刷新頻率等信息并返給WindML,而modeSet調用用戶提供的顯示控制器初始化函數按modeAvailGet函數獲取的顯示設備信息對顯示控制器進行配置。顯示控制器初始化函數將完成顯示控制時序信號和顯示緩沖區的配置。

一般來講,顯示控制器輸出到顯示屏的控制同步信號包括主顯示時鐘信號、行同步信號、幀同步信號、數據使能信號和RGB顯示數據。一般在mode-

Set函數中調用顯示控制器初始化函數來按照顯示設備的輸入規范設置顯示控制器的各寄存器,從而產生符合要求的時序邏輯控制信號,而顯示數據則依賴于顯示緩沖區的設置。從顯示控制器到顯示屏的顯示數據傳輸由DMA方式完成,數據源就是顯示緩沖區。顯示緩沖區應該是一塊空間足夠大、地址連續并且能夠高速讀寫的存儲器空間,其大小至少應該為像素點總個數乘以每個像素點所占據的存儲空間大小,而雙buffer和多buffer的顯示策略則需要更大空間的顯示緩沖區。顯示緩沖區可以是一塊獨立的存儲器芯片,一般為SDRAM等高速存儲器,也可以從嵌入式系統運行內存空間中劃取。利用顯示控制器提供的寄存器,通過設置顯存起始地址值和大小就可以設定顯存的位置。需要注意的是,由于數據傳輸采用了DMA方式,因此這塊地址區域的起始值應該符合DMA傳輸的要求,一般需要為字對齊方式。

在顯示驅動開發過程中這個部分主要實現的目的就是將顯示緩沖區中的圖形數據按照所約定的規范映射到顯示設備上去,使得繪圖等對顯示緩沖的操作能直接反映在顯示屏上。

3.3 基本作圖函數

WindML的顯示驅動結構UGL-UGI-DRIVER中,除了一些控制和存儲管理函數之外,總共定義了54個基本作圖操作相關的函數,包含了點、直線、矩形框、矩形塊、橢圓、光標、頁面和位圖等基本圖形以及色彩格式的轉換和顏色查找表等內容。每類圖形包含數個操作函數。這些函數在利用WindML進行作圖時將被上層API反復多次調用,因此,基本作圖函數代碼的效率將直接決定顯示驅動程序的質量。

WindML提供了基本作圖函數的參考集。為了兼容全部的顯示控制硬件設備,這些函數全部采用軟件運算作圖方式,即按一定的算法對所需繪制的圖形進行一個個像素點的運算并寫入顯存,以此在顯存中產生所需的顯示數據。這種操作方式雖然具有兼容性上的優勢,但其運算量大,操作繁雜,極大地加重了CPU的負擔,要實現流暢的畫面顯示對CPU的運算能力要求很高。

在開發WindML顯示驅動的過程中,應該根據顯示控制器提供的功能,對這部分函數代碼進行改寫,通過使用硬件加速功能來提高驅動程序的效率。這也是整個驅動開發過程中代碼工作量最大的部分,要求開發人員對硬件設備和WindML驅動原理和結構都有較深刻的認識。

利用硬件提供的加速功能進行的繪圖過程,無論是代碼復雜度還是操作效率都遠高于純軟件方式的緩沖區操作。因此,盡可能地將硬件提供的加速功能應用到WindML標準驅動結構中去,是WindML顯示驅動開發的最重要工作。

4 一些難點和易遺漏問題的分析

筆者根據在WindML顯示驅動開發過程的一些經驗,總結了以下幾點開發過程中的難點和易遺漏問題。

(1)關于DMA和Cache

由于在顯示數據從顯存到顯示屏的傳輸和顯示驅動硬件加速過程中都大量采用了DMA的操作方式,在進行驅動程序開發的過程中必須時刻注意DMA操作同CPU的Cache處理之間的協調,避免引起Cache維護的數據同實際存儲器數據不一致的問題,給顯示應用造成失誤。在所有驅動程序函數中,每一次的DMA操作前都應該手動同步Cache和存儲器空間,使DMA傳輸的源和目標地址的存儲器存儲內容與Cache一致,均確實為用戶所指定的數據內容。

(2)關于幀刷新同步和中斷

根據顯示屏的刷新頻率,每一次顯示內容的刷新都將耗費一定的時間按照行列的順序逐點來掃描完成。如果在這個過程中顯示緩沖區的內容發生了變化,那么以緩沖變化的時間點為界的顯示上下文內容就會不一致,造成顯示上的混亂。這種狀況在進行頻繁顯示畫面刷新的情況下(如動畫顯示等應用時)表現得比較明顯,這就需要一種機制來進行協調,使得顯示緩沖區的寫入總是在幀顯示使能信號為非使能電平時完成的。

EP9315提供一個系統中斷來解決這個問題。用戶可以指定在幀同步計數器遞減計數到任意值時產生一個顯示控制器中斷。將這個計數值設置為幀顯示使能信號跳變為非使能電平后的一個值來產生所需的中斷,并在接收到中斷信號后才進行顯示緩沖區內容的寫入就可以避免問題的發生。在進行buffer切換等緩沖區內容大量改變的操作時更是必須采用這樣的同步策略,否則會給顯示畫面帶來閃爍和殘像等明顯的問題。

(3)關于開發側重點

由于嵌入式平臺下的顯示應用和PC平臺不同,均具有很強的方向性。因此,在進行驅動開發時應根據應用的需求具有一定的側重點。例如在進行大量文字顯示的應用中,由于WindML的字體引擎是基于點陣字庫的,而點陣字庫中每個字符都以單色位圖的形式存在,因此字體的操作其實就是單色位圖在指定屬性的顯示設備上進行顯示的操作[9]。在此情況下單色位圖相關的作圖函數應該作為顯示驅動開發的側重點來進行,而針對其它應用很少或根本不顯示的圖元作圖函數,即使使用WindML參考庫中的純軟件作圖方式來進行這些很少用到的操作,也對整個系統的性能影響很小。

當然,一個完善的顯示驅動應該對驅動程序的所有內容都作最大程度的優化,但在實際工程中考慮到開發周期等問題,驅動開發工作必須選取一些側重點。

5 結束語

本文方法將主要應用于對顯示控制功能開發有一定復雜性和通用性需求的工程中,能夠幫助構建具有完整2D顯示功能的顯控平臺。文章在介紹WindML顯示驅動開發的過程中,著力于原理、方法和思路的介紹,并重點描述了硬件加速功能的引入和利用,同時指明了開發環節中的各個關鍵點,使整個驅動程序架構更加完整明了,開發流程和方法步驟更清晰。雖然本文的撰寫基于EP9315硬件平臺,但其原理和方法具有較強的通用性。

[1]熊毅,李海山,廖容.WindML顯卡驅動程序設計[J].計算機與數字工程,2008,36(7):175-177.

XIONGYi,LIHai-shan,LIAO Rong.WindML Graphics Device Driver Development[J].Computer&Digital Engineering,2008,36(7):175-177.(in Chinese)

[2]余彬,靳力,曾翔.WindML顯示技術的優勢和實現[J].艦船電子工程,2005,25(4):72-74.

YU Bin,JIN Li,ZENGXiang.Superiority and Realization of WindML[J].Ship Electronic Engineering,2005,25(4):72 -74.(in Chinese)

[3]趙漫菲,王光輝.基于WindML的界面開發在工程中的應用[J].計算機工程與設計,2006,27(3):522-524,540.

ZHAO Man-fei,WANG Guang-hui.Application of WindML graphics development technology in engineering[J].Computer Engineering and Design,2006,27(3):522-524,540.(in Chinese)

[4]李海亮,石鵬程.VxWorks的WindML圖形界面程序的框架分析[J].工業控制計算機,2007,20(1):46-49.

LIHai-liang,SHI Peng-cheng.Analysis of WindML Graphical Interface Program Frame on VxWorks[J].Industri-al Control Computer,2007,20(1):46-49.(in Chinese)

[5]WindRiver.WindML3.0 release notes[M].[S.1.]:WindRiver,2002.

[6]WindRiver.WindML3.0 apireference[M].[S.1.]:WindRiver,2002.

[7]申成祎,吾守爾·斯拉木.基于VxWorks操作系統的WindML 2D顯示方案[J].電腦開發與應用,2004,17(10):472-473,478.

SHEN Cheng-wei,Woxur SILAMU.Display Scheme of WindML 2D based on VxWorks Operating System[J].Computer Development&Applications,2004,17(10):472-473,478.(in Chinese)

[8]張雷,任恩恩.WindML工業平臺下開發S1d13506驅動及顯示功能的實現[J].工業控制計算機,2006,19(12):39-40,73.

ZHANG Lei,REN En-en.Developmentof S1d13506 Driver and Display Programm UnderWindML[J].Industrial Control Computer,2006,19(12):39-40,73.(in Chinese)

[9]梁小琴,王峰.WindML漢字顯示技術[J].國外電子測量技術,2008,27(2):51-53.

LIANG Xiao-qin,WANG Feng.Display technology of Chinese characters in WindML[J].Foreign Electronic Measurement Technology,2008,27(2):51-53.(in Chinese)

Development of Graphic Drivers for WindM L3.0 Based on EP9315

ZENGQing-yuan
(Southwest China Institute of Electronic Technology,Chengdu 610036,China)

To satisfy the requirement of functional complexity and reduction of developing periods in the field of highly integrated embedded system,this paper presents amethod and some kernel points of the graphic drivers development based on WindML,amultimedia developing library in the embedded operating system VxWorks,by taking an example of hardware platform constructed by the ARM9 processor EP9315.The presentation contains the description of the installation and initialization,programing of plotting function and importing of the hardware acceleration about the graphic drivers,in order to offer some reference for the application of display and control function development in projects.

embedded platform;graphic drivers;multimedia developing library;hardware acceleration

the B.S.degree and the M.S.degree from University of Electronic Science and Technology of China in 2005 and 2009,respectively.He is now an assistant engineer.His research interests include computer communication and digital integrated circuit.Email:zengqingyuan@vip.qq.com

1001-893X(2011)12-0092-05

2011-06-30;

2011-11-03

TP311

A

10.3969/j.issn.1001-893x.2011.12.019

曾慶遠(1983—),男,四川成都人,分別于2005年和2009年獲電子科技大學學士學位和碩士學位,現為助理工程師,主要研究方向為計算機通信與數字集成電路。

ZENGQing-yuan was born in Chengdu,Sichuan Province,in 1983.He

猜你喜歡
設備
諧響應分析在設備減振中的應用
調試新設備
當代工人(2020年13期)2020-09-27 23:04:20
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
廣播發射設備中平衡輸入與不平衡輸入的轉換
電子制作(2018年10期)2018-08-04 03:24:48
食之無味,棄之可惜 那些槽點滿滿的可穿戴智能設備
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
HTC斥資千萬美元入股虛擬現實設備商WEVR
IT時代周刊(2015年8期)2015-11-11 05:50:37
Automechanika Shanghai 2014 之“看” 汽保設備篇
如何在設備采購中節省成本
主站蜘蛛池模板: 亚洲欧洲免费视频| 国产欧美视频在线| 五月激情婷婷综合| 色婷婷综合在线| 久久综合久久鬼| 成人免费视频一区二区三区| 日本高清成本人视频一区| 欧美一区二区三区不卡免费| 久久精品国产亚洲麻豆| 99re在线免费视频| 久久性视频| 国产免费网址| 精品一區二區久久久久久久網站| 亚洲国产午夜精华无码福利| 国产SUV精品一区二区| 久久伊人操| 亚洲人成网址| 日韩欧美高清视频| 九色国产在线| 国产18页| 亚洲不卡影院| 欧美精品二区| 不卡的在线视频免费观看| 99999久久久久久亚洲| 精品国产成人三级在线观看| 97色伦色在线综合视频| 久久精品亚洲专区| 国产一区二区在线视频观看| 中文无码日韩精品| 欧美色视频在线| 国产二级毛片| 国产一级在线播放| 在线观看无码av五月花| 亚洲天堂免费在线视频| 欧美日韩激情在线| 国产成人久久777777| 91视频国产高清| 亚洲日本在线免费观看| 免费无码在线观看| 91丝袜在线观看| 亚洲国产日韩一区| 精品久久久久久成人AV| 国产精品主播| 国产在线视频福利资源站| 伊人中文网| 亚洲三级色| 亚洲精品成人片在线观看| 国产91丝袜在线观看| 国产日韩丝袜一二三区| 农村乱人伦一区二区| 国语少妇高潮| 欧美人与性动交a欧美精品| 日本欧美一二三区色视频| 熟女日韩精品2区| 好久久免费视频高清| 国产高清在线观看91精品| 青青草一区| 精品无码人妻一区二区| 成人午夜视频网站| 69综合网| 国产成人精品免费视频大全五级| 国产尤物视频网址导航| 精品一区二区无码av| av免费在线观看美女叉开腿| 在线网站18禁| 四虎亚洲国产成人久久精品| 伊在人亚洲香蕉精品播放| 午夜欧美在线| 亚洲国产成人自拍| 中文字幕1区2区| 狼友av永久网站免费观看| 米奇精品一区二区三区| 亚洲国产中文欧美在线人成大黄瓜| 就去色综合| 996免费视频国产在线播放| 欧美国产日韩在线| 亚洲无码视频图片| 99精品视频九九精品| 午夜性刺激在线观看免费| 国产成人精品18| 亚洲精品国产综合99久久夜夜嗨| 婷婷六月综合|