色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 光電顯示 > 設(shè)計(jì)應(yīng)用 > 基于DM6446的Windows CE顯示驅(qū)動(dòng)設(shè)計(jì)實(shí)現(xiàn)

          基于DM6446的Windows CE顯示驅(qū)動(dòng)設(shè)計(jì)實(shí)現(xiàn)

          作者: 時(shí)間:2012-09-18 來(lái)源:網(wǎng)絡(luò) 收藏

          摘 要: 是一款有著豐富外設(shè)資源和強(qiáng)大計(jì)算能力的多媒體處理芯片,一般需要通過(guò)操作系統(tǒng)對(duì)其復(fù)雜資源進(jìn)行有效管理。由于多數(shù)多媒體應(yīng)用需要有圖形界面,但現(xiàn)有平臺(tái)操作系統(tǒng)Linux 其內(nèi)核和圖形界面是分離的,需要另外移植,相比之下WIN本身自帶了較為優(yōu)秀的圖形界面,只需對(duì)其進(jìn)行的開(kāi)發(fā)就能擁有一個(gè)優(yōu)秀的圖形界面。詳細(xì)闡述了WIN原理和在上的。系統(tǒng)啟動(dòng)后WIN圖形界面運(yùn)行穩(wěn)定,表明程序良好。

          本文引用地址:http://cafeforensic.com/article/167501.htm

            作為一款多媒體處理芯片,TI公司推出的 采用ARM+DSP 的雙內(nèi)核架構(gòu),有著豐富的外設(shè)資源和強(qiáng)大的計(jì)算能力,因此一般通過(guò)操作系統(tǒng)對(duì)其復(fù)雜資源進(jìn)行有效管理。DM6446現(xiàn)有平臺(tái)操作系統(tǒng)主要嵌入式linux 系統(tǒng),但同時(shí)也有支持其他主流嵌入式操作系統(tǒng)的能力。

            由于多媒體應(yīng)用常常需要有圖形界面,而現(xiàn)有平臺(tái)操作系統(tǒng)Linux其內(nèi)核和圖形界面是分離的,需要進(jìn)行另外移植,相比之下 CE本身自帶了較為優(yōu)秀的圖形界面,只需對(duì)其進(jìn)行驅(qū)動(dòng)的開(kāi)發(fā)就能擁有一個(gè)優(yōu)秀的圖形界面。因此選擇在DM6446進(jìn)行其他系統(tǒng)的移植開(kāi)發(fā)無(wú)疑能使該平臺(tái)程序開(kāi)發(fā)具有更多的選擇余地和更高的性價(jià)比。

             CE是Microsoft公司專門(mén)針對(duì)嵌入式產(chǎn)品領(lǐng)域開(kāi)發(fā)的嵌入式操作系統(tǒng),具有圖形用戶界面出色、多任務(wù)處理能力、可裁剪性和可移植性、應(yīng)用軟件支持豐富、實(shí)時(shí)性良好等特點(diǎn)。本文選用的 CE版本為Windows CE.NET 5.0,以下簡(jiǎn)稱為WINCE.

            1 DM6446芯片及其顯示模塊介紹

            1.1 DM6446芯片簡(jiǎn)介

            DM6446 芯片,如下圖1所示,由ARM子系統(tǒng)、DSP子系統(tǒng)、VICP協(xié)處理器、視頻處理子系統(tǒng)和眾多的芯片外設(shè)組成。其中ARM 核用作整個(gè)系統(tǒng)的控制功能,DSP 子系統(tǒng)用于復(fù)雜的數(shù)據(jù)和圖像處理功能,視頻處理子系統(tǒng)用于和圖像輸入和輸出。這些模塊的聯(lián)系通過(guò)中心資源交換通道(Switch CentralResources,SCR) 進(jìn)行管理。

          圖1 DM6446 芯片總體架構(gòu)

          圖1 DM6446 芯片總體架構(gòu)

            1.2 芯片顯示模塊功能介紹

            DM6446 顯示模塊又稱為視頻處理后端(VPBE,Video Processing Back End),為芯片視頻處理子系統(tǒng)的一部分。VPBE 總體結(jié)構(gòu)如圖2 所示。由圖2 可以看出,VPBE主要由1 個(gè)OSD (On Screen Display)引擎和1 個(gè)視頻編碼器(VENC,Video ENCoder)組成。OSD引擎可以處理2個(gè)獨(dú)立的視頻窗口和兩個(gè)獨(dú)立的OSD窗口,VENC視頻編碼器則能提供四路視頻數(shù)據(jù)轉(zhuǎn)換,工作頻率高達(dá)54MHz,兼容NTSC/PAL制式視頻和S-Video.

          圖2 DM6446 顯示模塊總體架構(gòu)

          圖2 DM6446 顯示模塊總體架構(gòu)。

            DM6446 視頻編碼器還能夠向RGB888 的顯示設(shè)備提供24 bit的數(shù)字視頻輸出接口,支持8/16為的BT.656 輸出和垂直/水平同步分離的CCIR.601.

            OSD 模塊的視頻信號(hào)在輸出之前會(huì)經(jīng)過(guò)合成然后送到VENC最終轉(zhuǎn)變成YCbCr格式輸出。視頻數(shù)據(jù)是建立在外部存儲(chǔ)器DDR2的,并直接送到顯示設(shè)備作顯示。從DAC出來(lái)就可以通過(guò)RCA端子接上LCD液晶電視。更詳細(xì)的硬件說(shuō)明可參考TI 的官方數(shù)據(jù)手冊(cè)TMS320DM644x DMSoC Video Processing BackEnd (VPBE) User's Guide.pdf.

          2 WINCE驅(qū)動(dòng)架構(gòu)分析

            將WINCE 移植到DM6446 上面除了需要進(jìn)行OAL層的代碼和源碼配置文件的編寫(xiě)以外,還需進(jìn)行大量的設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)。

            2.1 WINCE驅(qū)動(dòng)原理

            設(shè)備驅(qū)動(dòng)程序作為一個(gè)抽象物理設(shè)備或虛擬設(shè)備的功能程序,它管理設(shè)備的操作,并將設(shè)備的功能導(dǎo)出給應(yīng)用程序和操作系統(tǒng)。因此用戶程序訪問(wèn)這些硬件設(shè)備只需要通過(guò)調(diào)用驅(qū)動(dòng)程序提供的接口函數(shù)。

            WINCE 的所有設(shè)備驅(qū)動(dòng)程序都是以用戶態(tài)下動(dòng)態(tài)鏈接庫(kù)(Dynamic Linkable Library,DLL)文件形式存在的。像所有的Windows DLL一樣,DLL是無(wú)法單獨(dú)被加載和運(yùn)行的。如果要運(yùn)行DLL 中的代碼,必須有一個(gè)EXE 進(jìn)程首先把該 DLL 加載到自己的地址空間內(nèi),然后才可以執(zhí)行DLL 中的代碼。WINCE 下的驅(qū)動(dòng)程序也必須被其他EXE加載。

            2.2 WINCE驅(qū)動(dòng)分類

            WINCE的驅(qū)動(dòng)程序有兩種模型:本地設(shè)備驅(qū)動(dòng)程序(Native Device Driver) 和流接口驅(qū)動(dòng)( Streams Device Driver) 程序。本機(jī)設(shè)備驅(qū)動(dòng)程序適用于集成到WINCE平臺(tái)的設(shè)備,總是在WINCE的平臺(tái)啟動(dòng)時(shí)被加載;流接口驅(qū)動(dòng)程序也稱為可安裝的驅(qū)動(dòng)程序,它們使用流接口驅(qū)動(dòng)并借助于文件系統(tǒng)調(diào)用(如Createfile,DeviceIoControl等)從設(shè)備管理器或應(yīng)用程序獲得命令。本文討論的顯示驅(qū)動(dòng)屬于本地設(shè)備驅(qū)動(dòng)程序。

            而從驅(qū)動(dòng)方式來(lái)區(qū)分,無(wú)論流接口驅(qū)動(dòng)還是本地驅(qū)動(dòng)設(shè)備驅(qū)動(dòng),都可以采用兩種實(shí)現(xiàn)方式:?jiǎn)误w結(jié)構(gòu)方式和分層結(jié)構(gòu)方式,它們都向上提供DDI (Device Driver Interface)調(diào)用,供其他模塊或應(yīng)用程序調(diào)用。無(wú)論采用哪種結(jié)構(gòu),驅(qū)動(dòng)程序都必須與其控制設(shè)備的DDI 相一致。DDI是與WINCE 系統(tǒng)的接口,流接口設(shè)備的DDI 都是流接口函數(shù)。

            3 顯示驅(qū)動(dòng)的實(shí)現(xiàn)

            3.1 顯示驅(qū)動(dòng)的加載管理

          圖3 WINCE顯示驅(qū)動(dòng)主體架構(gòu)示意圖

          圖3 WINCE顯示驅(qū)動(dòng)主體架構(gòu)示意圖。

            WINCE下的驅(qū)動(dòng)程序必須被其他EXE加載,顯示驅(qū)動(dòng)也不例外。WINCE 顯示驅(qū)動(dòng)在系統(tǒng)啟動(dòng)時(shí)由GWES.exe 加載和管理,并駐留在GWES 的進(jìn)程地址空間內(nèi)。如圖3 所示,GWES 子系統(tǒng),由GDI 和DirectDraw兩部分組成,為運(yùn)行在操作系統(tǒng)之上的應(yīng)用程序提供圖形功能的系統(tǒng)調(diào)用,例如CreateDC,ReleaseDC等等。GWES加載顯示驅(qū)動(dòng)的具體過(guò)程如下:GWES啟動(dòng)時(shí)將去訪問(wèn)候選顯示設(shè)備列表(該列表在注冊(cè)表HKEY_LOCAL_MACHINESystemGDIDisplayCandidates下面),看看是否有驅(qū)動(dòng)程序已經(jīng)在本機(jī)上實(shí)例化,如果有的話GWES 會(huì)使用它找到的第一個(gè)已經(jīng)實(shí)例化的驅(qū)動(dòng);如果驅(qū)動(dòng)程序沒(méi)有在本機(jī)上實(shí)例話或者找不到合適的驅(qū)動(dòng)程序,接下來(lái)GWES嘗試加載Ddi.dll.默認(rèn)情況下加載的是Ddi.dll,但如果存在KEY_LOCAL_MACHINESystemGDIDriversDisplay項(xiàng),GWES會(huì)加載此注冊(cè)表項(xiàng)所指定的顯示驅(qū)動(dòng)。


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

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉