李華
摘要:該文主要針對(duì)嵌入式數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行了研究,對(duì)基于Liod開(kāi)發(fā)板的Linux系統(tǒng)和Windows CE系統(tǒng)內(nèi)核進(jìn)行了裁減和移植,并且設(shè)計(jì)實(shí)現(xiàn)了相應(yīng)數(shù)據(jù)庫(kù)管理系統(tǒng)。
關(guān)鍵詞:EDBMS;嵌入式;數(shù)據(jù)庫(kù)
中圖分類號(hào):TP312 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2013)08-1749-03
隨著微電子和存儲(chǔ)技術(shù)的迅速發(fā)展,嵌入式系統(tǒng)需要處理的數(shù)據(jù)不斷增多,嵌入式數(shù)據(jù)庫(kù)管理系統(tǒng)(簡(jiǎn)稱EDBMS)越來(lái)越展現(xiàn)出其不可替代的優(yōu)越性。嵌入式數(shù)據(jù)庫(kù)產(chǎn)品層出不窮,嵌入式數(shù)據(jù)庫(kù)管理系統(tǒng)在消費(fèi)類電子產(chǎn)品等各領(lǐng)域已得到廣泛應(yīng)用。
1 嵌入式數(shù)據(jù)庫(kù)簡(jiǎn)介
嵌入式數(shù)據(jù)庫(kù)系統(tǒng)是一種與操作系統(tǒng)以及應(yīng)用軟件集成在一起的數(shù)據(jù)庫(kù)管理系統(tǒng),用來(lái)支持和嵌入式系統(tǒng)的特定用途相關(guān)的應(yīng)用。EDBMS從本質(zhì)上是由通用數(shù)據(jù)庫(kù)管理系統(tǒng)發(fā)展而來(lái)的,但它們?cè)谶\(yùn)行環(huán)境和應(yīng)用領(lǐng)域等各個(gè)方面還有所不同,EDBMS具有數(shù)據(jù)同步、高安全性和可靠性、零管理以及硬件速度慢等特點(diǎn)。嵌入式數(shù)據(jù)庫(kù)管理系統(tǒng)一般需要嵌入式操作系統(tǒng)的支持,例如嵌入式Linux系統(tǒng)、Windows CE系統(tǒng)等。
1)Linux系統(tǒng)下數(shù)據(jù)庫(kù)
Linux系統(tǒng)對(duì)數(shù)據(jù)庫(kù)提供了全面支持,幾乎所有大型數(shù)據(jù)庫(kù)系統(tǒng)都可以基于Linux運(yùn)行。目前流行的大型數(shù)據(jù)庫(kù)系統(tǒng)有Oracle、 Sybase、Informix等,中小型數(shù)據(jù)庫(kù)系統(tǒng)有MySQL、Firebird、Berkeley DB等。
2)Windows CE系統(tǒng)下數(shù)據(jù)庫(kù)
伴隨掌上電腦的流行,其使用的Windows CE操作系統(tǒng)也因此倍受矚目。Windows CE包含一個(gè)適合動(dòng)靜態(tài)內(nèi)存存儲(chǔ)的文件系統(tǒng)和一個(gè)Win32 API子集以及新增加的一些API。其中,數(shù)據(jù)庫(kù)定位于對(duì)象存儲(chǔ)。對(duì)象存儲(chǔ)是用于存儲(chǔ)Windows CE數(shù)據(jù)庫(kù)、注冊(cè)表及永久文件的。Windows CE提供的Pocket Access數(shù)據(jù)庫(kù),使用戶可以自己編程實(shí)現(xiàn)掌上電腦基本的數(shù)據(jù)庫(kù)處理。
2 嵌入式開(kāi)發(fā)平臺(tái)
2.1 Liod開(kāi)發(fā)平臺(tái)
1)PXA270微處理器
PXA270微處理器使用了電壓調(diào)整和頻率調(diào)整技術(shù)來(lái)實(shí)現(xiàn)高性能和低功耗的特點(diǎn),先已普遍應(yīng)用于嵌入式系統(tǒng)開(kāi)發(fā)。該處理器使用ARM架構(gòu),用比較低的時(shí)鐘頻率卻能夠?qū)崿F(xiàn)優(yōu)異的多媒體性能,這在很大程度上提高了多媒體的處理能力。同時(shí),PXA270微處理器使用了動(dòng)態(tài)電源管理技術(shù),可以根據(jù)處理器的需求動(dòng)態(tài)的調(diào)整功耗和性能,既能滿足必要性能,又能最大限度地降低無(wú)線手持設(shè)備的功耗,延長(zhǎng)待機(jī)以及通話時(shí)間。
2) Liod開(kāi)發(fā)板
Liod是一款高端的嵌入式開(kāi)發(fā)平臺(tái),這款開(kāi)發(fā)平臺(tái)擁有豐富的外設(shè)資源,最重要的是它還使用了先進(jìn)的Xscale架構(gòu)的 PXA270微處理器,并能使該處理器的功能發(fā)揮得淋漓盡致,營(yíng)造了一個(gè)優(yōu)秀的開(kāi)發(fā)環(huán)境。由于它性能高并且功耗低,適用于醫(yī)療設(shè)備、導(dǎo)航設(shè)備、娛樂(lè)終端、多媒體終端、人機(jī)交互界面、智能手機(jī)等各個(gè)領(lǐng)域。
2.2 基于Liod開(kāi)發(fā)板進(jìn)行Linux內(nèi)核裁減和移植
2)Qt平臺(tái)構(gòu)建
在Liod開(kāi)發(fā)板中如果想實(shí)現(xiàn)觸摸屏響應(yīng)功能,開(kāi)發(fā)者就需在Qt工具的源文件中修改與鼠標(biāo)操作和觸摸屏操作相關(guān)的文件。在編譯Qtopia時(shí),要使用兩個(gè)庫(kù):分別是libuuid和jpeg,把它們編譯到交叉編譯工具中。在文件系統(tǒng)的usr文件夾中建立qpe文件夾,然后把編譯好的Otopia文件夾復(fù)制到新建的qpe文件夾里,同時(shí)把相應(yīng)的庫(kù)文件和font文件夾一起復(fù)制到/usr/qpe/lib下,這樣就可以使用Qtopia了。
3)Windows CE內(nèi)核移植
①組成模塊 。Windows CE系統(tǒng)是一種高度模塊化的操作系統(tǒng),它的每個(gè)模塊都實(shí)現(xiàn)其自身特定功能,系統(tǒng)模塊主要包括內(nèi)核模塊、通信模塊、文件系統(tǒng)模塊、圖形窗口事件子系統(tǒng)模塊及對(duì)象存儲(chǔ)模塊。其中,內(nèi)核模塊和文件系統(tǒng)模塊是Windows CE系統(tǒng)必須要包括的模塊。此外,Windows CE還附加一些可以實(shí)現(xiàn)其它功能的可選模塊。
②PB開(kāi)發(fā)工具 。PB是用于進(jìn)行CE系統(tǒng)下的嵌入式系統(tǒng)開(kāi)發(fā),能夠根據(jù)實(shí)際需求,建立特定內(nèi)核功能的CE 系統(tǒng)。利用PB實(shí)現(xiàn)對(duì)Windows CE系統(tǒng)的創(chuàng)建和設(shè)計(jì)等基本操作。
4) BSP原理
BSP即板級(jí)支撐軟件包,它是基于Windows CE操作系統(tǒng)的主要組成部分,包括啟動(dòng)程序和標(biāo)準(zhǔn)開(kāi)發(fā)板等。目前,嵌入式系統(tǒng)并沒(méi)有統(tǒng)一的應(yīng)用標(biāo)準(zhǔn),硬件環(huán)境的選擇取決于特定的系統(tǒng)應(yīng)用需求,硬件環(huán)境的多變決定了它不能依靠OS來(lái)實(shí)現(xiàn)應(yīng)用軟件和硬件部分的無(wú)關(guān)性,而普遍依靠分層設(shè)計(jì)來(lái)實(shí)現(xiàn),即板級(jí)支撐軟件包。開(kāi)發(fā)者可以根據(jù)實(shí)際使用的硬件對(duì)它進(jìn)行修改,如圖1所示,BSP的主要作用就是確保硬件正常工作,實(shí)現(xiàn)軟硬件之間的數(shù)據(jù)交互,為操作系統(tǒng)和上層應(yīng)用程序提供一個(gè)和硬件無(wú)關(guān)的軟件平臺(tái)。
5)Windows CE內(nèi)核移植
PB能夠支持Liod開(kāi)發(fā)板的硬件資源系統(tǒng),這樣在安裝Windows CE之后還需要安裝板級(jí)支撐軟件包。安裝時(shí),運(yùn)行BSP的安裝向?qū)SBase270.msi,然后BSP會(huì)自動(dòng)選擇Windows CE的安裝目錄來(lái)安裝BSP。
3 EDBMS的設(shè)計(jì)實(shí)現(xiàn)
3.1 嵌入式SQLite數(shù)據(jù)庫(kù)裁減和移植
1) SOLite簡(jiǎn)介
SQLite是開(kāi)源的嵌入式數(shù)據(jù)庫(kù)引擎,它是完全獨(dú)立的,不依賴于其他軟件,使用的資源也非常低。它能夠支持Linux/Windows等當(dāng)前流行使用的操作系統(tǒng),SQLite體系結(jié)構(gòu)可分為如圖2所示的八個(gè)子系統(tǒng),按照此流程執(zhí)行數(shù)據(jù)庫(kù)的各項(xiàng)操作。
2) SQLite的移植
首先下載SQLite的源碼,并且將下載的代碼包解壓。對(duì)配置文件configure進(jìn)行編輯,注釋掉configure中的交叉編譯的檢查語(yǔ)句,增加編譯器gcc。然后將Makefile文件中編譯工具的編譯器修改為gcc, 1ibs隱藏文件夾中就存儲(chǔ)了執(zhí)行make命令編譯之后生成的可執(zhí)行文件和庫(kù)文件,最后執(zhí)行make install命令進(jìn)行安裝。
3)EDBMS的實(shí)現(xiàn)
①注冊(cè)ADOCE的DLL組件。ADOCE以動(dòng)態(tài)連接庫(kù)的形式進(jìn)行發(fā)布,它是ADO的子集。利用ADOCE編程,首先要下載它的動(dòng)態(tài)連接庫(kù),然后運(yùn)行REGSVRCE可執(zhí)行文件注冊(cè)部分DLL組件。
②ADOCE的初始化。由于ADOCE是屬于標(biāo)準(zhǔn)的COM組件,所以先要必須初始化一個(gè)COM,然后再進(jìn)行ADO數(shù)據(jù)源連接的相應(yīng)編程,對(duì)ADOCE進(jìn)行數(shù)據(jù)庫(kù)編程基本上就是執(zhí)行SQL語(yǔ)句。
4 結(jié)束語(yǔ)
從目前國(guó)內(nèi)外EDBMS的應(yīng)用情況來(lái)看,基于嵌入式數(shù)據(jù)庫(kù)應(yīng)用的市場(chǎng)需求已進(jìn)入蓬勃發(fā)展時(shí)期,但是市場(chǎng)應(yīng)用的需求多種多樣,計(jì)算平臺(tái)也是各有各的特點(diǎn),嵌入式的數(shù)據(jù)庫(kù)產(chǎn)品短時(shí)間內(nèi)還難以建立統(tǒng)一的標(biāo)準(zhǔn),對(duì)于嵌入式數(shù)據(jù)庫(kù)管理系統(tǒng)還有待更加深入的研究和探索。
參考文獻(xiàn):
[1] 陳文智.嵌入式系統(tǒng)開(kāi)發(fā)原理與實(shí)踐 [M]北京:清華大學(xué)出版社,2005 .
[2] 傅曦.Windows CE嵌入式開(kāi)發(fā)入門——基于Xscale架構(gòu)[M].北京:人民郵電出版社,2006.
[3] 啟明工作室.Visual C++ +SOL Server數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開(kāi)發(fā)與實(shí)例[M]北京:人民郵電出版社,2004.