前言 嵌入式技術(shù)是21世紀(jì)最具生命力的新技術(shù)之一,經(jīng)過(guò)近幾年的快速發(fā)展,已經(jīng)成為電子信息產(chǎn)業(yè)中最具增長(zhǎng)力的一個(gè)分支,隨著手機(jī)、掌上電腦、 GPS、電視機(jī)頂盒、高清播放器等新興產(chǎn)品的大量應(yīng)用,展現(xiàn)了嵌入式技術(shù)的活力,其中高清播放類的多媒體產(chǎn)品越來(lái)越多的應(yīng)用,本項(xiàng)目將根據(jù)具體的硬件來(lái)定制對(duì)應(yīng)兼容的 Windows CE操作系統(tǒng)。由于 MIPS內(nèi)核處理器具有體積小、高性能、低功耗、低成本等一系列優(yōu)點(diǎn),而且微處理器SMP8634的內(nèi)核具有高清解碼芯片,所以本項(xiàng)目采用基于32位MIPS核的微處理器SMP8634與Windows CE相結(jié)合共同構(gòu)建了一個(gè)多媒體嵌入式系統(tǒng)。特別目前網(wǎng)絡(luò)已經(jīng)遍及千家萬(wàn)戶,人們可以很方便的使用網(wǎng)絡(luò),如果多媒體播放器具備網(wǎng)絡(luò)傳輸播放高清視頻的功能,將能夠大大的拓展多媒體播放器的用途。 1 嵌入式Windows CE多媒體操作系統(tǒng)的硬件平臺(tái)概述 (1)MIPS微處理器 MIPS是世界上很流行的一種RISC處理器。MIPS的意思是“無(wú)內(nèi)部互鎖流水級(jí)的微處理器”(Microprocessor without interlocked piped stages),其機(jī)制是盡量利用軟件辦法避免流水線中的數(shù)據(jù)相關(guān)問(wèn)題。MIPS微處理器是目前僅次于ARM的用的最多的處理器之一,其應(yīng)用覆蓋了游戲機(jī),路由器,激光打印機(jī)及掌上電腦等方面。 SMP8634是Sigma Designs公司推出的新一代功能強(qiáng)大的 SoC芯片,其CPU內(nèi)核是由MIPS公司設(shè)計(jì)的MIPSII RISC處理器核。SMP8634高清芯片包含了一塊 mips 300MHZ的CPU,兩個(gè)解碼芯片,可以同時(shí)解碼兩路高清。多用于高清解碼和數(shù)字機(jī)頂盒等產(chǎn)品上。本方案選用該處理器就是由于其視頻,圖像處理能力強(qiáng)大。 (2) 基于MIPS 核的微控制器SMP8634系統(tǒng)存儲(chǔ)器 系統(tǒng)存儲(chǔ)器主要有NOR FLASH和SDRAM 兩大部分組成。本系統(tǒng)采用了64M的NOR FLASH和256M的DRAM。 (3)系統(tǒng)擴(kuò)展功能模塊 因?yàn)槭情_發(fā)多媒體播放器,其擴(kuò)展的功能模塊都是根據(jù)視頻解碼得輸入輸出需求來(lái)擴(kuò)展的,具體的見硬件原理圖(1)。 圖(1) SMP8634硬件原理圖 2 嵌入式Windows CE系統(tǒng)定制概述 (1)為什么要用 Windows CE系統(tǒng) 嵌入式操作系統(tǒng)目前有幾種,像Linux,VxWorks,PalmOS,Neculeus等。這些嵌入式操作各自有其特點(diǎn),本項(xiàng)目選擇 Windows CE是因?yàn)槎嗝襟w產(chǎn)品一般都是大眾消費(fèi)類產(chǎn)品,這就要求操作系統(tǒng)要美觀,易操作;大家習(xí)慣了臺(tái)式電腦上的 Windows操作系統(tǒng),而 Windows CE與 Windows操作起來(lái)比較接近,讓初次使用者容易很快上手。Windows CE操作系統(tǒng)也有其不足的地方,如源碼未完全開發(fā),版權(quán)費(fèi)等都是需要考慮到的問(wèn)題。在本項(xiàng)目中綜合考慮最終選擇了 Windows CE操作系統(tǒng)。 (2)內(nèi)核定制平臺(tái) Platform Builder的安裝與升級(jí) Windows CE具有組件可定制性,可以根據(jù)項(xiàng)目的需要定制所需的組件。我們采用的是Platform Builder4.0版本。在裝有 Windows XP SP2系統(tǒng)的開發(fā)機(jī)上安裝好 PlatformBuilder。 接著就要配置成多媒體的操作系統(tǒng),這就必須到微軟的網(wǎng)站下載升級(jí)包。在本項(xiàng)目中,相應(yīng)的我們選擇了 07年和 08年全年升級(jí)包,同時(shí)還要下載兩個(gè)多媒體包并安裝好升級(jí)包。接著安裝此開發(fā)板的BSP,再將 BSP相應(yīng)的.CEC文件拷貝到“\WINCE500\PUBLIC\COMMON\OAK\CATALOG\CEC”目錄中,這樣在 PB的配置組件目錄中將會(huì)有第三方組件選擇的條目。 (3) BootLoader BootLoader目前用的比較多的是U-Boot,而且 U-Boot也支持 MIPS架構(gòu),但是我們這里采用 MIPS公司開發(fā)的YAMON。由于用 YAMON作為 BootLoader的比較少,下面就詳細(xì)分析如何通過(guò) YAMON將程序下到開發(fā)板的 flash中去,如果我們想要將文件“file0.bin”寫入flash中的地址0位置: a、通過(guò) x86 linux中的uuencode命令將.bin文件轉(zhuǎn)換成.bin.uuencode文件 >uuencode file0.bin x > file0.bin.uuencode b、在 YAMON中輸入命令:YAMON>load uu 0xb0100000 C、到此,YAMON是一直等待來(lái)自串口的文件,使用 TeraTerm,選擇“File->Send File”,將“file0.bin.uuencode”文件通過(guò)串口發(fā)至 SMP8634開發(fā)板上。 d、當(dāng)下載完成以后,接收到的文件大小會(huì)在 YAMON中給出。 e、比較報(bào)告中的文件和 file0.bin文件的大小是否一致。 在做這項(xiàng)工作時(shí)應(yīng)該非常的仔細(xì),如果中間過(guò)程出問(wèn)題,可能會(huì)將 YAMON損壞并使目標(biāo)板不能啟動(dòng)。在這步完成后就開發(fā)機(jī)可以通過(guò)串口線來(lái)和目標(biāo)板進(jìn)行通信了。 (4)嵌入式多媒體操作系統(tǒng) Windows CE組件定制 根據(jù)硬件擴(kuò)展模塊,必須為操作系統(tǒng)添加新的組件,而該組件已經(jīng)在前面的多媒體升級(jí)包中一起添加到了Platform Builder開發(fā)平臺(tái)上。該操作系統(tǒng)應(yīng)具有如下特征: GDI輸出;DirectDraw的DDI支持;HD GDI和Video的輸出,LVDS輸出;IR控制,COM串口輸入,IIC,mini-PCI;硬盤,USB存儲(chǔ)設(shè)備;以太網(wǎng),RTL8139和 SMP8634 MAC ETH兩個(gè)設(shè)備,TCP/IP;視頻解碼;圖形解碼,硬件 JPEG解碼;系統(tǒng) WAV音頻輸出;網(wǎng)絡(luò)多媒體支持;Web服務(wù)器等。以上組件都是在定制中添加的,確定好這些組件就可以進(jìn)行系統(tǒng)的定制了,首先運(yùn)行 Platform Builder工具,建立一個(gè)新的工程,選擇“SMP863X:MIPSII”BSP,在工程模板中選擇“Networked Media Device”,接下來(lái)就可以按照需求來(lái)選擇組件定制操作系統(tǒng)。在配置完成后,添加了 KERNELNOSHAREETH,BSP_NOSHAREETH,BSP_KEYBD_NOP,BSP_SMP863X_IR四個(gè)環(huán)境變量,并將環(huán)境變量的值全部設(shè)定為1。完成此步驟后,運(yùn)行菜單中的“Build OS->Build and Sysgen”生成 NK.bin文件。但是此時(shí)的操作系統(tǒng)還不支持多媒體,必須將多媒體包添加到文件夾“WINCE500\PBWorkspace\(工程名)\SMP863X_MIPSII_Release”中。 為了使多媒體包的文件生效還必須分別修改 platform.bib,config.bib以及platform.reg注冊(cè)表文件。首先修改 platform.bib文件,在“;@CESYSGEN IF CE_MODUELS_DEVICE”這行加入KdbNopUS.dll,capsrc863x.dll等多媒體包里的 dll文件的設(shè)置,該項(xiàng)設(shè)置主要是在編譯操作系統(tǒng)的時(shí)候,編譯器可以自動(dòng)的找到這些 dll文件,并將其一起編譯進(jìn)系統(tǒng)中,格式如下: KdbNopUS.dll $(_FLATRELEASEDIR)\ KdbNopUS.dll NK SH 在config.bib文件中主要是內(nèi)存的分配,根據(jù)硬件要求其具體修改如下: SMP863X 90202800 01B00800 RESERVED ; 27M for SMP863X driver NK 91D10000 02A00000 RAMIMAGE ; 42M for NK.BIN image RAM 94710000 032F0000 RAM ; 50M for CE applications 此兩文件修改完后保存退出。而 platform.reg則根據(jù)添加的多媒體包添加相應(yīng)的設(shè)置,具體略過(guò)。三個(gè)文件修改完成后,運(yùn)行“Build OS---Make Run-Time Image”菜單命令,可生成新的 nk.bin文件,具有多媒體特征的系統(tǒng)配置完成。 3 內(nèi)核文件 NK.bin的下載 (1) 配置網(wǎng)絡(luò) 要通過(guò)以太網(wǎng)下載 Windows CE運(yùn)行時(shí)映像,還要配置以太網(wǎng)網(wǎng)絡(luò)連接。可通過(guò)HUB連接開發(fā)機(jī)與目標(biāo)機(jī),如圖( 2)所示。把目標(biāo)機(jī)與開發(fā)機(jī)都連接到HUB上。如果這樣配置網(wǎng)絡(luò),通常同一網(wǎng)段內(nèi)還會(huì)有一個(gè)DHCP服務(wù)器。這樣,目標(biāo)板就可以通過(guò)DHCP服務(wù)獲得IP地址,進(jìn)行下載。由于在下載過(guò)程中,通常要開發(fā)機(jī)上的終端程序通過(guò)串口連接目標(biāo)板,對(duì)下載過(guò)程進(jìn)行控制,同時(shí)輸出調(diào)試信息。Windows上自帶了終端工具“超級(jí)終端”。超級(jí)終端可以用串口連接開發(fā)機(jī)與目標(biāo)板,并且通過(guò)超級(jí)終端發(fā)送控制命令。 圖(2) 網(wǎng)絡(luò)連接 (2) 下載運(yùn)行映像 網(wǎng)絡(luò)配置好后,在超級(jí)終端上按任意鍵可以進(jìn)入設(shè)置菜單。選擇好相應(yīng)的設(shè)置后,退出菜單,這時(shí)候網(wǎng)絡(luò)已經(jīng)連接好了。打開 Platform Builder菜單上的 “Target->Connectivity Options…”設(shè)定好下載,傳輸設(shè)置后,在運(yùn)行“Target->Attach Device”,此時(shí)開發(fā)機(jī)開始將編譯好的 NK.bin文件下載到目標(biāo)板上。當(dāng)下載完成后,目標(biāo)板的屏幕上將會(huì)顯示出漂亮的 Windows CE界面。至此,整個(gè)系統(tǒng)構(gòu)建完成。 4 結(jié)束語(yǔ) 本文主要介紹了嵌入式 MIPS核心微處理器的 SMP8634開發(fā)板的硬件平臺(tái)架構(gòu)和 Windows CE操作系統(tǒng)的定制與移植。經(jīng)過(guò)實(shí)驗(yàn)證明,Windows CE操作系統(tǒng)能夠很好的在此開發(fā)板上運(yùn)行及調(diào)試。在該套軟硬件設(shè)備上開發(fā)出各種應(yīng)用程序后,就形成了一個(gè)完善的多媒體產(chǎn)品了。本文的創(chuàng)新點(diǎn)是在目前網(wǎng)絡(luò)應(yīng)用的高速發(fā)展下,本系統(tǒng)不僅能播放硬盤等存儲(chǔ)介質(zhì)中的多媒體文件,還可以接入網(wǎng)絡(luò)播放視頻圖片等,能更好的共享網(wǎng)絡(luò)上數(shù)量豐富的高清視頻,圖片等信息,這些優(yōu)勢(shì)使其在消費(fèi)類產(chǎn)品中的應(yīng)用前景將會(huì)非常廣闊。 作者:陳征,孫麗華 來(lái)源:《微計(jì)算機(jī)信息》(嵌入式與SOC)2009年第6-2期 |