資源描述:
《sqlite數(shù)據(jù)庫在嵌入式下載機中的應用研究》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、SQLite數(shù)據(jù)庫在嵌入式下載機中的應用研究摘要SQLite是開放源碼的嵌入式數(shù)據(jù)庫,其特點是獨立性強,不具有外部依賴性,資源占用少,能直接嵌入到應用程序中,即能提供零配置(zero—configuration)運行模式。本文介紹了SQLite系統(tǒng)的特點和體系結(jié)構(gòu),在arm-linux平臺上成功地移植了SQLite。并利用SQLite和網(wǎng)絡(luò)成功地實現(xiàn)了用戶與嵌入式下載機系統(tǒng)的動態(tài)交互,最后對數(shù)據(jù)庫進行加密保障了安全性,可廣泛用于遠程控制。關(guān)鍵詞嵌入式數(shù)據(jù)庫SQLite下載機1引言在應用系統(tǒng)中的數(shù)據(jù)存儲和檢索一般采用數(shù)據(jù)庫如ACCESS、MYSQL等來實現(xiàn),但很多時候,系統(tǒng)只是用了數(shù)據(jù)庫產(chǎn)品的一
2、些基本特性,這樣就造成浪費了很多的系統(tǒng)資源。特別是在嵌入式系統(tǒng)中,由于硬件和軟件資源都很有限,一般的數(shù)據(jù)庫系統(tǒng)根本無法在這些平臺上使用。因此,嵌入式數(shù)據(jù)庫應運而生。嵌入式數(shù)據(jù)庫系統(tǒng)實質(zhì)是支持某種特定計算機模式或移動計算的數(shù)據(jù)庫管理系統(tǒng),它通常與操作系統(tǒng)和具體應用集成在一起,運行在智能型嵌入式設(shè)備或移動設(shè)備上[1]。嵌入式數(shù)據(jù)庫的使用是采用程序驅(qū)動,即由程序調(diào)用相應的API函數(shù)來實現(xiàn)數(shù)據(jù)的存取。嵌入式數(shù)據(jù)庫的體積小,編譯后一般只有幾十KB,非常適合在嵌入式設(shè)備上使用。由于嵌入式系統(tǒng)應用環(huán)境沒有統(tǒng)一的標準,故嵌入式數(shù)據(jù)庫應充分體現(xiàn)可定制的特性,因此,開放源碼的嵌入式數(shù)據(jù)庫具有明顯的優(yōu)勢。2Sqli
3、te數(shù)據(jù)庫Sqlite數(shù)據(jù)庫是D.RichardHipp用C語言編寫的開源嵌入式數(shù)據(jù)庫,支持的數(shù)據(jù)庫大小為2TB,全部源代碼約3萬行,每個數(shù)據(jù)庫完全存儲在單個磁盤文件中,數(shù)據(jù)以B+樹數(shù)據(jù)結(jié)構(gòu)的形式存儲在磁盤上,Sqlite根據(jù)該文件系統(tǒng)獲得其數(shù)據(jù)庫權(quán)限[2]。Sqlite可直接運行在大多數(shù)的操作系統(tǒng)上,并且支持C/C++、Java等常用的開發(fā)工具。本項目用到的是Sqlite最新版本3.3.4,支持多數(shù)SQL92標準,如SELECT、CREATE、TABLE、ALTER、INDEX、VIE2410—K1,包括CPU模塊、Flash、SDRAM存儲部分。底板包括USB接口、以太網(wǎng)控制芯片、CAN/
4、RS485通信模塊。核心板CPU采用三星公司SBC2410芯片。SBC2410芯片基于ARM920T內(nèi)核,而ARM920T內(nèi)核有存儲單元MMU、ARM9TDMI和高速緩存三部分組成,運行頻率可達203MHZ,MMU管理虛擬內(nèi)存,實現(xiàn)虛擬地址物理之間的轉(zhuǎn)換。CAN總線通信芯片采用Microchip公司的MCP2510。它支持模式CAN2.0A、CAN2.0B,與國內(nèi)常用的SJA1000相比,MCP2510數(shù)據(jù)吞吐率高且使用簡單。本嵌入式下載機實現(xiàn)的主要功能有兩大部分:一是單獨與網(wǎng)絡(luò)相連接,接受來自于網(wǎng)絡(luò)的命令而自動下載任務(wù);二是可實現(xiàn)磁盤的熱插拔和與PC機的Samba共享(如圖1)。在現(xiàn)代生活中
5、,當在Office上班的人們想在下班回家能有自己想看的電影或音樂,而且不需要回家再耗時下載,則可以利用上班時空閑在家的嵌入式,而在家里的嵌入式下載機接到指令后就會自動判斷用戶的帳號、密碼,正確后將要下載的任務(wù)添加給下載程序。在這過程中用戶不用擔心掉電或斷網(wǎng)后數(shù)據(jù)問題,因為此系統(tǒng)中設(shè)計掉電保護程序。于是當上班的人們回家后只需打開PC機就可以通過網(wǎng)絡(luò)利用Samba和下載機共享,或者是直接將USB插入現(xiàn)代數(shù)字電視就可以看到精彩的電影和欣賞到動聽的音樂了。4嵌入式數(shù)據(jù)庫Sqlite的移植下載的穩(wěn)定版本,configure已經(jīng)存在,直接進行配置:[rootlinuxsqlite-3.3.4]#./con
6、figure--host=$ARCH-linux--prefix=$ROOTFS_DIR/usr如果交叉編譯工具是arm-linux-gcc的話則采用下面的配置語句[rootlinuxsqlite-3.3.4]#./configure--host=arm-linux--prefix=$ROOTFS_DIR/usr如果出現(xiàn)了如下錯誤:configure:error:unabletofindapilerforbuildingbuildtools前面檢查arm-linux-gcc都通過了,怎么還說沒有找到編譯器呢?結(jié)合configure.ac看了一下,原來是要設(shè)置config_TARGET_CC和c
7、onfig_BUILD_CC兩個環(huán)境變量。config_TARGET_CC是交叉編譯器,config_BUILD_CC是主機編譯器。[rootlinuxsqlite-3.3.4]#exportconfig_BUILD_CC=gcc[rootlinuxsqlite-3.3.4]#exportconfig_TARGET_CC=arm-linux-gcc[rootlinuxsqlite-3.3.4]#.