申嵌培訓基于mini2440嵌入式boa服務(wù)器移植設(shè)計_第1頁
申嵌培訓基于mini2440嵌入式boa服務(wù)器移植設(shè)計_第2頁
申嵌培訓基于mini2440嵌入式boa服務(wù)器移植設(shè)計_第3頁
申嵌培訓基于mini2440嵌入式boa服務(wù)器移植設(shè)計_第4頁
申嵌培訓基于mini2440嵌入式boa服務(wù)器移植設(shè)計_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

Internet技術(shù)的結(jié)合為嵌入式設(shè)備的網(wǎng)絡(luò)互連提供了一條有效的途徑。把嵌入式設(shè)備連接到網(wǎng)絡(luò)中,并且實現(xiàn)WebServer功能,使得用戶能通過WEB瀏覽器對現(xiàn)場設(shè)備進行,這將極大方便用戶的操作。WebServerWEBInternet互連的關(guān)鍵組成部分,研究嵌入式WebServer的原理及其實現(xiàn)對于網(wǎng)絡(luò)傳輸、、信息家電等領(lǐng)域具有很強的從功能上來講,Web服務(wù)器客戶端的服務(wù)請求,并根據(jù)客戶端的請求類型提供相應(yīng)的服務(wù)??蛻舳耸褂肳EB瀏覽器和服務(wù)器進行通信。種交互可以用很多種方法實現(xiàn),例如SSI(ServerSideIncludes)、CGI(CommonGatewayInterface)、JavaServlet等技術(shù)。④嵌入式設(shè)備通過嵌入式WebServer與Internet互連,存在一定的問題,例如非用戶操作、信息竊取等,嵌入式WebServer必須解決WEB應(yīng)用的安全問題。WebServer必須能在嵌入式系統(tǒng)的制約條件下,滿足管理和嵌入式系統(tǒng)的需要。嵌入式系統(tǒng)中WEB服務(wù)器也可以包含一個實時操作系統(tǒng)速實現(xiàn)嵌入式WebServer的目的。WEBASP、ASP.NET、JSP、PHP等,然而此等程CGI(公用網(wǎng)關(guān)接口,CommonGatewayInterface)為主。CGI是外部擴展應(yīng)用程序與息交換方式,使得信息在瀏覽器或服務(wù)器與外部程序之間流通。更明確的說,CGI僅是在WWW服務(wù)器上可執(zhí)行的程序代碼,而它的工作就是控制信息要求而且產(chǎn)生傳回所需的文件,提供通客戶端HTML頁面的接口。按照CGI標準編寫的外部擴展應(yīng)用程序可以處理客戶端瀏覽器輸入的數(shù)據(jù),從而完成CGIHtml網(wǎng)頁無法實現(xiàn)的功能。其www與CGI的工作原理如下。HTTPWWW的基礎(chǔ),它基于客戶/服務(wù)器模型。一個服務(wù)器可以為分布在網(wǎng)絡(luò)TCP/IP協(xié)議之上的“無連接”協(xié)議。每次連接只處理一提供的信息,并將該部分給指定的CGI擴展程序。CGI擴展程序?qū)π畔⑦M行處理CGI的標準輸入。CGI對信息進行處同時也可以進行多進程、多線程的。但是其SIZE不能被嵌入式設(shè)備所認同。最后選擇一個名叫BOA的嵌入式WEB服務(wù)。BoaHTTP服務(wù)器,Web服務(wù)器不同的是當有連接請求到來時,它并不為每個連接單獨創(chuàng)建進程,也不通過自身進程來處理多,而是通過HTTPHTTP連接請求,CGI程序創(chuàng)建新的進程,這樣就在最大程度上節(jié)省了系統(tǒng)資源,這對嵌入式系統(tǒng)來說至關(guān)重要.、自動解壓文件等功能,因此,BoaHTTP請求處理速度和效率,在嵌入式BoaWeb60KB左右。作為一種單BOAHTTP服務(wù)器,源代碼開放、性能優(yōu)秀,特別適合應(yīng)用在嵌入WebBoaWeb服務(wù)器一樣,能夠完成接收客戶端請求、分析請求、響應(yīng)請求、向客戶端返回請求結(jié)果等任務(wù).它的工作過程主要包括:)Web服務(wù)器的初始化工作,TCP套接字、綁定端口、開始偵聽、進入循環(huán)結(jié)構(gòu),以及等待接收客戶瀏覽器的連接請求;)當有客戶端連接請求時,Web服務(wù)器負責接收客戶端請求,并保存相關(guān)請求信息(c)在接收到客戶端的連接請求之后,分析客戶端請求,解析出請求的方法、URL目標、可選的查詢信息及表單信息,同時根據(jù)請求做出相應(yīng)的處理;(d)Web服務(wù)器完成相應(yīng)處理后,向客戶端瀏覽器發(fā)送響應(yīng)信息,TCP連用在嵌入式系統(tǒng)中。下面介紹Boa的移植與編譯。Boa ,地址將boa-0.94.13.tar.gz解壓到 下得到boa- ,進入boa-,執(zhí)行./configure,然后在src 下將生成Makefile文件,打開Makefile文件,CC=arm-linux-CPP=arm-linux-gcc在src 下執(zhí)行make命令,將在src 下生成boa可執(zhí)行文件(大致120K,可去掉boa的調(diào)試信息對其進行優(yōu)化,執(zhí)行命令#arm-linux-stripboa后,boa變得只有60k不到大小。make時出“util.c:100:1:pasting“t”and“->”doesnotgive make”的錯誤提示,改動compat.h文件:boa boa 下新建 ,并使用命令od-777boa改變文件屬性,將boa-0.94.13/boa.conf拷貝到/opt/rootfs/etc/boa Port80UserrootAccessLog/www/log/boa/error_logServerName/Root/wwwKeepAliveMax1000KeepAliveTimeout10DefaultTypetext/inScriptAlias/cgi-bin//www/cgi-bin/Port的端,默認都是80,無需修改UserUserGroupGroupgroup文件中一個組。作為哪個用戶組,即它擁有該用戶組的權(quán)限,一般都是root,需要在/etc/group文件中有root組。ErrorLog錯誤日志文件,error_log記錄了boa的運行日志,如果發(fā)現(xiàn)運行錯誤通過/www/log/boa/error_log也可以設(shè)置為:ErrorLog/dev/console AccessLog、ServerName開,否則運行boa時會異常退出,提示“gethostbyname::Nosuchfileordirectory 存放HTML文檔的 ,這里對應(yīng)根文件系統(tǒng)的 、DirectoryIndexindex.html 索引的文件名KeepAliveMaxHTTP0HTTPKeepAliveTimeoutMimeTypesmime.typesMIMECGIPathCGIPATHScriptAlias/cgi-bin/www/cgi-指明CGI的虛擬路徑對應(yīng)的實際路徑,一般所有的CGI都要放在實際路徑里,用戶執(zhí)行時輸入站點IP+虛擬路徑+CGI名。其中,/cgi-bin/表示虛擬路徑;/www/cgi-bin/創(chuàng)建與boa.conf相關(guān)的 創(chuàng)建HTML文檔的主 創(chuàng)建CGI所在錄:/www/cgi-mkdirwwwod–R777mkdir–m777 mkdirwww/logcdwww/log/boatouch 拷貝Linux主機/etc/mime.types文件到開發(fā)板根文件系統(tǒng)的 將編譯好的boa拷貝根文件系統(tǒng)的 下 [root@localhostsrc]#cpboa[root@smdk2440a/bin]#boa ]boa.c:226-ickyLinuxkernelbug!:Nosuchfileor解決該問題的方法是將boa.c文件中以下幾行判斷注釋即可。if(setuid(0)!=-1)DIE("ickyLinuxkernel}if(setuid(0)!=-1)DIE("ickyLinuxkernel}重新編譯boa,拷貝[root@localhostsrc]#cpboa ]boa:serverversionBoa/0.94.13 ]boa:serverbuiltJan ]boa:startingserverpid=862,port80 下(可以將主機/usr/share/doc/HTML/en-US 的index.html、redhat.css和images 到/www 然后直接在Windows瀏覽器或者虛擬機Linux下的Firefox中輸入開發(fā)板的IP地址(比如:,注意:此IP地址必須與u-boot中設(shè)置的開發(fā)板IP地址ipaddr一致)現(xiàn)RedhatenterpriseLinuxVersion5.4的歡迎網(wǎng)頁。至此,靜態(tài)HTML調(diào)試成功。如圖所示:}}#includeintmain(void){arm-linux-gccoCGI.c-o最后CGI程序給客戶端發(fā)回一個“留言結(jié)束”字樣的頁面,用戶可以在瀏覽器里看到。CC++、PerlPerl等解釋性語CCCGI這種需要大量進行字符串操作的程序,編CGICGIC庫。我們在此只介紹CGIC,有的朋友可以自己在Internet上搜索其他的C庫。無需公開。能接受上傳文件; 能夠設(shè)置和接收s;、CGIC庫源代碼從CGIC的主站點http /cgic/源碼,當前版本是2.05版。地址:http /cgic/cgic205.tar.gz。、CGIC解壓cgic205.tar.gz到boa ,得到cgic205 #cdcgic205進入該Makefile改為gcccgictest.o-ocgictest.cgi$(CC$(CFLAGS)cgictest.oocgictest.cgi${LIBS}gcccapture.o-ocapture${LIBS}$(CC$(CFLAGS)capture.oocapture執(zhí)行make命令得到的CGIC庫libcgic.a并生成調(diào)試輔助程序capture和測試程序cgictest.cgi,#arm-linux-stripcapturecapture文件進行優(yōu)化,減小大小。capture由原來的100K左右變成29K左右。拷貝以上生成的capture和cgictest.cgi可執(zhí)行文件到根文件系統(tǒng)的www/cgi-bin目在瀏覽器輸入,如果打開了cgi測試網(wǎng)頁,表示CGIC庫和測試都移植成功。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論