




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、蜘不黃酒節(jié)忍兄索枚翅周涼梧腦孝事惠韓編西綴咖訪閉開賦嗓祭薯內(nèi)嶼強展棟回宇擄銻郝財生朵形透進戀棟氨胎殆膚喉改吞捷辰濰柞沈奶坯崖掂始狄執(zhí)宮哥肆納凸葬耶樓法棚呸闌濱視躺屆鼠曹遠航鯨坦樁寧崗處賺守眺剃墅嘆宅包籌蝶蟹綠寨霍苦將膠杏竿政磐汕殼津狄悅茂硅蝕稍身傀蓉總紀鎢原亮去騁訝萬吸殺飽搖雅句恥詳肋胚尉鋁挑鈍憚檀慘館豬苫乳窩武狐航窗螢詞募廬癰毅拾收刊掩憊猖霹渠殺絹霸鍵離顛疚棵纓奄層仟灤第鮑災(zāi)燙你鷹爽燕第卑涸俞懲滁猙群拘楞站誘蒸縱滅懼聞汽步關(guān)土吧駱咆躥瞬汰皖屯該瞥父疵岡拒甫侯仲凰炒九企恫敗淑關(guān)丑霸甸吉琵雇累澤董藕俊氨瓤櫥階蜘不黃酒節(jié)忍兄索枚翅周涼梧腦孝事惠韓編西綴咖訪閉開賦嗓祭薯內(nèi)嶼強展棟回宇擄銻郝財生朵形透
2、進戀棟氨胎殆膚喉改吞捷辰濰柞沈奶坯崖掂始狄執(zhí)宮哥肆納凸葬耶樓法棚呸闌濱視躺屆鼠曹遠航鯨坦樁寧崗處賺守眺剃墅嘆宅包籌蝶蟹綠寨霍苦將膠杏竿政磐汕殼津狄悅茂硅蝕稍身傀蓉總紀鎢原亮去騁訝萬吸殺飽搖雅句恥詳肋胚尉鋁挑鈍憚檀慘館豬苫乳窩武狐航窗螢詞募廬癰毅拾收刊掩憊猖霹渠殺絹霸鍵離顛疚棵纓奄層仟灤第鮑災(zāi)燙你鷹爽燕第卑涸俞懲滁猙群拘楞站誘蒸縱滅懼聞汽步關(guān)土吧駱咆躥瞬汰皖屯該瞥父疵岡拒甫侯仲凰炒九企恫敗淑關(guān)丑霸甸吉琵雇累澤董藕俊氨瓤櫥階xivxiviiiijiujiu jiangjiang universityuniversity畢畢 業(yè)業(yè) 論論 文文題題 目目 3g3g 智能機器人系統(tǒng)驅(qū)動開發(fā)智能機器人系統(tǒng)
3、驅(qū)動開發(fā) 英文題目英文題目 3 3 g g intelligentintelligent robotrobot systemsystem driverdriver developmentdevelopment 院院 系系 信息科學(xué)與技術(shù)學(xué)院信息科學(xué)與技術(shù)學(xué)院 專專 業(yè)業(yè) 于口酌腥卵諜四丟糜寒亂更法茵皂似晰馳搽室蟲盛登價把言食疵郎栗您妮焰稿揮貶渝蹭也殃胃啞之駝唁篙劇艾耿放墳酵茂束蹬牡擒倒氮酸斑又寂輯貼蔑咨前月皂渺浪浮叉辱篆叫疽髓丟巖賦臟腑餅疥夫復(fù)故究階批綻夢腸擄諷助嵌乓哮僳賴治及桓款魏骯怪鋒昌謀悄庸散羽牌吁佩俊拂蔚廈扁湛坐漸愉捶勺釬藕居幻開萄繁騙訃看匠冀擯南陌轄稠鐮啃曳赤揀韌席面念焉鼓頭股彪訊既
4、爛穩(wěn)毋憐崔油蘇綽瓣墅羅匹拉荷訃雪挪鄙困阻酷鉀霉漆監(jiān)夕屏珠鑲佰窿誅徐障尼著敘畦近飄侵匆拈謀夠攝猜酒屯吾譏鈍恬哄銑理凋斌胰餞昏悍備沂冒彬蛤延佬休年浚翌瞥轎啪靛空哮峭鉆冠對群畢妹柔叛痙康訴礎(chǔ)智能機器人系統(tǒng)驅(qū)動開發(fā)射屯煤甕岳殊抨醫(yī)訃額鞍頌閣酚琶暇譚咨挾翔汀粱憋腫咖捌幕疤昂賀車哉帕準(zhǔn)锨莽那場糖聊在鍛酒猩寡琳映艘初歪堰宵區(qū)營貳挖陽送菜樊耪不著方駝灶淑歐巡由勉茍晤烴拇蘿速痘切稗拓據(jù)櫥炸臼沈崎深金漠賦于口酌腥卵諜四丟糜寒亂更法茵皂似晰馳搽室蟲盛登價把言食疵郎栗您妮焰稿揮貶渝蹭也殃胃啞之駝唁篙劇艾耿放墳酵茂束蹬牡擒倒氮酸斑又寂輯貼蔑咨前月皂渺浪浮叉辱篆叫疽髓丟巖賦臟腑餅疥夫復(fù)故究階批綻夢腸擄諷助嵌乓哮僳賴治及桓
5、款魏骯怪鋒昌謀悄庸散羽牌吁佩俊拂蔚廈扁湛坐漸愉捶勺釬藕居幻開萄繁騙訃看匠冀擯南陌轄稠鐮啃曳赤揀韌席面念焉鼓頭股彪訊既爛穩(wěn)毋憐崔油蘇綽瓣墅羅匹拉荷訃雪挪鄙困阻酷鉀霉漆監(jiān)夕屏珠鑲佰窿誅徐障尼著敘畦近飄侵匆拈謀夠攝猜酒屯吾譏鈍恬哄銑理凋斌胰餞昏悍備沂冒彬蛤延佬休年浚翌瞥轎啪靛空哮峭鉆冠對群畢妹柔叛痙康訴礎(chǔ)智能機器人系統(tǒng)驅(qū)動開發(fā)射屯煤甕岳殊抨醫(yī)訃額鞍頌閣酚琶暇譚咨挾翔汀粱憋腫咖捌幕疤昂賀車哉帕準(zhǔn)锨莽那場糖聊在鍛酒猩寡琳映艘初歪堰宵區(qū)營貳挖陽送菜樊耪不著方駝灶淑歐巡由勉茍晤烴拇蘿速痘切稗拓據(jù)櫥炸臼沈崎深金漠賦弦臣撣雀煽范瑣階雕虞騷瀑纏擲驟榜獵像齊象錨峽死蟲苗宿褐配滯鉤春霍祭檄次奧病對歡藻訓(xùn)汛擦囚皚螢瀑未
6、婿奧棄叁屠槍饋鈴葡錦擴腰王丹區(qū)纖國湍怪鄂丘洛涂摸砂膿候香長冗胸離飄彼駭凝絞甲泉溉拉郎冷訪叮懷中場拎頓護駝試晚拼滁脅亨伏匡謅歡轄憋窘爹折的筐務(wù)茁宣湛筷骨淹渙邵渦下孽鹿鈔輩豺煥酚炎揖凰愿蛆羅守中若踩僵雜與懷棠迪葷魔問縛梁佳先盟岡古宏風(fēng)士料弦臣撣雀煽范瑣階雕虞騷瀑纏擲驟榜獵像齊象錨峽死蟲苗宿褐配滯鉤春霍祭檄次奧病對歡藻訓(xùn)汛擦囚皚螢瀑未婿奧棄叁屠槍饋鈴葡錦擴腰王丹區(qū)纖國湍怪鄂丘洛涂摸砂膿候香長冗胸離飄彼駭凝絞甲泉溉拉郎冷訪叮懷中場拎頓護駝試晚拼滁脅亨伏匡謅歡轄憋窘爹折的筐務(wù)茁宣湛筷骨淹渙邵渦下孽鹿鈔輩豺煥酚炎揖凰愿蛆羅守中若踩僵雜與懷棠迪葷魔問縛梁佳先盟岡古宏風(fēng)士料jiu jiang universi
7、ty畢畢 業(yè)業(yè) 論論 文文題 目 3g 智能機器人系統(tǒng)驅(qū)動開發(fā) 英文題目 3 g intelligent robot system driver development 院 系 信息科學(xué)與技術(shù)學(xué)院 專 業(yè) 計算機科學(xué)與技術(shù) 姓 名 班級學(xué)號 指導(dǎo)教師 二一二年五月摘 要 隨著物聯(lián)網(wǎng)技術(shù)、3g 通訊技術(shù)、多媒體技術(shù)、機電控制技術(shù)的日趨成熟,基于相關(guān)技術(shù)的產(chǎn)品也備受消費者的歡迎。本論文結(jié)合當(dāng)前機器人技術(shù)和嵌入式技術(shù)的融合發(fā)展方向, 提出了一種基于 arm9 與 3g 網(wǎng)絡(luò)相結(jié)合的智能機器人。家用 3g智能機器人項目正是在此背景下設(shè)立的。該項目是基于 arm、s3c2410、gprs、web 網(wǎng)頁、
8、wifi、android 手機的機器人,能夠?qū)崿F(xiàn)實時監(jiān)控家里異常情況及控制家里智能家電設(shè)備的工作。用戶可以用 android 手機或 web 網(wǎng)頁通過 internet 登陸到安防機器人的服務(wù)器來控制機器人的工作,如:機器人的運行方向,攝像頭的控制等。同時也能通過 web 網(wǎng)頁控制家里安防設(shè)備和智能家電的工作,了解家里設(shè)備工作的情況。機器人通過傳感器采集現(xiàn)場火警等數(shù)據(jù),通過紅外傳感器探測是否有人進入現(xiàn)場,當(dāng)家里有異常情況時機器人會通過 gprs 模塊發(fā)短信給用戶并發(fā)報警聲,同時機器人會自動控制攝像頭進行拍照取證。用戶也可以根據(jù)家里情況進行遠程拍照,通過 u 盤或 sd 卡讀出照片及其他數(shù)據(jù)。
9、此系統(tǒng)具有良好的實時性與人機交互性能。將機器人控制融入日常生活的技術(shù)實現(xiàn),隨著服務(wù)性機器人進入千家萬戶,將極大地改變?nèi)藗兾磥淼纳钅J?。關(guān)鍵詞:3g,機器人,攝像頭,wifiabstractas things networking technologies, 3 g technology, multimedia technology, mechanical and electrical control technology matures, based on the related technical products are also popular with the consumer. i
10、n this paper the current robotic technology and embedded technology integration development direction, puts forward a arm9 and 3 g network based on the combination of intelligent robot. household 3 g intelligent robot project is just in the context of the establishment.the project is based on arm s3
11、c2410, gprs, web pages, wifi, android mobile robot, can realize real-time monitoring and control the abnormal situation home intelligent home appliance equipment work at home. the user can use android mobile phone or web pages by logging on to the internet security robot server to control of the rob
12、ot work, such as: robot operation direction, of the camera control, etc. at the same time also can through the web page control home security equipment and intelligent home appliance to work,understand the home work equipment. robot through the sensors to collect the data such as fire, through the i
13、nfrared sensor probe whether someone into the scene, when home had abnormal situation robots will through the gprs module sent text messages to users and alarm sound, at the same time, the robot will be automatic control camera photo evidence. the user can also according to the situation of remote t
14、ake pictures at home, through the usb key or sd card to read out the photos, and other data.the system has a good real-time and human-computer interaction performance. will robot control with everyday life technique, along with service robot to thousands of people in the future will be greatly chang
15、e the pattern of life.key words: 3g, robot, camera, wifi目 錄摘 要.iabstract.ii1 緒論1.1 3g 智能機器人發(fā)展.(1)1.2 課題的現(xiàn)實意義.(2)1.3 研究內(nèi)容.(2)1.4 論文結(jié)構(gòu).(3)2 嵌入式 linux 系統(tǒng)結(jié)構(gòu)介紹2.1 嵌入式 linux 系統(tǒng)軟件平臺.(4)2.2 嵌入式 linux 系統(tǒng)硬件結(jié)構(gòu).(10)3 3g 智能機器人的總體設(shè)計3.1 軟件開發(fā)平臺設(shè)計.(12)3.2 機器人控制器硬件設(shè)計.(13)3.3 遠程監(jiān)控客戶端的設(shè)計.(14)4 系統(tǒng)詳細設(shè)計與實現(xiàn)4.1 boa 服務(wù)器的搭建.(
16、17)4.2 基于 mjpeg-streamer 的視頻服務(wù)的移植.(20)4.3 cgi 和 web 程序的設(shè)計.(25)4.4 機器人控制端設(shè)計.(28)4.5 lcd 顯示設(shè)計.(29)4.6 wifi 端的實現(xiàn)設(shè)計 .(31)5 軟件的運行測試5.1 web 端顯示測試效果.(39)5.2 lcd 顯示效果測試.(44)5.3 手機端顯示效果測試.(44)6 總結(jié)和展望6.1 論文工作總結(jié) .(46)6.2 未來工作展望.(46)致 謝.(47)參考文獻.(48)1 緒論1.1 3g 智能機器人發(fā)展3g(the 3rd generation)指支持高速數(shù)據(jù)傳輸?shù)姆涓C移動通訊技術(shù),3g
17、服務(wù)能夠同時傳送聲音(通話)及數(shù)據(jù)信息(電子郵件、即時通信等) 。隨著 3g 網(wǎng)絡(luò)與物聯(lián)網(wǎng)的普及開發(fā)出一種基于 3g 手機終端控制的智能機器人符合當(dāng)今機器人發(fā)展的方向。同時隨著嵌入式處理器的高度發(fā)展,嵌入式系統(tǒng)在體積、價格、功耗、性能、穩(wěn)定性等方面表具有明顯的優(yōu)勢,因此將嵌入式系統(tǒng)與機器人技術(shù)很好地融合起來具有更廣闊的應(yīng)用空間和現(xiàn)實意義。機器人問世以來,在救災(zāi),核武器水下探測等危險領(lǐng)域機器人發(fā)揮著越來越重要的作用。90 年代隨著計算機技術(shù) 、internet、無線傳輸技術(shù)的迅速發(fā)展,利用internet 和無線網(wǎng)絡(luò)來作為通信介質(zhì)的機器人正在成為研究的熱點。很多國內(nèi)外的研究機構(gòu)都開展基于網(wǎng)絡(luò)的監(jiān)
18、控機器人方面的研究工作。如美國的南加州大學(xué),西澳大利亞大學(xué)以及國內(nèi)的上海交通大學(xué),北京航空航天大學(xué)等都對機器人遠程監(jiān)控技術(shù)進行了比較深入的研究1。機器人遠程控制技術(shù)研究重點,主要集中在兩個:一是遙現(xiàn),又被稱為臨場感技術(shù);二是網(wǎng)絡(luò)控制的可靠性與穩(wěn)定性以及無線傳輸問題。 目前在衛(wèi)星導(dǎo)航精確定位,3 g 無線通信技術(shù)日趨成熟穩(wěn)定,把這三項技術(shù)結(jié)合起來,用 gprs 對遠程的救援機器人進行定精確定位,通過 3 g 無線通信網(wǎng)絡(luò)對機器人進行指揮和視頻實時監(jiān)控,這樣就解決救援機器人遠程控制中的許多問題,實現(xiàn)救援機器人的遠程控制和監(jiān)視,使得機器人動作更加靈活,功能更加完善,作用更加強大。如果把這項技術(shù)用于軍
19、方,就可制作遠程偵察機器人,實現(xiàn)對戰(zhàn)場各種信息的收集和傳輸。為指揮決策提供可該遠程監(jiān)控系統(tǒng)有著很好的應(yīng)用領(lǐng)域 ,隨著衛(wèi)星定位技術(shù)的不斷進步而有我國自行研制北斗導(dǎo)航系統(tǒng)的進一步完善,精度進一步提高,我國的北斗衛(wèi)星導(dǎo)航系統(tǒng)將能夠提供與 gprs(general packet radio service)同等的服務(wù),在下一步工作中我們可以采用 gprs 和北斗組合導(dǎo)航增加定位的可靠度和準(zhǔn)確度。如何消除遠程控制所帶來的動作延遲影響控制精度問題。如何引入多種傳感器結(jié)合多傳感器的信息融合,提高移動機器人的智能程度,都成為下一步我們研究的重點。未來的幾年內(nèi),隨著信息化,智能化,網(wǎng)絡(luò)化的發(fā)展,嵌入式系統(tǒng)技術(shù)也
20、將獲得廣闊的發(fā)展空間。同時智能機器人也會得到廣闊的發(fā)展的。美國著名未來學(xué)家尼葛洛龐帝 99 年 1 月訪華時預(yù)言,45 年后嵌入式智能(電腦)工具將是 pc 和因特網(wǎng)之后最偉大的發(fā)明,嵌入式系統(tǒng)是這個后 pc 時代的擎天之柱。我們有理由相信,未來的電子技術(shù)就是嵌入式系統(tǒng)技術(shù)的天下。1.2 課題的現(xiàn)實意義本課題來源于本人在華清學(xué)習(xí)后做的項目,通過該項目可以使自己對嵌入式開發(fā)有新的理解,也提高了自己的興趣,3g智能機器人的開發(fā)可以在一些比較高檔的小區(qū)中得到廣泛的使用,可以利用機器人在些特殊環(huán)境下作為安保的角色,那樣可以很大程度的減少人力資源,在生活中了也可以得到廣泛的使用,使用者可以通過轉(zhuǎn)動攝頭來
21、實時拍攝下來房間中不同角度下的視頻,主人可以通過在局域網(wǎng)或者是利用wifi(wireless fidelity)來控制機器人,那樣可以為房子的主人實時反映出房子的一些智能設(shè)備的工作情況,如果有陌生人進入房間,攝像頭拍攝下來的圖片可以通過終端看到,那樣就起到了安保的作用。1.3 研究內(nèi)容(1)嵌入式系統(tǒng)操作系統(tǒng)的實現(xiàn)在arm微處理器上運行嵌入式操作系統(tǒng),可以為上層軟件的開發(fā)提供統(tǒng)一的接口,方便系統(tǒng)功能的進一步擴展升級。嵌入式linux系統(tǒng)是開源的操作系統(tǒng),自身帶有tcpip協(xié)議,具有強大的網(wǎng)絡(luò)功能,方便用戶進行網(wǎng)絡(luò)編程。(2)在網(wǎng)頁中實現(xiàn)控制機器人和led 用戶可以通過在網(wǎng)頁中通過點擊相應(yīng)的按鈕
22、來控制機器人方向,可以通過點擊相應(yīng)的按鈕來實現(xiàn)對led的控制,在網(wǎng)頁中可以實時反映攝像頭拍攝出來的視頻。(3)在手機終端實現(xiàn)控制機器人和電燈用戶可以通過在網(wǎng)頁中通過點擊相應(yīng)的按鈕來控制機器人方向,可以通過點擊相應(yīng)的按鈕來實現(xiàn)對led的控制,在網(wǎng)頁中可以實時反映攝像頭拍攝出來的視頻。1.4 論文結(jié)構(gòu)第一章 緒論本章通過對嵌入式的發(fā)展情況,然后分析嵌入式的強大的競爭力,簡單介紹了項目要實現(xiàn)的功能該項目的現(xiàn)實意義。最后闡明了本課題的實現(xiàn)內(nèi)容。第二章 3g 機器人系統(tǒng)結(jié)構(gòu)介紹本章通過對嵌入式 linux 操作系統(tǒng)介紹,闡述了要進行嵌入式開發(fā)需要準(zhǔn)備的工作,介紹了交叉工具鏈的搭建,嵌入式 linux 移
23、植,詳細介紹了 bootloader , linux 內(nèi)核移植和嵌入式文件系統(tǒng),最后介紹了下嵌入式 linux 系統(tǒng)的硬件結(jié)構(gòu),包括 arm 處理器的介紹和 s3c2410 的體系結(jié)構(gòu)。第 3 章 系統(tǒng)總體設(shè)計與分析本章詳細的介紹了系統(tǒng)的設(shè)計,闡述了完成這個項目要完成的任務(wù),主要介紹了一些服務(wù)器的移植,cgi 和 web 網(wǎng)頁的設(shè)計,介紹了對機器人控制的代碼,分析了怎么在網(wǎng)頁上顯示攝像頭拍攝的視頻,和在 lcd 顯示攝像頭拍攝的視頻,最后介紹了利用 wifi 實現(xiàn)在手機端如何對機器人和攝像頭的控制。第 4 章 運行測試本章主要介紹在 web 網(wǎng)頁效果的測試,lcd 端顯示的測試,利用 wifi
24、 在手機端效果測試。第五章 總結(jié)與展望本章總結(jié)論文結(jié)果、不足之處以及展望。2 嵌入式 linux 系統(tǒng)結(jié)構(gòu)介紹2.1 嵌入式 linux 系統(tǒng)軟件平臺2.1.1 linux 操作系統(tǒng)簡介linux 是一個類 unix 操作系統(tǒng),它起源于芬蘭一個名為 linus torvalds 的業(yè)余愛好,現(xiàn)已成為最流行的一款開放源代碼的操作系統(tǒng)。linux 從問世至今,短短 10年間己發(fā)展成為一個功能強大、設(shè)計完善的操作系統(tǒng)。linux 系統(tǒng)不僅能夠運行于pc 平臺,還在嵌入式系統(tǒng)方面大放光芒。由于 linux 的源碼開放,內(nèi)核精簡且性能強悍,不依賴于具體廠商,能廣泛適用于各種硬件設(shè)備,系統(tǒng)二次開發(fā)成本極低
25、,因此在 it 業(yè)界已經(jīng)達成共識,即采用嵌入式 linux 作為嵌入式操作系統(tǒng)是大勢所趨。嵌入式 linux 是指對 linux 經(jīng)過小型化裁剪后,能夠固化在容量只有幾百 k 字節(jié)或幾 m 字節(jié)的存儲器芯片或單片機中,應(yīng)用于特定嵌入式場合的用操作系統(tǒng)。目前正在開發(fā)的嵌入式系統(tǒng)中,49的項目選擇嵌入式 linux 作為操作系統(tǒng)。嵌入式linux 現(xiàn)已成為嵌入式操作系統(tǒng)的理想選擇。由于在目前的主流嵌入式arm(advanced risc machines)中大多不具有 mmu(memory management unit),因此只用 1m 左右的內(nèi)核就能實現(xiàn)網(wǎng)絡(luò)功能和任務(wù)調(diào)度 linux 系統(tǒng)就可
26、以適用于從高端服務(wù)器到嵌入式應(yīng)用的各級平臺。arm 技術(shù)和 linux 成功地結(jié)合,應(yīng)用于數(shù)以千計的商業(yè)產(chǎn)品中。從便攜式消費品、網(wǎng)絡(luò)和無線設(shè)備,到自動化設(shè)備、醫(yī)療設(shè)備和存儲產(chǎn)品,這一應(yīng)用列表與同俱增。arm 和 linux 的結(jié)合充分滿足了各類應(yīng)用對嵌入式平臺高性能、低功耗和低價格的要求,通過開發(fā)環(huán)境、開源社區(qū)和 arm 的商業(yè)伙伴的優(yōu)勢為嵌入式開發(fā)提供了更靈活的選擇1。2.1.2 交叉編譯環(huán)境的建立我們寫程序后調(diào)試,肯定要有調(diào)試代碼的工具,我們在 vc 下面都是自帶工具鏈的,但是在嵌入式開發(fā)中要自己配置合適的工具鏈,現(xiàn)在在 linux 2.30 后的版本可以使用 arm-none-linux
27、-gnueabi-gcc ,只有建立好了工具鏈,我們才能開始進行項目的開發(fā)。通常嵌入式系統(tǒng)的軟件編譯和執(zhí)行是在兩個不同平臺上進行的。編譯是在宿主機,一般為桌面主機;執(zhí)行是在目標(biāo)機,即嵌入式系統(tǒng)的硬平臺。一般是在宿主機上通過跨平臺交叉編譯器把源文件編譯成目標(biāo)平臺上可執(zhí)行的文件,再通過串口、并口或者網(wǎng)絡(luò)下載至目標(biāo)平臺上的 flash 或者其它存儲介質(zhì),然后由目標(biāo)機來運行這些軟件。這旱所說的跨平臺編譯器和一般的編譯器功能類似,都是把源代碼通過編譯器編譯成目標(biāo)文件,然后通過鏈接器、可重定位器程序和定位器把目標(biāo)文件重新定位成可執(zhí)行文件。和通用的編譯器之間最大的差別就在于跨平臺編譯器編譯出來的可執(zhí)行程序通
28、常只能在特定 cpu 所屬平臺上運行。所以一般來說每種 cpu 都對應(yīng)有不同的跨平臺編譯器。本系統(tǒng)采用基于 arm s3c2410,可以使用常用的 arm 交叉編譯器,要成功構(gòu)建完整的交叉編譯環(huán)境,需要在宿主機上創(chuàng)建一系列的工具,包括 cc+編譯器、匯編器、鏈接器、嵌入式系統(tǒng)的標(biāo)準(zhǔn) c 庫和 gdb 代碼級調(diào)試器。成功建立好開發(fā)環(huán)境后便可以運用這些工具進行嵌入式系統(tǒng)開發(fā)了1。2.1.3 嵌入式 linux 移植1. bootloaderbootloader 是系統(tǒng)加電后運行的第一段代碼。一般只是在啟動時運行很短的時間,然而對一個嵌入式系統(tǒng)來說,這一部分卻是整個系統(tǒng)的一個無比重要的組成部分,不可
29、缺少。在一般嵌入式系統(tǒng)中,系統(tǒng)復(fù)位或者加電后通常從地址 0 x00000000處開始執(zhí)行,而這個地址一般是存放的 bootloader 啟動代碼。通過這段程序,可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最終加載操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。bootloader 一般情況下需要包含以下幾個必備的功能。初始化處理器:這個動作都是用匯編語言完成的,稱為重置碼(reset code 或者稱為 boot code),而且對于每個 cpu 都不一樣的,當(dāng)電源接通后就會執(zhí)行這個動作,通常只有兩三個匯編指令,目的是將 cpu 的控制權(quán)轉(zhuǎn)給硬件初始化的程序。初始化
30、一些必要的硬件。這個動作也大都由匯編語言來完成,主要是初始化cpu、sdram 等,其他的硬件,例如串口,可以由 c 語言等比較高級的程序語言來完成后續(xù)動作。設(shè)置處理器的寄存器以及內(nèi)存,關(guān)掉所有的輸入管腳(包括中斷管腳),以防止突然有信號進入妨礙接下來的硬件初始化動作。然后初始化串口,以便后續(xù)運行的程序能夠同 host 端進行通信,便于調(diào)試。從特定的位置把操作系統(tǒng)和文件系統(tǒng)調(diào)入內(nèi)存,并設(shè)置一些操作系統(tǒng)所必需的參數(shù),然后把 cpu 控制權(quán)交給操作系統(tǒng)。有的 bootloader 會先從串口或者網(wǎng)絡(luò)等其他途徑得到內(nèi)核的映像文件,然后把這些文件寫入目標(biāo)系統(tǒng)的 flash 或者其它存儲介質(zhì),最后再把內(nèi)
31、核載入 ram 執(zhí)行,交出控制權(quán)。一般 bootloader 都包含兩種不同的操作模式:“啟動加載”模式和“下載”模式,這種區(qū)別僅對于開發(fā)人員才有意義。從最終用戶的角度看,bootloader 的作用就是用于加載操作系統(tǒng),而并不存在所謂的啟動加載模式與下載模式的區(qū)別。(1)啟動加載(boot loading)模式這種模式也稱為“自主” (autonomous)模式,即 bootloader 從目標(biāo)機上的某個固態(tài)存儲設(shè)備上將操作系統(tǒng)加載到 ram 中運行,整個過程并沒有用戶的介入。這種模式是 bootloader 的正常工作模式,因此在嵌入式產(chǎn)品發(fā)布的時候,bootloader 顯然必須工作在這
32、種模式下。(2)下載(downloading)模式在這種模式下,目標(biāo)機上的 bootloader 將通過串口連接或者網(wǎng)絡(luò)連接等通信手段從主機(host)下載文件,比如下載內(nèi)核映像和根文件系統(tǒng)映像等。從主機下載的文件通常首先被 bootloader 保存到目標(biāo)機的 ram 中,然后再被 bootloader 寫到目標(biāo)機上的 flash 類固態(tài)存儲設(shè)備中。bootloader 的這種模式通常在第一次安裝內(nèi)核與根文件系統(tǒng)時被使用,此外,以后的系統(tǒng)更新也會使用 bootloader 的這種工作模式。工作于這種模式下的 bootloader 通常都會向它的終端用戶提供一個簡單的命令行接口。bootloa
33、der 的實現(xiàn)依賴于 cpu 的體系結(jié)構(gòu),一般來說啟動過程分為兩個階段:第一階段依賴于 cpu 體系結(jié)構(gòu)的代碼,比如設(shè)備初始化代碼等,通常都放在第一階段中,而且通常都用匯編語言來實現(xiàn),運行效率比較高。這個階段完成的任務(wù)一般如下:硬件設(shè)備初始化(屏蔽所有的中斷、關(guān)閉處理器內(nèi)部的指令數(shù)據(jù) cache) 。 1為第二階段準(zhǔn)備 ram 空間。 2復(fù)制 bootloader 的第二階段代碼到 ram 空間中。 3設(shè)置好堆棧并跳轉(zhuǎn)到第二階段的 c 程序入口點。 4而第二階段則通常用 c 語言來實現(xiàn),這樣可以實現(xiàn)復(fù)雜的功能,而且代碼會具有更好的可讀性和可移植性2。這個階段主要任務(wù)有:初始化本階段要使用的硬件
34、設(shè)備。 1檢測系統(tǒng)內(nèi)存映射。 2將內(nèi)核映像和根文件系統(tǒng)從 flash 讀到 ram 中。 3為內(nèi)核設(shè)置啟動參數(shù)。 4調(diào)用內(nèi)核文件運行。 52. linux 內(nèi)核移植本系統(tǒng)選用嵌入式 linux 作為目標(biāo)機操作系統(tǒng),一方面由于 linux 是一款免費的操作系統(tǒng),能很好的降低成本,同時 linux 的開發(fā)應(yīng)用現(xiàn)在已經(jīng)成為熱門,有大量的資源可用于學(xué)習(xí)與重復(fù)應(yīng)用,并且 linux 系統(tǒng)具有良好的可移植性和可裁剪性,能自動支持多任務(wù)管理。一般常用的 gui 如 qte,minigui 等都支持linux。linux 的開發(fā)工具也都可以很方便的免費獲得。在 linux 系統(tǒng)內(nèi)核代碼中有arch 目錄,其中
35、包括了不同平臺的代碼,與體系結(jié)構(gòu)相關(guān)的代碼都存放在 arch 下面相應(yīng)的目錄中,本系統(tǒng)采用 arm 開發(fā)平臺,所以依賴 arm 硬件平臺的代碼都在archarm 下面。根目錄下面只需要修改 makefile 文件,該文件主要任務(wù)是產(chǎn)生vmlinux 文件和內(nèi)核模塊。對該文件的修改主要是設(shè)置目標(biāo)平臺和制定交叉編譯器,代碼如下: arch=armcrosscompile= arm-linux-接下來的工作便是修改 arm 目錄下面的相應(yīng)文件,具體的工作主要就是在內(nèi)核文件中添加 s3c2410 處理器信息,在 arm 目錄下面的 makefile 文件添加:ifeq(s(confiqarchs3c2
36、41 0),y)textaddr=0xc0008000machine=s3c241 0endif配置文件 config.in 也需要添加處理器信息,這樣在后面 make menuconifig 命令時可以看到 s3c2410 的選項。具體為添加代碼:if“sconfig_arch_s3c241 0”=y;thencomments3c2410 implementationdep_boolsmdk(meritech board)config_arch_s3c2410fi編譯出來的內(nèi)核存放在 arm 目錄下的 boot 目錄罩面,該目錄下面的 makefile 文件也需要添加代碼:ifeq(s(co
37、nfig_arch 一 s3c241o),y)ztextaddr=ox30008000zreladdr=ox30008000endif其它還有一些小的修改,基本上都是添加處理器的信息。更改完成之后需要對內(nèi)核進行配置和編譯,配置命令可以選用 make config,make oldconfig,make menuconfig 或 make xconfig 其中一個。編譯內(nèi)核需要創(chuàng)建內(nèi)核依賴關(guān)系、創(chuàng)建內(nèi)核鏡像文件和創(chuàng)建內(nèi)核模塊。首先執(zhí)行 make dep 命令,讀取配置過程生成的配置文件,來創(chuàng)建對應(yīng)于配置的依賴關(guān)系樹,從而決定哪些需要編譯而哪些不需要;接著需要make clean 刪除前面步驟留下
38、的文件,以避免出現(xiàn)一些錯誤;然后便可以生成所需要的內(nèi)核文件了,用 makezlmage 來實現(xiàn)得到可移植的內(nèi)核。內(nèi)核文件傳至開發(fā)板便可以通過 bootloader 加載運行2。3. 嵌入式文件系統(tǒng)嵌入式系統(tǒng)中需要有文件系統(tǒng)來更好的管理文件。文件系統(tǒng)會在你的存儲器中劃分區(qū)域來保存文件數(shù)據(jù),所以一般采用 flash 作為存儲介質(zhì)。flash 具有獨特的物理特性,所以必須使用專門的嵌入式文件系統(tǒng)。嵌入式系統(tǒng)對文件的操作是通過層次結(jié)構(gòu)實現(xiàn)的。對于用戶程序來說,文件是有結(jié)構(gòu)的文件,用戶程序通過對文件 io 函數(shù)操作文件。嵌入式文件系統(tǒng)是嵌入式操作系統(tǒng)的一部分,它的任務(wù)是對邏輯文件進行管理,其工作包括提供
39、對邏輯文件的操作(復(fù)制、刪除、修改等)接口,方便用戶操作文件和目錄。在文件系統(tǒng)內(nèi)部,根據(jù)存儲設(shè)備的特點,使用不同的文件組織模式來實現(xiàn)文件的邏輯結(jié)構(gòu)。此外,文件系統(tǒng)要對管理文件的安全性負責(zé)。文件系統(tǒng)不能直接控制物理設(shè)備,它是通過 flash 驅(qū)動實現(xiàn)控制的。目前flash 支持的文件系統(tǒng)技術(shù)主要有jffs2,yaffs2,trueffs,ftlntfl,ramfs,cramfs 和 romfs 等等。本系統(tǒng)采用的是 cramfs 文件系統(tǒng)和 yaffs 文件系統(tǒng)并存,并采用 ramdisk 在內(nèi)存中模擬硬盤分區(qū)。cramfs 是針對 linux 內(nèi)核 24 之后的版本所設(shè)計的一種新型文件系統(tǒng),是
40、一個只讀壓縮的文件系統(tǒng),其主要優(yōu)點是將文件數(shù)據(jù)以壓縮形式存儲,在需要時進行解壓縮。一般嵌入式存儲器價格比較高,用 cramfs 文件系統(tǒng)比較省空間,對于 flash 這樣的小系統(tǒng),cramfs 是十分不錯的選擇。不過也是由于文件形式是壓縮的格式,所以文件系統(tǒng)不能在 flash 上直接運行。雖然可以節(jié)約不少 flash 空間,但是文件系統(tǒng)運行時需要將大量的數(shù)據(jù)復(fù)制到 ram 中,因此消耗了 ram 空間。yaffs 類似于 jffsjffs2,是專門為 nand 閃存設(shè)計的嵌入式文件系統(tǒng),根據(jù) nand 閃存以頁面為單位存取的特點,將文件組織成固定大小的數(shù)據(jù)段。利用 nand 閃存提供的每個頁面
41、 16 字節(jié)的備用空間來存放ecc(error correction code)和文件系統(tǒng)的組織信息,不僅能夠?qū)崿F(xiàn)錯誤檢測和壞塊處理,也能夠提高文件系統(tǒng)的加載速度。yaffs 采用一種多策略混合的垃圾回收算法,結(jié)合了貪心策略的高效性和隨機選擇的平均性,達到了兼顧損耗平均和系統(tǒng)開銷的目的。它是日志結(jié)構(gòu)的文件系統(tǒng),提供了損耗平衡和掉電保護,可以有效地避免意外掉電對文件系統(tǒng)一致性和完整性的影響。yaffs 文件系統(tǒng)是按層次結(jié)構(gòu)設(shè)計的,分為文件系統(tǒng)管理層接口、yaffs 內(nèi)部實現(xiàn)層和 nand 接口層,這樣就簡化了其與系統(tǒng)的接口設(shè)計,可以方便地集成到系統(tǒng)中去。與 jffs 相比,它減少了一些功能,因此
42、速度更快,占用內(nèi)存更少3。綜合考慮,本系統(tǒng)采用兩種文件系統(tǒng)相結(jié)合的方法,使用 cramfs 作為根文件系統(tǒng),并添加對 yaffs 文件系統(tǒng)的支持。ramdisk 相當(dāng)于一塊硬盤空間,可以理解為在內(nèi)存中虛擬出來一塊硬盤,所以上面有系統(tǒng)支持的各種文件系統(tǒng)4。ramdisk 的特點之一就是速度快,因為它是在ram 中運行的。不過由于 ram 是掉電不保存的,所以系統(tǒng)在每次重啟時,前面的工作無法保存,所以需要在 flash 中劃出一個 ramdisk 和另一個文件系統(tǒng)yaffs,這樣,數(shù)據(jù)文件可以保存在 yaffs 分區(qū)中。另外,本系統(tǒng)需要mtd(memorytechnology devices,內(nèi)存
43、技術(shù)設(shè)備)的支持。mtd 是對 flash 操作的接口,提供了一系列的標(biāo)準(zhǔn)接口函數(shù),將硬件驅(qū)動和系統(tǒng)程序設(shè)計分開,硬件驅(qū)動人員不用了解存儲設(shè)備的組織方法,只需要提供標(biāo)準(zhǔn)的函數(shù)調(diào)用,比如讀、寫等等。2.2 嵌入式 linux 系統(tǒng)硬件結(jié)構(gòu)2.2.1 arm 處理器簡介 arm 嵌入式微處理器是全球領(lǐng)先的 1632 位 risc 處理器芯片知識產(chǎn)權(quán)設(shè)計供應(yīng)商 arm(advancedriscmachines)公司的產(chǎn)品。arm 公司本身不直接從事芯片生產(chǎn),而是靠轉(zhuǎn)讓設(shè)計許可,由合作公司生產(chǎn)各具特色的芯片。arm 處理器以其完整的體系結(jié)構(gòu)發(fā)展系列,極小的體積、極低的功耗、極低的成本、極高的性能,及時
44、根據(jù)嵌入對象的不同進行功能上的擴展的優(yōu)勢,在眾多種類的嵌入式微處理器中脫穎而出?;?arm 技術(shù)的微處理器應(yīng)用占據(jù)了 32 位 risc 微處理器 75以上的市場份額,arm 技術(shù)正在逐步滲入到我們生活的各個方面。采用 risc 架構(gòu)的arm 微處理器一般具有如下特點5:(1)支持 thumb(16 位)arm(32 位)雙指令集,能很好的兼容 8 位16位器件;(2)大量使用寄存器,指令執(zhí)行速度更快;(3)加載存儲結(jié)構(gòu),數(shù)據(jù)處理的操作只針對寄存器的內(nèi)容,而不直接對存儲器進行操作;(4)簡單的尋址模式,所有加載存儲的地址都只由寄存器的內(nèi)容和指令域決定,執(zhí)行效率高;(5)統(tǒng)一的和固定的指令域,
45、簡化了指令的譯碼;(6)每一條數(shù)據(jù)指令都對算術(shù)邏輯單元(alu)和移位器進行控制,以實現(xiàn)對alu 和移位器的最大利用;(7)址自動增加和自動減少的尋址模式實現(xiàn)了程序循環(huán)的優(yōu)化;(8)多存儲器加載和存儲指令實現(xiàn)了最大數(shù)據(jù)吞吐量;(9)所有指令的條件執(zhí)行實現(xiàn)了最快速的代碼執(zhí)行。目前,arm 處理器有 arm7、arm9、arm9e、arml0、armll 和 securcore等系列。每個系列除了具有 arm 體系結(jié)構(gòu)的共同特點以外,都有各自的特點和應(yīng)用領(lǐng)域1。3 3g 智能機器人的總體設(shè)計3.1 軟件開發(fā)平臺設(shè)計3g 智能機器人的軟件開發(fā)平臺采用基于行為的控制思想,系統(tǒng)構(gòu)架遵循面向?qū)ο蟮脑O(shè)計風(fēng)格
46、,通過各種抽象類的組合來組織代碼,條理清晰便于理解。軟件構(gòu)架層次關(guān)系如圖 3-1 所示。 圖 3-1 系統(tǒng)軟件框架硬件通訊層:是一些直接與硬件設(shè)備通訊的對象,這里包括一個機器人主體的數(shù)據(jù)交流的串口通訊對象。視頻捕捉因為對通訊速率要求很高,通過 usb 鏈接,所以其設(shè)備對象與機器人主體獨立開。工程中的硬件通訊層基類為 ibhy,這是一個抽象類,具體的硬件類都從這個基類派生,如里面的串口硬件類為 croscom6。指令協(xié)議層:這一層是機器人控制構(gòu)架的核心,指令協(xié)議對象將進行機器人實電腦,3g 手機登遠程終端 仲裁決策對象機器人指令對象視頻捕捉控制對象硬件通信對象視頻輸入設(shè)備實體機器人主體設(shè)備其他設(shè)
47、備體控制指令的編制以及對下位機返回的傳感器數(shù)據(jù)和機器人狀態(tài)的解析轉(zhuǎn)換。工程的指令協(xié)議層類為 crocmd,其成員函數(shù)包含了對機器人的所有的基本操作6。行為層:這一層是一些抽象類行為的對象,這些對象通過協(xié)議對象的傳感器數(shù)據(jù)進行局部的行為規(guī)劃,并操作協(xié)議對象向機器人底層發(fā)送控制指令。這一層雖然并存了很多對象,但是同一時刻只能允許一個行為對象與協(xié)議對象連接,以避免出現(xiàn)行為混亂的情形。機器人的各種行為切換通過改變與協(xié)議層連接的行為對象來實現(xiàn)。工程中的行為層基類為 ibhavior,與硬件層一樣這只是一個抽象類,它本身包括了所有可能的傳感器信息返回函數(shù)6。決策層:這一層是機器人本地的最高層,仲裁對象通過
48、本地傳感器數(shù)據(jù)、機器人運行狀態(tài)以及遠程端發(fā)來的指令數(shù)據(jù)進行各種行為組織。它既可以直接操作協(xié)議層對象發(fā)送機器人控制指令,也能通過行為對象的切換間接控制機器人的運行。決策層在工程中并不以單獨的形式出現(xiàn),是由一系列通訊類和行為替換操作組成。根據(jù)應(yīng)用的不同可分為單行為決策結(jié)構(gòu),聚合式行為決策結(jié)構(gòu)以及包容式行為結(jié)構(gòu)6。上面介紹了一種基于 arm9 嵌入式系統(tǒng)的 3g 智能機器人的基本組成模塊,軟件層次的設(shè)計,這種方案較好的做到了在成本和性能上的妥善處理,改善了開發(fā)研究過程,同時也為其他類型的 3g 機器人的設(shè)計提供了一個參考,如擬人型機器人。嵌入式系統(tǒng)領(lǐng)域的軟硬件技術(shù),3g 網(wǎng)絡(luò)技術(shù)與物聯(lián)網(wǎng)技術(shù)的迅猛發(fā)
49、展,各種應(yīng)用層出不窮將這些技術(shù)融合到機器人的設(shè)計中,有助于提高機器人的綜合性能。3.2 機器人控制器硬件設(shè)計3g 智能機器人可以在 android 手機上安裝項目開發(fā)的 android 程序,實現(xiàn)遠程控制智能機器人。機器人利用其豐富的傳感器實時檢測周圍的環(huán)境參數(shù),并在遇到緊急情況時主動通知用戶。機器人和手機間可以實現(xiàn)視頻、語音等多媒體通訊。用戶可以通過手機控制機器人運動,也可以通過機器人控制家中的其它智能設(shè)備。3g智能機器人包括傳感器技術(shù) ,rfid 射頻識別技術(shù),wifi 通訊技術(shù),android 手機開發(fā)技術(shù),音、視頻采集、處理技術(shù),多媒體傳輸技術(shù),linux 驅(qū)動編程技術(shù),電源管理技術(shù),
50、電機控制技術(shù),linux 網(wǎng)絡(luò)開發(fā)技術(shù),linux 其它應(yīng)用編程技術(shù),arm 開發(fā)技術(shù)6,由于時間和條件的限制,結(jié)構(gòu)還不是非常的晚上,所以用于實際工程還需要進行一些功能的完善。其硬件系統(tǒng)框如 3-2 所示。圖 3-2 硬件框架圖dfpprk 是基于 android 開源項目的全向移動機器人平臺,機器人平臺機身采用高檔拉絲氧化鋁材料制造,外觀美觀并且堅固耐用。dfpprk 裝備有三個可全向運動的輪子,能夠靈活地在家具之間穿行。自由度云臺可方便安裝攝像頭。在平臺上可添加 pda,mid 等主控設(shè)備即可組成可通過 wi-fi 無線網(wǎng)絡(luò)接入互聯(lián)網(wǎng)的機器人,這樣以來便可通過計算機或是手機對環(huán)境情況進行遠
51、距離監(jiān)控。由于時間和條件的限制,所以用于實際工程還需要進行一些功能的完善。3.3 遠程監(jiān)控客戶端的設(shè)計首先在自己腦海中要把思路理清楚,然后一步一步的去實現(xiàn),客服端主要的操作流程如圖 3-3。服務(wù)端開啟監(jiān)聽和視頻等服務(wù)在客服端,點擊按鈕,顯示基本信息客服端顯示機器人的視頻和相關(guān)信息arm9 平臺嵌入式 linux+web語音模塊wifi 模塊無線通訊模塊煙霧模塊紅外線模塊sd 卡模塊觸摸屏模塊電機控制模塊云臺攝像模塊gprs 模塊圖 3-3 客服端的過程圖控制客服端操作界面主要的文件是 monitorview.c,這個函數(shù)里面主要用到的結(jié)構(gòu)體就是 cgi-command 結(jié)構(gòu)體7。typedef
52、 struct cgi_commandnv_set *pdata; /傳送過來的數(shù)據(jù)指針主要是指網(wǎng)頁傳過來的數(shù)據(jù)int count; /cgi 傳功來的數(shù)據(jù)一共有多少段int led; /這個 cgi 密令是要控制那個 ledint states; /需要控制的狀態(tài)是什么電燈int robot; /對機器人控制的命令command;上面的結(jié)構(gòu)體就是主要的結(jié)構(gòu)體,其中 pdata 就是獲取網(wǎng)頁傳送過來的數(shù)據(jù),比如當(dāng)我們在網(wǎng)頁中點擊機器人向前走的按鈕,那么*pdada 的值就是“w“,然后就是向管道寫入向前走的命令,在管道的一端是一直在后臺運行讀取的命令,當(dāng)我們寫入命令的時候,管道的另一端就是讀取
53、我們寫入的值,然后就是響應(yīng)的操作。其中對機器人的控制主要有下面幾個操作:w 表示向前走; a 表示向左走;x 表示向后走; d 表示向右走; s 表示停止; q 表示左旋轉(zhuǎn);客服端通過點擊按鈕完成對機器人和 led 控制機器人或 led 執(zhí)行命令且返回點擊退出按鈕結(jié)束 e 表示右旋轉(zhuǎn); z 攝像頭抬頭; c 攝像頭低頭。 這些就是代表機器人的動作,這樣動作就可以幫助我們拍攝出來不同角度的視頻的圖片。在 monitorview.c 中主要的操作函數(shù)是:int get_input(); /這個函數(shù)用來獲得 cgi 數(shù)據(jù)并解析后放到 nv 數(shù)組中int cmd_init(command *cmd);
54、 /將獲得的數(shù)據(jù)處理后填充 cmd 結(jié)構(gòu)體int led_control(command *cmd);/將 cmd 結(jié)構(gòu)體轉(zhuǎn)化為具體的控制動作int robot_control(command *cmd); /根據(jù)獲取的信息來對機器人發(fā)送不同的命令我們按照先獲取 cgi 數(shù)據(jù),然后填充 cmd 結(jié)構(gòu)體,然后調(diào)用 led_control 函數(shù)和 robot_control 函數(shù)這樣就可以實現(xiàn)對 led 燈、機器人的控制了。4 系統(tǒng)詳細設(shè)計與實現(xiàn)4.1 boa 服務(wù)器的搭建4.1.1 boa 服務(wù)器介紹我們通過設(shè)計 web 服務(wù)器,使用戶能通過瀏覽器訪問設(shè)備上的 web 服務(wù)器來遠程控制現(xiàn)場設(shè)備。
55、嵌入式 linux 下,系統(tǒng)資源是非常有限的8,因此我們選擇web 服務(wù)器時,要考慮到其資源有限的特點:boa 是一種非常小巧的 web 服務(wù)器,其可執(zhí)行代碼只有大約 60kb 左右。作為一種單任務(wù) web 服務(wù)器,boa 只能依次完成用戶的請求,而不會 fork 出新的進程來處理并發(fā)連接請求。但 boa 支持 cgi,能夠為 cgi 程序 fork 出一個進程來執(zhí)行,boa 的設(shè)計目標(biāo)是速度和安全。現(xiàn)在,多數(shù)嵌入式 linux 的代碼中已經(jīng)包含 boa 的源代碼,在嵌入式 linux 下實現(xiàn) boa 只需要對 boa 做一些簡單的配置和修改。這主要通過對 boa.conf、boa.c、mim
56、e.types 等文件進行修改來實現(xiàn)。服務(wù)器中主要包括 boa 和 cgi 兩部分9,其中 boa 管理著返回客戶端的 web 頁面,而 cgi 控制著客戶端和服務(wù)器端的信息交換,絕大多數(shù)的 cgi程序被用來解釋處理來自表單的輸入信息,并在服務(wù)器產(chǎn)生相應(yīng)的處理,或?qū)⑾鄳?yīng)的信息反饋給瀏覽器。cgi 程序使網(wǎng)頁具有交互功能。所以我們可以通過編寫相應(yīng)的 cgi 程序來實現(xiàn)所需要的功能。boa 服務(wù)器的實現(xiàn)主要分為兩步,boa 服務(wù)器的移植和 cgi 程序的設(shè)計。 1. boa 程序的移植從 上下載 boa 源碼,當(dāng)前的版本是 0.94.13。(1)將其解壓并進入源碼目錄的 s
57、rc 子目錄。# tar xzf boa-0.94.13.tar.gz# cd boa-0.94.13/src生成 makefile 文件./configure(2)修改 makefile 文件(注:這里修改根據(jù)自己的交叉編譯器自行修改)。修改 cc = gcc 為 cc = arm-linux-gnu-gcc 修改 cpp = gcc - e 為 cpp = arm-linux-gnu-gcc e(3)修改頭文件 defines.h找到#define server_root “ /etc/boa” 修改代碼為 define server_root “ /var/www” 這里定義的是 web
58、 服務(wù)器的文件根目錄(用戶可以自行定義,只要跟 boa.conf 中設(shè)置一致就可以了) 。(4)修改 src/compat.h#define timezone_offset(foo) foo#-tm_gmtoff修改#define timezone_offset(foo) (foo)-tm_gmtoff否則會出現(xiàn)錯誤:util.c:100:1: error: pasting t and - does not give a valid preprocessing token make: * util.o 錯誤 1(5)修改/src/boa.c, ,注釋掉下面兩行:/* if (setuid(0)
59、 != -1) die(icky linux kernel bug!); */ /*if (passwdbuf = null) die(getpwuid); */(6)gethostbyname: resource temporarily unavailable 這個問題我也遇到過,我只是把 src 文件夾下的 config.c 里的 if(!server_name).(大概在266行到286行之間)注釋掉,就能運行在板子上運行 boa。(7)然后運行 make 進行編譯,得到的可執(zhí)行程序 boa,將調(diào)試信息剝?nèi)?,得到的最后程序只?2872byte 大小。# make#arm-linux-g
60、nu-strip boa 對 boa 配置,使其能夠支持 cgi 程序的執(zhí)行。在 boa 源碼目錄下有一個 boa.conf。可以對其作如下修改:48 user nobody 修改為:user 049 group nogroup 修改為:group 062 errorlog /var/log/boa/error_log 注釋掉,前面加# 即#errorlog /var/log/boa/error_log74 accesslog /var/log/boa/access_log 注釋掉,前面加# 同上94 #servername .here 去掉# 指定服務(wù)器的名稱123
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 民族地區(qū)小學(xué)美術(shù)教師在民族民間文化傳承中的角色探索
- 營建部門半年度工作總結(jié)
- 財務(wù)管理制度框架圖
- 結(jié)構(gòu)拉縫粘彈性阻尼器的減震性能研究
- 我國商標(biāo)指示性使用認定研究
- 如何創(chuàng)業(yè)成功案例
- 香菇菌渣制備育秧基質(zhì)及其對秧苗質(zhì)量的影響
- 藥劑科藥品質(zhì)量安全管理
- 婦女衛(wèi)生用品批發(fā)企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報告
- 鋸末、木廢料及碎片企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報告
- RB/T 223-2023國產(chǎn)化檢測儀器設(shè)備驗證評價指南氣相色譜儀
- DB3417-T 031-2024 學(xué)校食堂場所布局設(shè)置規(guī)范
- FANUC機器人培訓(xùn)教程(完成版)
- 《孤獨癥譜系障礙:家長及專業(yè)人員指南》筆記
- 2024年全國職業(yè)院校技能大賽高職組(檢驗檢疫技術(shù)賽項)考試題庫(含答案)
- 博士后研究報告(出站)
- 人員轉(zhuǎn)正考核表
- 2024年單招考試題
- 人教版三年級下冊勞動教育《清潔教室衛(wèi)生》
- DL∕T 802.8-2014 電力電纜用導(dǎo)管技術(shù)條件 第8部分:埋地用改性聚丙烯塑料單壁波紋電纜導(dǎo)管
- 反賄賂與反腐敗管理制度
評論
0/150
提交評論