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

正文內(nèi)容

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

2025-06-26 03:16本頁面
  

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