freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

嵌入式linux開源軟件移植與應(yīng)用(編輯修改稿)

2025-06-17 06:44 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 實(shí)時(shí)視頻數(shù)據(jù)的系統(tǒng)而言,采用基于 SOAP消息的附件傳輸并不是一個(gè)好的選擇。因此裁減了 gSOAP中對(duì) SOAP附件機(jī)制的實(shí)現(xiàn)。 第二節(jié) 嵌入式 WebService gSOAP的移植與應(yīng)用 —— 二、 gSOAP裁減 以上三部分是對(duì) Web服務(wù)協(xié)議棧底層的三個(gè)重要協(xié)議進(jìn)行分析并裁減了部分無關(guān)性質(zhì)。但是對(duì)于整個(gè) Web服務(wù)協(xié)議棧來說,這僅僅精簡(jiǎn)了網(wǎng)絡(luò)傳輸層和Web服務(wù)調(diào)用層。在它們之上還有 Web服務(wù)描述與注冊(cè)層、 Web服務(wù)質(zhì)量層和 Web服務(wù)工作流層,也可以對(duì)它們進(jìn)行裁剪。如果對(duì)于服務(wù)的注冊(cè)與發(fā)現(xiàn)沒有將 Web服務(wù)發(fā)布到 UDDI注冊(cè)中心,而是采用簡(jiǎn)單的分布式發(fā)現(xiàn)方式( WSInspection),由客戶端直接向服務(wù)提供者請(qǐng)求一個(gè)服務(wù)描述的副本,根據(jù)此副本進(jìn)行 Web Service客戶端開發(fā),可以不需要 UDDI。 在移植 gSOAP時(shí),實(shí)際上是將該精簡(jiǎn)后的 Web服務(wù)協(xié)議棧移植到嵌入式系統(tǒng)中。另外, gSOAP還提供了一些額外的功能如支持多種系統(tǒng)平臺(tái)、 DOM解析庫(kù)、利用 zlib庫(kù)壓縮數(shù)據(jù)功能、 Plugin擴(kuò)展功能、 FastCGI以及支持 SSL(安全套接層協(xié)議 )等。這些功能都可以通過條件編譯有選擇的實(shí)現(xiàn),在移植的過程中可以將它們減掉 第二節(jié) 嵌入式 WebService gSOAP的移植與應(yīng)用 —— 二、 gSOAP裁減 gSOAP應(yīng)用 一般開發(fā)一個(gè) gSOAP應(yīng)用的過程是: ? 寫一個(gè)函數(shù)聲明文件,來定義所有要實(shí)現(xiàn)的接口函數(shù),該文件應(yīng)該還含有命名空間的相關(guān)信息。 ? 創(chuàng)建 Makefile文件,來利用 gsoapcpp2工具生成框架代碼。 ? 寫一個(gè)服務(wù)端的程序,里面應(yīng)該實(shí)現(xiàn)第一步中聲明文件里的接口函數(shù)。 ? 寫一個(gè)客戶端的程序,接收輸入的各參數(shù),鏈接服務(wù)端。 第二節(jié) 嵌入式 WebService gSOAP的移植與應(yīng)用 —— 三、 gSOAP應(yīng)用 內(nèi)容: 一、嵌入式數(shù)據(jù)庫(kù) 二、 SQLite介紹 三、 SQLite在 ARM平臺(tái)上的移植 四、 SQLite的使用 第二節(jié) 嵌入式數(shù)據(jù)庫(kù) SQLite的移植與使用 隨著計(jì)算機(jī)技術(shù)與其它學(xué)科間的不斷交融滲透,數(shù)據(jù)庫(kù)應(yīng)用的范圍更加深入和具體。那些僅適用于 PC機(jī)、體積龐大、延時(shí)較長(zhǎng)的數(shù)據(jù)庫(kù)技術(shù)已不能滿足嵌入式系統(tǒng)開發(fā)的需求。 數(shù)據(jù)庫(kù)的目標(biāo)是實(shí)現(xiàn)對(duì)數(shù)據(jù)的存儲(chǔ)、檢索和增刪等功能。傳統(tǒng)的數(shù)據(jù)庫(kù)產(chǎn)品除提供基本的查詢、添加、刪除等功能外,也提供了很多高級(jí)特性,如觸發(fā)器、存儲(chǔ)過程、數(shù)據(jù)備份恢復(fù)等。然而,在嵌入式系統(tǒng)中,由于軟硬件資源有限,不可能安裝龐大的數(shù)據(jù)庫(kù)服務(wù)器,因此一個(gè)簡(jiǎn)單的基于磁盤文件的數(shù)據(jù)庫(kù)系統(tǒng)就可能實(shí)現(xiàn)相應(yīng)的用戶需求,而這僅僅是利用了數(shù)據(jù)庫(kù)的基本特性。因此在這種特殊的應(yīng)用場(chǎng)合下,傳統(tǒng)的數(shù)據(jù)庫(kù)就顯得過于臃腫了。 嵌入式數(shù)據(jù)庫(kù)與傳統(tǒng)數(shù)據(jù)庫(kù)的區(qū)別是:嵌入式數(shù)據(jù)庫(kù)采用程序方式直接驅(qū)動(dòng),而傳統(tǒng)數(shù)據(jù)庫(kù)則采用引擎響應(yīng)方式驅(qū)動(dòng);嵌入式數(shù)據(jù)庫(kù)的體積通常都比較小,而且具備功能齊全、可移植性強(qiáng)、健壯性等特點(diǎn),因此嵌入式數(shù)據(jù)庫(kù)常常應(yīng)用在移動(dòng)便攜設(shè)備上。另外由于其性能卓越的特點(diǎn),也應(yīng)用于高性能數(shù)據(jù)處理場(chǎng)景。 第二節(jié) 嵌入式數(shù)據(jù)庫(kù) SQLite的移植與使用 —— 一、嵌入式數(shù)據(jù)庫(kù) SQLite是一款輕型數(shù)據(jù)庫(kù),設(shè)計(jì)目標(biāo)主要針對(duì)嵌入式系統(tǒng)。其占用資源少,在嵌入式設(shè)備中,可能只需要幾百 K內(nèi)存就足夠了。它能夠支持 Windows、 Linux、 Unix等等主流的操作系統(tǒng),并且能夠跟很多程序語(yǔ)言相結(jié)合,比如 Tcl、 PHP、 Java以及 ODBC接口,同樣比起 Mysql、 PostgreSQL這兩款開源世界著名的數(shù)據(jù)庫(kù)管理系統(tǒng)來說,它的處理速度更快。 SQLite雖然很小巧,但是支持的SQL語(yǔ)句不會(huì)遜色于其它開源數(shù)據(jù)庫(kù)。 在 SQLite的特點(diǎn)如下: ? ACID事務(wù) ? 零配置 —— 不需要安裝和管理配置 ? 儲(chǔ)存在單一磁盤文件中的一個(gè)完整 的數(shù)據(jù)庫(kù) ? 數(shù)據(jù)庫(kù)文件可以在不同字節(jié)順序的 機(jī)器之間自由共享 ? 支持?jǐn)?shù)據(jù)庫(kù)大小至 2TB ? 足夠小, 250K ? 速度比大部分的普通數(shù)據(jù)庫(kù)操作都要快 第二節(jié) 嵌入式數(shù)據(jù)庫(kù) SQLite的移植與使用 —— 二、 SQLite介紹 ?簡(jiǎn)單且易學(xué) ?包含 TCL綁定,通過 Wrapper支持其他語(yǔ)言的綁定 ?良好注釋的源代碼,并且有 90%以上的測(cè)試覆蓋率 ?獨(dú)立:沒有額外依賴 ?開源 ?支持多種開發(fā)語(yǔ)言 SQLite發(fā)展到現(xiàn)在已經(jīng)有了很多的版本,直到 08年 9月 22日已經(jīng)推出了。 SQLite在 ARM平臺(tái)上的移植一般要經(jīng)歷以下幾個(gè)步驟: 1)下載源碼包,解壓。安裝配置交叉編譯器。 2)在文件 SQLITE_PTR_SZ的值為 4,使 btree(B樹 )有正確的變量大小,否則在 ARM開發(fā)板上執(zhí)行時(shí),會(huì)出現(xiàn)如下問題: 在文件 , assert( sizeof(ptr)==sizeof(char*) )。 3)修改 configure文件,使其不去檢查交叉編譯環(huán)境。之后執(zhí)行configure命令,生產(chǎn) Makefile文件。 4)修改 Makefile文件,將 BCC變量里的編譯器修改為 X86的編譯器,因?yàn)槠渚幾g生成的可執(zhí)行文件要在宿主機(jī)上運(yùn)行。同時(shí),由于編譯生成的可執(zhí)行文件 sqlite要在 ARM開發(fā)版上執(zhí)行,為了方便,我們將后面指定生成的庫(kù) ,即編譯成靜態(tài)鏈接的形式。 5)去掉可執(zhí)行文件 sqlite中的調(diào)試信息,這樣可執(zhí)行文件也將變得很小。 第二節(jié) 嵌入式數(shù)據(jù)庫(kù) SQLite的移植與使用 —— 三、 SQLite在 ARM平臺(tái)上的移植 完成 SQLite的移植之后,我們可以利用它創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),實(shí)現(xiàn)基本的SQL語(yǔ)句功能,包括建表、插入、查詢、刪除等基本操作,如下所示: sqlite school sqlite create table std(sno char(8),sname varchar(10),sage smallint)。 sqlite insert into std values(39。0800000139。,39。Li Lei39。,17)。 sqlite insert into std values(39。0800000239。,39。Jim39。, 18)。 sqlite select * from std。 08000001|Li Lei|17 08000002|Jim|18 在上面的例子中,我們創(chuàng)建名為 school的數(shù)據(jù)庫(kù),并給這個(gè)數(shù)據(jù)庫(kù)創(chuàng)建了表 std,在表 std中插入了兩組數(shù)據(jù),最后查詢?cè)摫恚@示表中的數(shù)據(jù)。 第二節(jié) 嵌入式數(shù)據(jù)庫(kù) SQLite的移植與使用 —— 四、 SQLite的使用 我們可以采用 C語(yǔ)言編程,調(diào)用 SQLite數(shù)據(jù)庫(kù),實(shí)現(xiàn)類似上面的操作。在使用 SQLite數(shù)據(jù)庫(kù)進(jìn)行編程時(shí),我們要加上頭文件 ,它是 SQLite的 API頭文件。 SQLite數(shù)據(jù)庫(kù)中提供的接口主要有: sqlite_open ( string filename [, int mode [, string amp。errmsg]] ) 該函數(shù)打開一個(gè) SQLite 數(shù)據(jù)庫(kù)。 如果數(shù)據(jù)庫(kù)不存在,將會(huì)創(chuàng)建它。如果成功打開,則返回?cái)?shù)據(jù)庫(kù)的句柄,否則返回 FALSE。其中參數(shù)filename是數(shù)據(jù)庫(kù)的名字, sqlite訪問數(shù)據(jù)庫(kù)文件可以使用相對(duì)或絕對(duì)路徑;參數(shù) mode是打開數(shù)據(jù)庫(kù)的訪問權(quán)限,默認(rèn)是 0666;參數(shù) errmsg是返回的錯(cuò)誤信息。 sqlite_close(sqlite* db) 該函數(shù)關(guān)閉 SQLite數(shù)據(jù)庫(kù)。參數(shù) db是前面調(diào)用 sqlite_open()函數(shù)返回的數(shù)據(jù)庫(kù)句柄。無返回值。 第二節(jié) 嵌入式數(shù)據(jù)庫(kù) SQLite的移植與使用 —— 四、 SQLite的使用 sqlite_exec(sqlite* db,char* sql,int* callback,void* parg,string amp。errmsg) 該函數(shù)主要是執(zhí)行某個(gè) SQL命令。參數(shù) db是調(diào)用 sqlite_open函數(shù)獲得的數(shù)據(jù)庫(kù)句柄;參數(shù) sql容納了一個(gè)或更多 SQL語(yǔ)句的字符串;參數(shù)callback是指向回調(diào)函數(shù)的指針,查詢結(jié)果的每一條記錄都會(huì)調(diào)用該函數(shù);參數(shù) parg成為回調(diào)函數(shù)的第一個(gè)參數(shù);參數(shù) errmsg指向錯(cuò)誤信息的指針。其中回調(diào)函數(shù)的結(jié)構(gòu)如下: my_callback(void * parg, int argc, char * value[], char *name[]) 第一個(gè)參數(shù)是主調(diào)函數(shù)傳遞過來的指針;第二個(gè)參數(shù)為變量的個(gè)數(shù);第三個(gè)為變量的值;第四個(gè)為變量的名稱。 第二節(jié) 嵌入式數(shù)據(jù)庫(kù) SQLite的移植與使用 —— 四、 SQLite的使用 內(nèi)容: 一、 Mplayer介紹 二、 Mplayer在 ARM平臺(tái)上的移植 1,安裝并配置好交叉編譯器 2,執(zhí)行 configure命令 3,執(zhí)行 make命令 4,修改驅(qū)動(dòng)源代碼 第四節(jié) 播放器 Mplayer的移植 Mplayer播放器是 Linux下最優(yōu)秀的多媒體播放器之一。它的播放速度最快,資源占用率低,支持的文件格式也最多。 Mplayer能使用眾多本地的 Xanim, RealPlayer和 Win32 DLL編解碼器,播放大多數(shù) MPEG、 VOB、 AVI、 OGG、 VIVO、 ASF/WMV、 QT/MOV、FLI、 RM、 NuppelVideo、 yuv4mpeg、 FILM、 RoQ文件,并且能夠觀看 VideoCD、 SVCD、 DVD、 3ivx、 RealMedia和 DivX格式的電影; MPlayer的另一大特色是支持廣泛的輸出設(shè)備:它可以在X1 Xv、 DGA、 OpenGL、 SVGAlib、 fbdev、 Aalib、 DirectFB下工作,而且你也能使用 GGI、 SDL(由此使用它們支持的各種驅(qū)動(dòng)模式)和一些低級(jí)的硬件相關(guān)的驅(qū)動(dòng)模式。 Mplayer的功能還不止于此,它還能穩(wěn)定地播放被破壞的 MPEG文件、 AVI文件,甚至播放沒有索引部分的 AVI文件,而這其中有些功能 Media Player是做不到的。 由于多媒體技術(shù)和計(jì)算機(jī)技術(shù)的不斷發(fā)展和相互滲透,在嵌入式系統(tǒng)或者移動(dòng)設(shè)備上聽音樂看視頻已經(jīng)成為了一件很常見的事情。而Mplayer作為一款相當(dāng)優(yōu)秀的播放器,將其移植到嵌入式系統(tǒng)中將是很有意義的 。 第四節(jié) 播放器 Mplayer的移植 —— 一、 Mplayer介紹 Mplayer在 ARM平臺(tái)上的移植基本遵循 X86平臺(tái)上的安裝步驟。即進(jìn)入源碼目錄通過執(zhí)行 configure命令生成一個(gè) Makefile文件,再繼續(xù)執(zhí)行 make和 make install命令,最終就能夠生成可執(zhí)行程序mplayer。 只不過 ARM平臺(tái)的體系結(jié)構(gòu)和 X86機(jī)不一樣,因此在移植方面需要注意區(qū)別。另外由于其資源有限,也必須將某些功能進(jìn)行裁剪。其移植具體步驟和過程如下: 1,安裝并配置好交叉編譯器 這里使用的交叉編譯器 armlinuxgcc版本為 。注意編譯 Mplayer的交叉編譯器是有要求的:如果使用 armv4lunknownlinuxgcc,會(huì)提示 ,即該版本無法成功編譯Mplayer;如果使用高版本的交叉編譯器,例如 以的,在編譯到 libavcodec/。 第四節(jié) 播放器 Mplayer的移植 —— 二、 Mplayer在 ARM平臺(tái)上的移植 2,執(zhí)行 configure命令 將下載的壓縮包解壓。進(jìn)入解壓后的目錄,執(zhí)行 configure命令,并附加一些選項(xiàng)進(jìn)行相關(guān)配置 3,執(zhí)行 make命令 這一步主要是編譯生成可執(zhí)行程序 mplayer。 4,修改驅(qū)動(dòng)源代碼 該嵌入式 ARM開發(fā)板的音頻芯片使用的是菲利普 uda1341,該芯片所使用的驅(qū)動(dòng)是 MIZI
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1