【畢業(yè)學(xué)位論文】(Word原稿)戶籍管理系統(tǒng)的設(shè)計-軟件工程_第1頁
【畢業(yè)學(xué)位論文】(Word原稿)戶籍管理系統(tǒng)的設(shè)計-軟件工程_第2頁
【畢業(yè)學(xué)位論文】(Word原稿)戶籍管理系統(tǒng)的設(shè)計-軟件工程_第3頁
【畢業(yè)學(xué)位論文】(Word原稿)戶籍管理系統(tǒng)的設(shè)計-軟件工程_第4頁
【畢業(yè)學(xué)位論文】(Word原稿)戶籍管理系統(tǒng)的設(shè)計-軟件工程_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

I 摘 要 近幾年較為流行的 用開發(fā)技術(shù) , 它改變了傳統(tǒng)的 B/S 或 C/ 為軟件實體之間共同協(xié)作提供了公共平臺 。 嵌入式的 務(wù)技術(shù) , 具有功能強大、實時性好、可靠性高和安全性好等優(yōu)點,將成為今后 務(wù)技術(shù)發(fā)展的主流方向。 本文介紹了 定義及其關(guān)鍵技術(shù),對于課題要求嵌入式的 用 軟件虛擬出相應(yīng)的 嵌入式的 開發(fā)環(huán)境 ,利用嵌入式 充當(dāng)嵌入式的 臺。本文就課題實現(xiàn)所須的一些關(guān)于嵌入式和 知識進行了詳細介紹,具體介紹了如何利用 軟件來模擬嵌入式系統(tǒng)。 這樣我們就不必自己去主動解析 了解 細節(jié)。本文是用 C 來實現(xiàn)簡單的客戶端和服務(wù)器端的通信程序。能夠進行簡單的加、減、乘、除和冪運算 ,此外為了驗證功能特此加入 部署股票報價 務(wù) 。 我們本次設(shè)計采用的軟件都是免費的,下載方便使用簡單,由此可見嵌入式 定有著廣袤的前景。 關(guān)鍵詞: 入式系 統(tǒng) , I is in eb it / S / S to a is a of to of is to as to be of of of to to In we to to to is c to a of To or In to eb We of to so of of a we is an 錄 摘 要 錯誤 !未定義書簽。 錯誤 !未定義書簽。 1 緒 論 錯誤 !未定義書簽。 題背景 . 1 題研究的目的和意義 . 1 內(nèi)外概況 . 2 2 系統(tǒng)需求及方案研究 4 統(tǒng)需求分析 . 4 統(tǒng)可行性分析 . 4 發(fā)工具分析和選擇 . 4 鍵技術(shù)分析 . 14 本方案制定 . 17 3 戶籍管理系統(tǒng)的設(shè)計 18 統(tǒng)總體設(shè)計 . 18 統(tǒng)功能描述 . 21 臺程序設(shè)計 . 21 戶籍管理系統(tǒng)的設(shè)計 24 算功能的實現(xiàn) . 24 5 系統(tǒng)運行及結(jié)果分析 28 統(tǒng)運行情況 . 28 果分析 . 28 6 總結(jié)與展望 32 結(jié) . 32 望 . 32 致 謝 33 參考文獻 34 附錄 A 附錄內(nèi)容名稱 35 1 1 緒 論 題背景 目前國內(nèi)外企業(yè)應(yīng)用系統(tǒng)的結(jié)構(gòu)主要有基于 “ 客戶端 /服務(wù)器 ” 的 C/S 結(jié)構(gòu)和基于 “ 瀏覽器 /服務(wù)器 ” 的 B/S 結(jié)構(gòu),雖然兩種結(jié)構(gòu)都曾廣泛應(yīng)用,但隨著軟件技術(shù)的不斷不展,均暴露出了不少問題。 C/S 結(jié)構(gòu),由客戶端與數(shù)據(jù)庫服務(wù)器構(gòu)成??蛻舳伺c用戶進行交流,首先向數(shù)據(jù)庫服務(wù)器發(fā)出請求,然后數(shù)據(jù)庫服務(wù)器響應(yīng)請求,并將結(jié)果返回客戶端。相對于以前的單機結(jié)構(gòu), C/S 模式有了很大發(fā)展,能支持多用戶共享數(shù)據(jù)庫信息。但是,隨著企業(yè)規(guī)模的不斷擴大以及應(yīng)用程序日益復(fù)雜化,這種結(jié)構(gòu)的弊端逐漸暴露出 。 (1)客戶端需要專用軟件支持,而軟件安裝、維護及升級需要在客戶端逐臺進行,工作量大。 (2)系統(tǒng)資源浪費,由于硬件更新遠跟不上軟件的更新 速度,因此客戶不得不在本地硬盤上安裝大量軟件,而實際只用到其中的很小部分。 (3)系統(tǒng)不支持 B/S 結(jié)構(gòu),由 務(wù)器負責(zé)與用戶連接,響應(yīng)用戶請求后先對指令進行內(nèi)部編碼,判斷指令的內(nèi)容,然后執(zhí)行相應(yīng)的操作,需要時調(diào)用應(yīng)用服務(wù)器中企業(yè)對象提供的服務(wù),最后在服務(wù)器中產(chǎn)生動態(tài)的, 面,并回傳到客戶端瀏覽器顯示結(jié)果。 B/S 結(jié)構(gòu)主要是利用了不斷成熟的 覽器技術(shù),結(jié)合瀏覽器的多種腳本語言 (如 術(shù)才能實現(xiàn)其強大功能。 B/S 結(jié)構(gòu)的客戶端無需再裝用戶界 面程序,用戶界面完全由 覽器實現(xiàn),從而使得傳統(tǒng) C/S 結(jié)構(gòu)下的客戶端相比大大 “ 減肥 ” 。但是,隨著 B/S 結(jié)構(gòu)的不斷發(fā)展與應(yīng)用,其不足之處也開始暴露出來,由于它不支持跨平臺通信,因此在大型的企業(yè)級基于 多層分布式體系結(jié)構(gòu)的研究與應(yīng)用應(yīng)用系統(tǒng)中,一直都無法得到很好的應(yīng)用。 無論是 是 構(gòu)都只是同一數(shù)據(jù)庫系統(tǒng)所采用的不同結(jié)構(gòu),無法在由多數(shù)據(jù)庫組成的復(fù)雜系統(tǒng)中進行跨平臺的交互,在一些大型的系統(tǒng)應(yīng)用中,常常要整合現(xiàn)有的各個分布的子系統(tǒng)資源,而采用基于 多層分布技術(shù)正是解決這一難題的關(guān)鍵途徑。 題研究的目的和意義 研究目的: 嵌入式 務(wù)的研究與實現(xiàn)。 術(shù)的發(fā)展將促使 用的成熟和完善 , 而 用模式將為商業(yè)2 應(yīng)用提供指引 , 那就是 , 傳統(tǒng) 用技術(shù)解決的問題是如何讓人來使用 用所提供的服務(wù) 。 要解決如何讓計算機系統(tǒng)來使用 用所提供的服務(wù)。 術(shù)完全基于標(biāo)準(zhǔn)的技術(shù) , 只有基于標(biāo)準(zhǔn) , 所有的開放廠商 才有相同的準(zhǔn)則 , 才能夠在各自的平臺上開發(fā)出具有跨平臺互操作能力的軟件產(chǎn)品和解決方案。 如何在嵌入式設(shè)備中實現(xiàn) 現(xiàn)嵌入式設(shè)備的遠程管理以及遠程獲取設(shè)備的功能及服務(wù) ,是我們研究的重點。 內(nèi)外概況 嵌入式系統(tǒng)無疑是當(dāng)前最熱門最有發(fā)展前途的 入式系統(tǒng)用在一些特定專用設(shè)備上,通常這些設(shè)備的硬件資源(如處理器、存儲器等)非常有限,并且對成本很敏感,有時對實時響應(yīng)要求很高等。特別是隨著消費家電的智能化,嵌入式更顯重要。像我們平常常見到的手機、 子字典、可視電話、 字相機( 數(shù)字攝像機 ( 頂盒 (高清電視 (游戲機、智能玩具、交換機、路由器、數(shù)控設(shè)備或儀表、汽車電子、家電控制系統(tǒng)、醫(yī)療儀器、航天航空設(shè)備等等都是典型的嵌入式系統(tǒng)。 嵌入式技術(shù)的發(fā)展以及對未來工業(yè)革命將產(chǎn)生的巨大影響已經(jīng)引起世界各國的高度關(guān)注。 歐洲目前在航空、汽車電子、工業(yè)、通信和消費電子方面的嵌入式技術(shù)占有領(lǐng)導(dǎo)位置,為了繼續(xù)保持對美國和日本的競爭對手的領(lǐng)先優(yōu)勢,歐盟在 2004年成立了 織,在歐洲范圍內(nèi)整合資金和技術(shù)優(yōu)勢,把嵌入式技術(shù)上升到一個重要的戰(zhàn)略高度進行發(fā)展。 歐盟認為,嵌入式技術(shù)是 將保持巨大的技術(shù)發(fā)展和商業(yè)應(yīng)用機會,掌握嵌入式技術(shù)的領(lǐng)導(dǎo)位置,將具有強大的經(jīng)濟和政治利益。嵌入式系統(tǒng)的應(yīng)用領(lǐng)域非常廣泛,在產(chǎn)業(yè)發(fā)展中的重要性仍在持續(xù)提升。 據(jù)歐盟的統(tǒng)計: 2003年,全球大概有 80億片嵌入式可編程微處理器。到 2010年,預(yù)計會達到 160億片,地球上的人平均有 3個處理器。在航空電子中,嵌入式軟件的開發(fā)成本占整個飛機研制成本的 50%;對于汽車工業(yè),汽車電子在整車價值中的比例逐年提高,將從 1997年的 20%提升到 2010年的 33 消費電子數(shù)量越來越大,據(jù)預(yù)測,到 2010年,僅數(shù)字家在美國的銷售額就將3 達到 2000億歐元。由此我們相信 嵌入式 在未來的發(fā)展中,必定有著廣袤的前景。 對于嵌入式 其意義是重大的。它為我們管理、控制和監(jiān)測各種各樣設(shè)備提供了一個很好的途徑。這種設(shè)備可以是具有有限內(nèi)存資源的 8位或 16位系統(tǒng) , 已足夠提供一個用戶界面 , 而且這種方式是基于 種設(shè)備可以在世界任何一個地方 , 只要它連入 如圖 1入式 圖 1入式 統(tǒng)模型 2 需求分析及方案研究 統(tǒng)需求分析 本次課題的設(shè)計要求 在嵌入式設(shè)備中實現(xiàn) 以輕松實現(xiàn)嵌入式設(shè)備的遠程管理以及遠程獲取該設(shè)備的功能及服務(wù)。嵌入式 同于簡單的嵌入式 可以建立在 基礎(chǔ)上;也可以不需要要在規(guī)定的協(xié)議( 礎(chǔ)上實現(xiàn) 功能即可。嵌入式 需要支持全部的 議,只須支持必須的協(xié)議子集即可。 設(shè)計嵌入式 先需要實現(xiàn) P 協(xié)議下的網(wǎng)絡(luò)編程,在此基礎(chǔ)上,進行 議的解析、執(zhí)行。設(shè)計嵌入式 求提供如下功能: 1、 能 提供本地參數(shù)修改服務(wù):可以通過 議來修改本地的一些工作參數(shù),如允許建立連接的最大數(shù)等,這些參數(shù)能保存。 2、 能提供數(shù)據(jù)采集的服務(wù):模擬實現(xiàn)數(shù)據(jù)采集(從數(shù)據(jù)文件中抽取數(shù)據(jù)),通過 程提供數(shù)據(jù)。 以上是最基本的功能,其他功能可以靈活發(fā)揮。運行環(huán)境:建議采用 ,安裝 編寫 終端運行的程序。也可以采用 。如果有相應(yīng)的嵌入式設(shè)備,則可以直接在相應(yīng)設(shè)備上運行 。 統(tǒng)可行性分析 嵌 入式 務(wù)器的研究和應(yīng)用 ,其意義是重大的。它為我們管理、控制和監(jiān)測各種各樣設(shè)備提供了一個很好的途徑。這種設(shè)備可以是具有有限內(nèi)存資源的8 位或 16 位系統(tǒng) , 已足夠提供一個用戶界面 , 而且這種方式是基于 。這種設(shè)備可以在世界任何一個地方 , 只要它連入 能夠控制它。 此外本系統(tǒng)的實現(xiàn)要求的配置條件都很低,成本也低,對于普通的用戶就可以實現(xiàn),在可行性上具有無法比擬的優(yōu)越性。 發(fā)工具分析和選擇 要在嵌入式系統(tǒng)下進行開發(fā),就要建立嵌入式的開發(fā)平臺, 當(dāng)前廣泛使用的一種 嵌入式的操作系統(tǒng)。 心的分支,是針對沒有 理單元的微控制器 ,繼承了 大多數(shù)特性 。 多數(shù)的 應(yīng)用程序和驅(qū)動程序都可以在運行 。 雖然大多數(shù) 統(tǒng)運行在 臺上,但 可以作為嵌入式系5 統(tǒng)的操作系統(tǒng)。 安裝和管理比 加簡單靈活,這對于那些 為 有許多命令和編程接口同傳統(tǒng)的 是對于習(xí)慣于 作系統(tǒng)的人來說 ,需要記憶大量的命令行參 數(shù)卻是一個缺點。隨著 團的不斷努力, 人機界面開發(fā)環(huán)境正在不斷完善。 典型的 統(tǒng)經(jīng)過打包,在擁有硬盤和大容量內(nèi)存的 上運行,而嵌入式系統(tǒng)不需要這么高的配置。一個功能完備的 核要求大約 1 存。而 內(nèi)核只占用其中很小一部分內(nèi)存,包括虛擬內(nèi)存和所有核心的操作系統(tǒng)功能在內(nèi),只需占用系統(tǒng)約 100存。只要有 500內(nèi)存,一個有網(wǎng)絡(luò)棧和基本實用程序的完全的 統(tǒng)就可以在一臺 8 位總線( 86 微處理器上運行得很 好了。由于內(nèi)存要求常常是由應(yīng)用的需要所決定的,例如 務(wù)器或者 理, 統(tǒng)甚至可以僅使用 256 12 行工作。因此它是一個瞄準(zhǔn)嵌入式市場的輕量級操作系統(tǒng)。 與傳統(tǒng)的實時操作系統(tǒng)( 比,采用像嵌入式 樣的開放源碼的操作系統(tǒng)的另外一個好處是 發(fā)團體看來會比 供應(yīng)商更快地支持新的 議和其他協(xié)議。例如,用于 設(shè)備驅(qū)動程序要比用于商業(yè)操作系統(tǒng)的設(shè)備驅(qū)動程序多,如網(wǎng)絡(luò)接口卡( 動程序以及并口、串口驅(qū)動程序 。 作系統(tǒng)本身的微內(nèi)核體系結(jié)構(gòu)相當(dāng)簡單。網(wǎng)絡(luò)和文件系統(tǒng)以模塊形式置于微內(nèi)核的上層。驅(qū)動程序和其他部件可在運行時作為可加載模塊編譯到或者是添加到內(nèi)核。這為構(gòu)造定制的可嵌入式系統(tǒng)提供了高度模塊化的構(gòu)件方法。而在典型情況下該系統(tǒng)需結(jié)合定制的驅(qū)動程序和應(yīng)用程序以提供附加功能。 嵌入式系統(tǒng)也常常要求通用的功能,為了避免重復(fù)勞動,這些功能的實現(xiàn)運用了許多現(xiàn)成的程序和驅(qū)動程序,它們可以用于公共外設(shè)和應(yīng)用。 以在外設(shè)范圍廣泛的多數(shù)微處理器上運行,并早已經(jīng)具備了現(xiàn)成的應(yīng)用庫。 于嵌入式的因特 網(wǎng)設(shè)備也是很合適的,原因是它支持多處理器系統(tǒng),該特性使 有了伸縮性。因而設(shè)計人員可以選擇在雙處理器系統(tǒng)上運行實時應(yīng)用,提高整體的處理能力。例如,可以在一個處理器運行 時在另一個處理器上運行 統(tǒng)。 在嵌入式系統(tǒng)上運行 一個缺點是 系提供實時性能需要添加實時軟件模塊。而這些模塊運行的內(nèi)核空間正是操作系統(tǒng)實現(xiàn)調(diào)度策略、硬件中斷異常和執(zhí)行程序的部分。 由于這些實時軟件模塊是在內(nèi)核空間運行的,因此代碼錯誤可能會破壞操作系統(tǒng)從而影響整個系統(tǒng)的可靠性,這對于實時應(yīng)用將是一個 非常嚴(yán)重的弱點。盡管如此,已經(jīng)有許多嵌入式 統(tǒng)的示例,可以有把握地說,某種形式的6 在幾乎任一臺執(zhí)行代碼的計算機上運行 。 ( 1)在 安裝 源軟件包 要求先在在 上安裝 at 上版本。 一個開源軟件 (中文名字是 “ 天目 ” 。 臺實現(xiàn)一個純軟件模擬集成開發(fā)環(huán)境,模擬常見的嵌入式計算機系統(tǒng) 。讓我們在這種虛擬的嵌入式環(huán)境下進行嵌入式平臺下的 操作。 可在 運行 多種嵌入式操作系統(tǒng)和各種系統(tǒng)軟件(如 P,圖形子系統(tǒng),文件子系統(tǒng)等),并可對它們進行源碼級的分析和測試 。 通過 真集成環(huán)境可以很方便地進入到嵌入式系統(tǒng)軟件學(xué)習(xí)和開發(fā)的廣闊天地中。尤其對于缺少嵌入式硬件開發(fā)環(huán)境和軟件開發(fā)環(huán)境的用戶來說,它將是一個非常有效的學(xué)習(xí)工具和開發(fā)手段,因為 整個軟件系統(tǒng)都是,且基于 議( 外)。因此,如果要學(xué)習(xí) 苦于沒有硬件支持, 真環(huán)境軟件是一個很好的選擇! 如果想研究與具體硬件無關(guān)的系統(tǒng)軟件(如 P 協(xié)議棧等),采用 為你可以直接在 進行開發(fā)和調(diào)試,而與具體硬件打交道的各種 經(jīng)存在,且有源碼級調(diào)試環(huán)境,只需關(guān)心高層的邏輯設(shè)計和實現(xiàn)就可以了。 由于 目標(biāo)不是驗證硬件邏輯,而是協(xié)助開發(fā)、調(diào)試和學(xué)習(xí)系統(tǒng)軟件,所以在實現(xiàn)上 真實的硬件環(huán)境相比還是有一定差別的。 節(jié)拍的時序上不保證與硬件完全相同,對軟件透明的一些硬件模擬進行了一定的簡化 , 這樣帶來的好處是 執(zhí)行效率更高。 不能取代開發(fā)板等硬件的功能,但通過它可以比較容易進入到嵌入式軟件的廣闊天地中。由于 立在 礎(chǔ)之上,使用者可以方便地使用 供的各種調(diào)試手段對 真系統(tǒng)上的軟件進行源碼級的調(diào)試,還可以進行各種分析,如執(zhí)行熱點分析、程序執(zhí)行覆蓋度分析等。由于 經(jīng)驗的用戶完全可以修改和擴充 滿足自己的需求。 件模擬邏輯結(jié)構(gòu)圖 如下圖 4 圖 4件模擬邏輯結(jié)構(gòu)圖 前 擬了大量的硬件,包括 核、存儲器、存儲器管理單元、緩存單元、串口、網(wǎng)絡(luò)芯片、時鐘等。下面做一簡單介紹。 開發(fā)板系列 以模擬的 要是基于 核的 括 。,它們不支持 本核。 建立在以上 上,并擴展了 其它功能。各硬件開發(fā)公司可以根據(jù)它們的需求在上述 上加上特定的擴展,形成基于各種 本核心的特定 別擴展了 內(nèi)存控制和各種 I/O 控制器,簡化了開發(fā)板的邏輯設(shè)計,大大增強了開發(fā)板的功能。 擬的開發(fā)板包括基于 1開發(fā)板,基于 開發(fā)板、基于 發(fā)板,基于 發(fā) 板 、 基 于 33開發(fā)板、基于 開發(fā)板、基8 于 開發(fā)板等。主要模擬了對應(yīng)各個開發(fā)板的串口、時鐘、絡(luò)芯片等硬件外設(shè) 目前能在 運行下面的操作系統(tǒng)和系統(tǒng)軟件 有 持網(wǎng)絡(luò) ), 于 核 , 支持網(wǎng)絡(luò) ), .on 于 應(yīng)用程序 。 有了 們就可以 通過 以 模擬嵌入式環(huán)境進行嵌入式開發(fā),幫助促進嵌入式系統(tǒng)的學(xué)習(xí),在不需要額外硬件的情況下學(xué)習(xí)和分析 作系統(tǒng)和其它嵌入式操作系統(tǒng),如 , 通過 進操作系統(tǒng)的研究,如 。 安裝 存儲器管理單元和緩存單元 存儲器管理單元,是用來管理虛擬內(nèi)存系統(tǒng)的硬件。 兩個主要功能是:將虛地址轉(zhuǎn)換成物理地址;控制存儲器的存取權(quán)限。 掉時,虛地址直接輸出到物理地址總線。 身有少量存儲空間存放從虛擬地址到物理地址的匹配表,此表稱作 中保存的是虛 址及其對應(yīng)的物理地址,權(quán)限,域和映射類型。當(dāng) 一虛擬地址進行存取時,首先搜索 以查找對應(yīng)的物理地址等信息,如果沒有查到,則進行查找 為 稱 經(jīng)過 程后,將查到的信息保存到 后根據(jù)項的物理地址進行讀寫。 緩存單元,主要用于緩存內(nèi)存中的數(shù)據(jù),其讀寫速度遠快于內(nèi)存的讀寫速度,所以可以提高 內(nèi)存數(shù)據(jù)的訪問效率。 件單元的作用與 作用 類似。 般是高性能 重要組成部分,且不同類型 邏輯行為也有一定的差異。為了支持模擬多種類型 含了一個通用的 擬實現(xiàn)。通過對一些參數(shù)的調(diào)整可以支持模擬多種類型的 理結(jié)構(gòu)和邏輯行為。 網(wǎng)絡(luò)芯片 目前 擬了網(wǎng)絡(luò)芯片 8019特點是: 容,內(nèi)建 16沖區(qū), 10輸速率。雖然 目前模擬的開發(fā)板上不一定有網(wǎng)絡(luò)芯片8019我們可以在我們模擬的開發(fā)板上加上網(wǎng)絡(luò)芯片 8019模擬。這樣再加上在不同操作系統(tǒng)上的 8019動程序,就可以方便地完成各種網(wǎng)絡(luò)應(yīng)用的開發(fā)和設(shè)計。目前已經(jīng)在在基于 開發(fā)板上實現(xiàn)了網(wǎng)絡(luò)芯片8019展,并增加了 網(wǎng)絡(luò)驅(qū)動程序,已經(jīng)支持大量的網(wǎng)9 絡(luò)應(yīng)用程序,如 一個 P 協(xié)議棧實現(xiàn))、 。 先到 ,選擇版本為 為此版本為在 編譯好的代碼。把下載的 動到 / 錄下,并改名為 變 屬性,運行以下命令: mv 55 /編譯安裝過程中,須注意以下幾點:如果你使用的是 么有可能你在編譯 會出現(xiàn)有關(guān) 庫的一些錯誤,那么你需要運行下面的命令: s /后再重新編譯 。 如果你使用的是 不要用 要使用 你系統(tǒng)中所使用的 本號應(yīng)該要大于或等于 如果 本號大于 那么你需要在你的系統(tǒng)中安裝 擬要用到 ) 。 ( 2) 安裝 叉編譯環(huán)境并配置 叉編譯就是在一個平臺上生成另一個平臺上的可執(zhí)行代碼。這里需要注意的是所謂平臺 , 實際 上包含兩個概念:體系結(jié)構(gòu)( 操作系統(tǒng)( 同一個體系結(jié)構(gòu)可以運行不同的操作系統(tǒng);同樣,同一個操作系統(tǒng)也可以在不同的體系結(jié)構(gòu)上運行。舉例來說,我們常說的 臺實際上是 系結(jié)構(gòu)和 作系統(tǒng)的統(tǒng)稱;而 系結(jié)構(gòu)和 T 作系統(tǒng)的簡稱。有時是因為目的平臺上不允許或不能夠安裝我們所需要的編譯器,而我們又需要這個編譯器的某些特征; 有時是因為目的平臺上的資源貧乏,無法運行我們所需要編譯器;有時又是因為目的平臺還沒有建立,連操作系統(tǒng)都沒有,根本談不上運行什么編譯器。 交叉編譯這個概念的出現(xiàn)和流行是和嵌入式系統(tǒng)的廣泛發(fā)展同步的。我們常用的計算機軟件,都需要通過編譯的方式,把使用高級計算機語言編寫的代碼(比如 C 代碼)編譯( 計算機可以識別和執(zhí)行的二進制代碼。比如,我們在 臺上,可使用 +開發(fā)環(huán)境,編寫程序并編譯成可執(zhí)行程序。這種方式下,我們使用 臺上的 具開發(fā)針對 種編譯過程稱為 文可理解為本機編譯。 然而,在進行嵌入式系統(tǒng)的開發(fā)時,運行程序的目標(biāo)平臺通常具有有限的10 存儲空間和運算能力,比如常見的 臺,其一般的靜態(tài)存儲空間大概是 16到 32 主頻大概在 100 500間。這種情況下,在臺上進行本機編譯就不太可能了,這是因為一般的編譯工具鏈( 要很大的存儲空間,并需要很強的 算能力。為了解決這個問題,交叉編譯工具就應(yīng)運而 生了。通過交叉編譯工具,我們就可以在 力很強、存儲控件足夠的主機平臺上(比如 )編譯出針對其他平臺的可執(zhí)行程序 。 要進行交叉編譯,我們需要在主機平臺上安裝對應(yīng)的交叉編譯工具鏈( 然后用這個交叉編譯工具鏈編譯我們的源代碼,最終生成可在目標(biāo)平臺上運行的代碼。常見的交叉編譯例子如下: 在 C 上,利用 發(fā)環(huán)境),使用 譯器,則可編譯出針對 可執(zhí)行代碼。 在 C 上 ,利用 譯器,可編譯出針對 臺的可執(zhí)行代碼。 在 C 上,利用 境,運行 譯器,可編譯出針對 可執(zhí)行代碼。 我們這里用的就是 在 C 上,利用 譯器 , 下載 變文件屬性,并執(zhí)行: 55 ./ 3)安裝 載版本為 解壓。 進入解壓生成的目錄下,編譯 束后,則生成五個 執(zhí)行文件,分別位于 應(yīng)的應(yīng)用名目錄下。 ( 4) 下載 并運行 件包 到 點下載 解壓。然后在/錄下執(zhí)行: 選擇 本選擇 時在 /錄下生成 件,證明安裝成功。 11 在 錄下建立仿真 置文件 容如下: , W, , W, , , , W, , W, , W, , W, /行如下命令: .x/出現(xiàn)如圖 4示的運行 結(jié)果 圖 4行結(jié)果 2 在為 發(fā)應(yīng)用程序時,絕大多數(shù)情況下使用的都是 C 語言,因此幾乎每一位 序員面臨的首要問題都是如何靈活運用 C 編譯器。 目前 最常用的 C 語言編譯器是 它是 目中符合 標(biāo)準(zhǔn)的編譯系統(tǒng),能夠編譯用 C、 C+和 等語言編寫的程序。僅功能非常強大,結(jié)構(gòu)也異常靈活。最值得稱道的一點就是它可以通過不同的前端模塊來支持各種語言,如 。開放、自由和靈活是 魅力所在,而這一點在 的體現(xiàn)就是程序員通過它能夠更好地控制整個編譯過程。在使用 譯程序時,編譯過程可以被細分為四個階段: ( 1) 預(yù)處理( ( 2) 編譯( ( 3) 匯編( ( 4) 鏈接( 序員可以根據(jù)自己的需要讓 編譯的任何階段結(jié)束,以便檢查或使用編譯器在該階段的輸出信息,或者對最后生成的二進制文件進行控制,以便通過加入不同數(shù)量和種類的調(diào)試代碼來為今后的調(diào)試做好準(zhǔn)備。和其它常用的編譯器一樣, 提供了靈活而強大的代碼優(yōu)化功能,利用它可以生成執(zhí)行效率更高的代碼。 供了 30 多條警告信息和三個警告級別,使用它們有助于增強程序的穩(wěn)定性和可移植性。此外, 對標(biāo)準(zhǔn)的 C 和 C+語言進行了大量的擴展,提高程序的執(zhí)行效率,有助于編譯器進行代碼優(yōu)化,能夠減輕編程的工作量 。 從程序員的角度看,只需簡單地執(zhí)行一條 令就可以了,但從編譯器的角度來看,卻需要完成一系列非常繁雜的工作。首先, 要調(diào)用預(yù)處理程序 它負責(zé)展開在源文件中定義的宏,并向其中插入 “#句所包含的內(nèi)容;接著, 調(diào)用 處理后的源代碼編譯成目標(biāo)代碼;最后,調(diào)用鏈接程序 生成的目標(biāo)代碼鏈接成一個可執(zhí)行程序。為了更好地理解 工作過程,可以把上述編譯過程分成幾個 步驟單獨進行,并觀察每步的運行結(jié)果。 第一步是進行預(yù)編譯,使用 下 一步是將 件 編譯為目標(biāo)代碼,這可以通過使用 數(shù)來完成 , 認將 語言源代碼,因此上述命令將自動跳過預(yù)處理步驟而開始執(zhí)行編譯過程,也可以使用 數(shù)讓 指定的步驟開始編譯。最后一步是將生成的目標(biāo)文件鏈接成可執(zhí)行文件 。 在 開發(fā)軟件時,完全不使用第三方函數(shù)庫的情況是比較少見的,通常來講都需要借助一個或多個函數(shù)庫的支持才能夠完成相應(yīng)的功能。從程序員的角度看,函數(shù)庫實際上就是一些頭文件( 庫文件( 者 集合。雖13 然 的大多數(shù)函數(shù)都默認將頭文件放到 /錄下,而庫文件則放到 /錄下,但并不是所有的情況都是這樣。正因如此, 編譯時必須有自己的辦法來查找所需要的頭文件和庫文件。 用搜索目錄的辦法來查找所需要的文件, 項可以向 頭文件搜索路徑中添加新的目錄。例如,如果在 /錄下有編譯時所需要的頭文件 , 為了讓 夠順利地找到它們,就可以 使用 項: # I /o 果使用了不在標(biāo)準(zhǔn)位置的庫文件,那么可以通過 項向 庫文件搜索路徑中添加新的目錄。例如,如果在 /錄下有鏈接時所需要的庫文件 了讓 夠順利地找到它,可以使用下面的命令 : # L /o 值得好好解釋一下的是 項,它指示 連接庫文件 就是應(yīng)該以 個字母開頭,由于所有的庫文件都遵循了同樣的規(guī)范,因此在用 項指定鏈接的庫文件名時可以省去 就是說 對 行處理時,會自動去鏈接名為 文件 。 的庫文件分為兩大類分別是動態(tài)鏈接庫(通常以 尾)和靜態(tài)鏈接庫(通常以 尾),兩者的差別僅在程序執(zhí)行時所需的代碼是在運行時動態(tài)加載的,還是在編譯時靜態(tài)加載的。默認情況下, 鏈接時優(yōu)先使用動態(tài)鏈接庫,只有當(dāng)動態(tài)鏈接庫不存在時才考慮使用靜態(tài)鏈接 庫,如果需要的話可以在編譯時加上 項,強制使用靜態(tài)鏈接庫。例如,如果在 /錄下有鏈接時所需要的庫文件 了讓 鏈接時只用到靜態(tài)鏈接庫,可以使用下面的命令: # L /o 在編譯一個包含許多源文件的工程時,若只用一條 令來完成編譯是非常浪費時間的。假設(shè)項目中有 100 個源文件需要編譯,并且每個源文件中都包含 10000 行代碼, 如果像上面那樣僅用一條 令來完成編譯工作,那么

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論