應用程序的移植_第1頁
應用程序的移植_第2頁
應用程序的移植_第3頁
應用程序的移植_第4頁
應用程序的移植_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、嵌入式Linux應用程序的移植 1練習申請512字節(jié)內(nèi)存,然后往內(nèi)存里寫入任意字符,比如:1000100110021003全部內(nèi)存寫進去后再讀出來,如果數(shù)據(jù)跟寫入的不一樣,則打印出錯的內(nèi)存地址,最后釋放內(nèi)存。2應用程序的移植1、源代碼搜索和下載。2、永遠保留一份網(wǎng)上下載的原始tar包文件,用作編譯過程的對比之用。3、剛下載解壓后的應用程序,一般是沒有Makefile的,要通過執(zhí)行一個./configure來自動生成Makefile. 這個./configure程序做的工作主要就是檢查編譯環(huán)境。 它檢查很多內(nèi)容,檢查沒有問題后,生成Makefile:3應用程序的移植生成Makefile之后,檢查

2、一下是否可以在宿主機上編譯通過,若連主機都無法通過編譯,那就不要到嵌入式上嘗試了;若可以通過編譯,則可以著手來修改Makefile了。4應用程序的移植首先,最基本的就是修改編譯器CC、CPP 、 AR 等為交叉編譯工具: CROSS =arm-linux-CC = $(CROSS)gcc CPP = $(CROSS)g+ AR=$(CROSS)ar5一個軟件名稱的目錄下,通常會有三個目錄: 1) src 2) include 3) lib 源代碼都放在src目錄下,所有的.h頭文件都放到include目錄下,自己用到的私有庫函數(shù)就放在lib下面6編譯一般都是先編譯lib目錄下的.c代碼,然后編

3、譯src目錄下的.c代碼,這樣對于編譯src下代碼時的編譯參數(shù),必須包含的就是-I ./include和-L./lib和鏈接時的-lxxx。 7gcc錯誤類型gcc給出的錯誤信息一般可以分為四大類。C語法錯誤包含.h文件錯誤文件錯誤未定義符號8(1)C語法錯誤一般都是C語言語法錯誤,仔細檢查源碼文件中的第n行及該行之前的程序,有時也需要對該文件所包含的.h文件進行檢查。有些情況下,一個很簡單的語法錯誤,gcc會給出一大堆錯誤信息。9(2)包含(.h)文件錯誤錯誤信息:找不到head.h(can not find include )。這類錯誤是源碼文件中的include文件有問題??赡艿脑蛴衖

4、nclude文件名錯誤、制定的include文件所在目錄名稱錯誤等,也可能是錯誤地使用了雙引號和尖括號。10(3)文件錯誤錯誤信息:連接程序找不到所需要的數(shù)據(jù)庫,例如:ld: -lm: no such directroy這類錯誤是與目標文件相連接的數(shù)據(jù)庫有錯誤,可能的原因是數(shù)據(jù)庫名稱錯誤、制定的數(shù)據(jù)庫所在目錄名稱錯誤等,檢查的方法是使用find命令在可能的目錄中尋找相應的數(shù)據(jù)庫名稱,確定文件庫及目錄的名稱并修改程序及編譯選項中的名稱。11(4)未定義符號錯誤信息:有未定義符號(undefine symbol)。這類錯誤是在連接過程中出現(xiàn)的,可能有兩種原因:一是自己定義的函數(shù)或者全局變量所在源碼

5、文件沒有被編譯、連接,或者還沒有定義,這需要根據(jù)實際情況修改原始文件,給出全局變量或者函數(shù)的定義;二是為定義的符號是一個標準的庫函數(shù),在源碼中使用了該函數(shù),而連接過程還沒有給定相應的數(shù)據(jù)庫的名稱,或者是該文件庫的目錄名稱有問題.12應用程序的移植嵌入式WEB服務器(BOA)的移植13實踐目的學習Web服務器(boa)的配置方法,了解CGI控制板子的方法。學習通過CGI添加自己的服務,定制自己的管理軟件的方法。 14原理:瀏覽器HTTP請求TCP連接HTTP響應Web服務器URL地址CGI程序標準輸入環(huán)境變量標準輸出其它系統(tǒng)資源軟件組成: webserver(boa)+ CGI代碼兩部分組成。P

6、C機開發(fā)板15當客戶通過點擊某個URL或其它方式要求瀏覽器訪問一個CGI程序資源時,瀏覽器與web服務器建立TCP連接,發(fā)送HTTP請求;web服務器分析HTTP請求并分析請求內(nèi)容,如果為靜態(tài)文檔請求,就直接返回該請求的結(jié)果,如果是CGI請求,web服務器就把該請求通過環(huán)境變量、命令行參數(shù)和標準輸入的方式傳遞給指定的CGI應用程序,同時接管這個CGI應用程序標準輸出。CGI應用程序進程根據(jù)瀏覽器發(fā)送過來的數(shù)據(jù),進行信息處理,并將結(jié)果以HTML文件的格式送到標準輸出;web服務器在CGI程序的輸出內(nèi)容上附加狀態(tài)行和一些頭標信心,然后把結(jié)果返回給客戶端瀏覽器,完成客戶端與服務器的交互操作。16嵌入式web服務器主要有三個Web Server: HTTPD、THTTPD和BOA HTTPD是最簡單的一個Web Server,它的功能最弱,不支持認證,不支持CGI。THTTPD和BOA都

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論