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

正文內(nèi)容

基于arm嵌入式系統(tǒng)的socket通信設(shè)計畢業(yè)論文-資料下載頁

2025-06-20 00:12本頁面
  

【正文】 及所選用的芯片廠商等信息,進行系統(tǒng)的配置,主要是根據(jù)以上信息描述,進行設(shè)置。進入 Linux 內(nèi)核配內(nèi)核資源的界面,如圖 所示。圖 內(nèi) 核 資 源 界 面配置完畢后選擇 Exit,然后在提示下是否保存的時候選擇保存, 配置完畢后,選擇 Exit,在對話提示選擇保存。    第 23 頁(4)建立源代碼文件依賴關(guān)系( 第一次必須執(zhí)行)執(zhí)行命令:make dep(5)編譯內(nèi)核執(zhí)行命令: make第(4)和第(5)進行內(nèi)核的編譯,執(zhí)行的時間會比較長。執(zhí)行結(jié)束后,會得到我們需要的兩個目錄:ROMfs 文件和 images 內(nèi)核文件。在 ROMfs 文件中存放嵌入式系統(tǒng)運行所需要的應(yīng)用程序。Images 內(nèi)核文件主要存放那個內(nèi)核目錄。 經(jīng)過以上程序,uClinux 的內(nèi)核編譯全部完成。 構(gòu)建文件系統(tǒng)構(gòu)建文件系統(tǒng)就是在物理設(shè)備上構(gòu)建文件組織和目錄,便于系統(tǒng)進行文件的組織和管理,它是 uClinux 系統(tǒng)處理數(shù)據(jù)的基礎(chǔ)條件。uClinux 系統(tǒng)的所有有效數(shù)據(jù),包括用程序、庫、系統(tǒng)文件和用戶文件都按照目錄存放在文件系統(tǒng)中。uClinux 系統(tǒng)的文件系統(tǒng),在組織上按照樹狀結(jié)構(gòu)的方式進行組織,也就是頂部是根目錄,從根向下進行分支,通常把文件系統(tǒng)的最頂端成為根目錄。uClinux 系統(tǒng)通常只有一個文件樹,這個文件樹以樹根“/”作為起點,其它的文件和外部設(shè)備按照樹的形式,掛結(jié)在這個文件樹上 [25]。uClinux 根目錄下可以見到以下結(jié)構(gòu):/bin/home/etc/mnt/lost+found/tmp /dev/sbin /var /boot /root/lib /proc /usr設(shè)計中選擇的 ROMFS 文件系統(tǒng),主要是考慮到系統(tǒng)的存貯結(jié)構(gòu)。因為這種文件系統(tǒng)的內(nèi)核比較小,通常情況下只有 4000 字節(jié)左右,可以有效的節(jié)約系統(tǒng)的資源。內(nèi)核在連接的時候,只需要連接到 ROMFS 文件系統(tǒng),后面用模塊裝載工具把其它相關(guān)的模塊和文件系統(tǒng)裝載進來,而不是所有的文件和模塊全部掛接。 ROMFS 文件系統(tǒng)的底層結(jié)構(gòu)也是非常的簡單,也可以用來進行塊設(shè)備的操作。ROMFS 文件系統(tǒng)的構(gòu)成,它的文件系統(tǒng)頭由 16 字節(jié)組成,文件系統(tǒng)名由 4 字節(jié)組成,文件系統(tǒng)的大由 4 字節(jié)組成,其次還有 4 字節(jié)的校驗和 4 字節(jié)的卷標(biāo)名。然后就是文件的頭和數(shù)據(jù)了,文件頭也是由 16 字節(jié)組成,開始的是文件模式信    第 24 頁息,通常占用 4 比特的,后面的 28 比特,是這樣分配的:4 字節(jié)為下后一個文件的地址偏移量,4 字節(jié)為文件的鏈接信息、4 字節(jié)為文件大小、4 字節(jié)為文件的校驗和。從后面的第 16 字節(jié)開始,顯示的是文件名和相關(guān)其數(shù)據(jù) [26]。ROMFS 是一種只讀的文件系統(tǒng),由于它是只讀的,就決定了這個文件系統(tǒng)是非常小的。如果設(shè)計中需要一種可寫的文件系統(tǒng),那么,就需要尋找一種可以在RAM 上使用的可寫文件系統(tǒng)。在設(shè)計中,根據(jù)需要選擇了 RAMFS 文件系統(tǒng),這種文件系統(tǒng)可以用于 RAMDISK 文件系統(tǒng)的寫操作,它與 CRAMFS 的結(jié)合可以適合大多數(shù)嵌入式系統(tǒng)的需求。制作 ramdisk 具體步驟如下 [27]:一般在內(nèi)核編譯時,支持 ramdisk 的內(nèi)核選項:CONFIG BLK DEV RAM,CONFIG RD RELEASE BLOCKS, CONFIG BLK DEV IlVITRD:同時在 PC 機上按照如下的方法來制作:(1)制作映象文件建立虛擬成塊的文件 執(zhí)行命令:dd if=/dev/zero of= bs=1024 count=500格式化生成的塊設(shè)備: 文件執(zhí)行命令:mke2fs –m0 –F (2)配置根文件系統(tǒng),將 和 加載到主機文件系統(tǒng)執(zhí)行命令:mount ram /o loop執(zhí)行命令:mount rom/o loop建立在 ramfs 中需要的目錄,也就是在 ram 目錄下建立子目錄。執(zhí)行命令:mkdir ram/bin執(zhí)行命令:mkdir ram/dev執(zhí)行命令:mkdir ram/etc執(zhí)行命令:mkdir ram/var拷貝必須的文件到 ramfs 中執(zhí)行命令:cp –a rom/etc/* ram/etc/執(zhí)行命令:cp –a rom/bin/sh ram/bin/執(zhí)行命令:cp –a rom/bin/init ram/bin/int創(chuàng)建設(shè)備節(jié)點:執(zhí)行命令: mknod ram/dev/ttS0 c 4 64執(zhí)行命令: mknod ram/dev/console c 51執(zhí)行指令的說明:第一條指令創(chuàng)建設(shè)備 ttyS0,即第 0 個串口設(shè)備,主設(shè)備的號為 4,從設(shè)備的號為 64,第二條指令是建立字符設(shè)備 console,即控制    第 25 頁臺,主設(shè)備號為 5 從設(shè)備號為 1。最后卸載 和 的修改已經(jīng)保存。執(zhí)行命令: umount ram執(zhí)行命令: umount rom到此 RAM DISK 制作完畢。內(nèi)核編譯和文件系統(tǒng)構(gòu)建完成以后通過網(wǎng)絡(luò) FTP 的方式把 和 ramdis下載到開發(fā)板上,這樣完成了 uClinux 的移植。. PC 機上的程序設(shè)計 嵌入式 TCP /IP 分析 在目前的網(wǎng)絡(luò)協(xié)議中,TCP/IP 是應(yīng)用最廣泛的網(wǎng)絡(luò)協(xié)議。 TCP/IP 的核心是分層的思想,它可以將不同的芯片、系統(tǒng)之間通過一種標(biāo)準(zhǔn)的協(xié)議相互連接起來,做到互聯(lián)互通。需要傳輸?shù)臄?shù)據(jù)以數(shù)據(jù)包的形式進行傳輸,這也是 TCP/IP 傳輸?shù)囊粋€基本單位。通常情況下,在嵌入式系統(tǒng)的應(yīng)用中,數(shù)據(jù)的采集和傳輸是是核心的任務(wù)和功能。對于嵌入式系統(tǒng)來說,需要根據(jù)系統(tǒng)的特點以及需要完成的功能,靈活選擇相應(yīng)的協(xié)議,因為嵌入式系統(tǒng)的資源畢竟有限,處理器的速度和 PC 機相比,還是有很大的差距。同時,存貯的空間也是相對有限,需要的協(xié)議可以選擇,不需要的協(xié)議可以裁減掉,這也是嵌入式系統(tǒng)最大的特點。選擇了相應(yīng)的協(xié)議后,還要根據(jù)系統(tǒng)的功能和需求,進行相應(yīng)的分析,特定問題特定處理,這也是嵌入式系統(tǒng)的一個特點。根據(jù)需要傳輸?shù)臄?shù)據(jù)的大小,以及傳輸?shù)乃俣鹊葐栴},可以采取特別的收發(fā)方式。嵌入式系統(tǒng)的 TCP/IP 協(xié)議棧主要包含 ARP 協(xié)議 IP 協(xié)議,ICMP 協(xié)議,TCP 協(xié)議以及 UDP 協(xié)議等。ARP 主要的功能是進行地址的解析,獲取數(shù)據(jù)傳輸?shù)奈锢淼刂贰R驗榍度胧较到y(tǒng)中數(shù)據(jù)是按照地址進行存貯的,當(dāng)一個嵌入式系統(tǒng)上的 IP 地址的 ARP 被上傳到網(wǎng)絡(luò)上,就會收到一個應(yīng)答,這個應(yīng)答確認物理地址,找到物理地址后,就會找到相應(yīng)需要傳輸?shù)臄?shù)據(jù),并進行傳輸。也就是說,ARP 協(xié)議解決服務(wù)器端和客戶端在通信的時候 IP 地址物理地址轉(zhuǎn)換。IP 協(xié)議主要用于網(wǎng)絡(luò)之間的相互連接,規(guī)定了進行網(wǎng)絡(luò)連接時各個系統(tǒng)之間必須相互遵守的規(guī)則。在 IP 進行數(shù)據(jù)傳輸時,對傳輸?shù)?IP 數(shù)據(jù)包進行定義,進行數(shù)據(jù)包的封裝時,還包括需要傳輸數(shù)據(jù)的目的地址,數(shù)據(jù)協(xié)議的版本號等。最后還要對傳輸?shù)臄?shù)據(jù)進行校驗,以確保數(shù)據(jù)傳輸?shù)恼_性。在 IP 協(xié)議中,給每個每臺設(shè)備一個地址,這個地址是唯一的,在傳輸過程中,相互傳輸數(shù)據(jù)的設(shè)備根    第 26 頁據(jù) IP 地址就可以找到對方,同時把 IP 包解析出來,得到需要的數(shù)據(jù)。ICMP 是一個報文協(xié)議,因為在 TCP/IP 傳輸過程中需要傳輸一些控制信息,也就是網(wǎng)絡(luò)是否堵塞或者暢通,以及路由的相關(guān)信息等。它可以提供一個簡單易懂的網(wǎng)絡(luò)出錯的信息,通常使用的 PING 命令就是基于 ICMP 協(xié)議的。TCP 協(xié)議是傳輸層在連接過程中應(yīng)用的協(xié)議,它是整個 TCP/IP 的核心。TCP協(xié)議一般要通過“三次握手”的方式建立連接。TCP 協(xié)議起到承上啟下的作用,與底層和高層的協(xié)議進行通訊,以確保整個系統(tǒng)能夠有效的連接并能夠和其它系統(tǒng)可以進行數(shù)據(jù)傳輸。 嵌入式 TCP/IP 設(shè)計TCP/IP 協(xié)議比較復(fù)雜,因為嵌入式設(shè)備的資源和效率都是夠用就好,因此在嵌入式系統(tǒng)上面來設(shè)計一個 TCP/IP 協(xié)議要受到相應(yīng)的限制 [28]。論文在設(shè)計的TCP/IP 框架的時候,考慮到相關(guān)的技術(shù)要求和需求,設(shè)計了一個最有效的框架,它能完成特定的功能,協(xié)議框架如下圖 所示。圖 嵌入式 TCP/IP 框架對于 TCP 連接,嵌入式系統(tǒng)需要把傳遞的數(shù)據(jù)、參數(shù)等存入指定的位置中,完成一次簡單的數(shù)據(jù)服務(wù)。TCP 服務(wù)器端,通過三次握手建立連接,此時,嵌入式系統(tǒng)為被動方,功能是監(jiān)聽服務(wù)器的狀態(tài),處于被動打開后的 listen 狀態(tài),等待對方發(fā)起連接。收到 SYN 數(shù)據(jù)片后,發(fā)出 SYN+ACK 數(shù)據(jù)片并確認收到對方的 SYN,然后,更改狀態(tài)為 SYN_ RECEIVED。最后接收到發(fā)送端返回的一個包含 ACK    第 27 頁的空數(shù)據(jù)片,至此,完成了三次握手,進入 ESTABLISHED 狀態(tài),發(fā)送端和服務(wù)器端就可以進行 TCP 數(shù)據(jù)通訊。嵌入式系統(tǒng)在第一次建立連接時,初始化序列號。隨后,系統(tǒng)不會記憶 TCP連接的序列號,根據(jù)發(fā)送端發(fā)包中的值來確定序列號,重復(fù)報文不能識別,對重復(fù)的報文照?;貞?yīng)。設(shè)計中,嵌入式服務(wù)器響應(yīng)客戶端的請求時,不考慮失序問題,接收一個發(fā)送一個確認回答。接收到 TCP 請求后,將存儲于發(fā)送緩沖存儲器中的數(shù)據(jù)立即發(fā)送,只需一個數(shù)據(jù)報就能完成。嵌入式系統(tǒng)采用滑動窗口為 1 的傳輸方式,即發(fā)送一次數(shù)據(jù)包就等待返回應(yīng)答,因此當(dāng)接收不到確認包,就認為自己發(fā)送的包丟失,直接發(fā)送上次發(fā)送的數(shù)據(jù)。當(dāng) TCP 的連接中,當(dāng)客戶機異常導(dǎo)致連接崩潰時,嵌入式系統(tǒng)發(fā)數(shù)據(jù)時會接受一個復(fù)位信號,回到原始狀態(tài)。在 TCP/IP 網(wǎng)絡(luò)應(yīng)用中,通信的兩個進程間相互作用的主要模式是客戶/ 服務(wù)器模式,即客戶向服務(wù)器發(fā)出服務(wù)請求,服務(wù)器接收到請求后,提供相應(yīng)的服務(wù)。客戶/ 服務(wù)器模式在操作過程中采取的是主動請求方式。首先服務(wù)器方要先啟動,并根據(jù)請求提供相應(yīng)服務(wù):(1)打開通信通道并告知本地主機,某一公認地址上接收客戶請求;(2)等待客戶請求到達該端口;(3)接收到重復(fù)服務(wù)請求,處理該請求并發(fā)送應(yīng)答信號。接收到并發(fā)服務(wù)請求,就要激活新進程來處理這個客戶請求。新進程處理此客戶請求,但并不需要對其它的請求作出應(yīng)答。服務(wù)完成后,關(guān)閉此新進程與客戶的通信鏈路,并終止;(4)返回第二步,等待另一客戶請求;(5)關(guān)閉服務(wù)器。. 編程模型 TCP 客戶端設(shè)計TCP 客戶端向服務(wù)器提出連接請求, ServerSocket 收到 TCP 連接請求后,為這個請求創(chuàng)建一個新的實例 Socket,此時,服務(wù)器端要同時處理 ServerSocket 和Socket 這兩個實例,客戶端只使用 Socket 實例就可以了。TCP 客戶端的設(shè)計按照如流程圖 所示:    第 28 頁圖 客戶端程序簡單示意圖首先客戶端建立自己的自己的 socket,如果建立失敗,則重新建立;當(dāng)建立成功后,驗證通過后,開始和服務(wù)器端進行連接,連接成功后,服務(wù)器端給客戶端一個連接成功的信息,然后開始進行數(shù)據(jù)的傳輸通訊。此時,可以顯示所接受的數(shù)據(jù)的相關(guān)信息,包括字節(jié)數(shù)、數(shù)據(jù)屬性等信息,從而完成一次連接。下面為 TCP 客戶端設(shè)計的詳細說明:Int main(int argc,char *argv[]) //其中第一個參數(shù)表示執(zhí)行后參數(shù)個數(shù),第二個用來存儲輸入的參數(shù)if(argc!=3) printf(this is error! Input the right IP and PORT! and the IP is .* 4000\n); //IP 輸入錯誤的時的提示信息sendsocket=socket(TCP_,BUFFER_data,0); //TCP 發(fā)送端建立一個 socket 函數(shù)if(sendsocket==1) printf(this is error,the new socket end \n);printf(OK,the sendsocket is createdt\n);return(0);    第 29 頁//socket 建立信息提示,建立不成功,結(jié)束當(dāng)前程序,回至初始位置,等候重新建立 connectcheck=connect(mysocket,(struct sockaddr*)amp。addr_remote,sizeof(struct sockaddr));//調(diào)用 connect 函數(shù)來連遠方的服務(wù)器端if(connectcheck==1) printf(error!!!sorry you have failed to connect the remote server!!try again !program end here\n);//驗證建立的 connect 是否成功,如過不成功結(jié)束當(dāng)前程序,回到初始的位置printf(OK Now you have successful connect the server,this server IP =%s,and it39。s PORT =%s,now you can municat with this
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1