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

正文內容

畢業(yè)設計(論文)-嵌入式web服務器的設計與實現(xiàn)(文件)

2025-06-26 01:24 上一頁面

下一頁面
 

【正文】 式系統(tǒng)工程專業(yè) 畢業(yè)設計(論文) 22 p align=\center\a href= 點 擊 進 入 a/pbr\ p align=\center\嵌入式實 驗室 /pbr\ /body\ /html” 4..4 嵌入式 Web 服務器的工作流程 在 181。下面分析嵌入式 Web 服務器端如何對請求數據報文進行處理,并將數據封裝后返回頁面。嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設計(論文) 23 但在本設計中處理與否對系統(tǒng)性能影響很小,因此也不做處理。 應答數據報文的實體部分包含動態(tài)讀取的頁面文件。該應用程序通過 API 函數實現(xiàn),其中包含兩個主要的函數: main( )函數主要負責一些初始化工作和網路連接的建立,process_connection( )負責處理 HTTP 請求的響應工作。嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設計(論文) 24 struct ip_addr *fromaddr。 enum conn_state state。 sys_mbox_t acceptmbox。 struct conn * conn_new (enum conn_type type)。 INT8S conn_listen (struct conn *conn)。 INT8S conn_write (struct conn *conn, void *dataptr, INT16U size)。 char *rq。rq, amp。 amp。 amp。 amp。 amp。 amp。 amp。) { /* 發(fā)送 HTTP 頭部 */ conn_write(conn, HTTP_HTML_HEAD, sizeof(HTTP_HTML_HEAD))。 /*創(chuàng)建一個新的 TCP 連接 */ conn = conn_new(NETCONN_TCP)。嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設計(論文) 26 while(1) { /* 接收一個新的連接 */ newconn = conn_accept(conn)。 } 當服務器收到 HTTP 請求后,檢查 文件是否存在,如果不存在則返回錯誤信息。嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設計(論文) 27 謝辭 兩年多來,在校領導和老師的引導下,我努力學好專業(yè)知識,訓練專業(yè)技能,專業(yè)水平每一年都有明顯提高,調整知識結構的同時,擴充了視野,我掌握了計算機的操作,熟悉互聯(lián)網運用。嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設計(論文) 28 參考文獻 [1] 劉文濤 胡家寶 單片機與嵌入式系統(tǒng)應用 [2] 龍依然 ATMEGA128 的功能特點 [3] 陳建華 楊玲 基于 PXA270 嵌入式 Web 服務器的設計與實現(xiàn) [4] 無憂電子開發(fā)網 基于單片機的嵌入式 WEB 服務器的研究 [5]李艷紅 ,李國 .嵌入式 Inter 的實現(xiàn)方法淺析與應用 [J].計算 機工程 ,2021,7:184185 [6]韓光潔 ,趙海 .Embedded Inter 環(huán)境下 體系結構的研 究與實現(xiàn) [J].通信學報 , 2021,9(25):6365 [7]韓光潔 ,趙海 .Embedded Inter 技術及其綜述 [J].小型微型計 算機系統(tǒng) ,2021,25(5):798801 [8] SED1335 控制器圖形液晶顯示模塊使用手冊 [M].北京 :北京精電 蓬遠 公司 ,2021,3:56 。在人生的道路上不斷進??! 在畢業(yè)論文的完成過程中,我首先要感謝我的指導 老師的耐心指導! 他嚴謹細致、一絲不茍的作風一直是我工作、學習中的榜樣 ,沒有他的幫助和提供資料對于我來說要想在短短的幾個月的時間里學習到 這些 知識并完成畢業(yè)論文是幾乎不可能的事情 ??蛻舳藶g覽器從響應報文中提取 Web 頁面數據并顯示,顯示結果為如圖 所示。 /* 刪除此連接 */ conn_delete(newconn)。 /* 使該連接進入偵聽狀態(tài) */ conn_listen(conn)。 /*關閉網絡連接 */ conn_close(conn)。rq[6] == 39。 rq[5] == 39。 rq[4] == 39。 rq[3] == 39。rq[2] == 39。 rq[1] == 39。 /* 檢查請求為 HTTP GET /\r\n. */ if(rq[0] == 39。 inbuf = conn_recv(conn)。 WEB 服務器端的應用程序主要代碼如下: 無錫科技職業(yè)學院 struct buf * conn_recv (struct conn *conn)。 INT8S conn_bind (struct conn *conn, struct ip_addr *addr, INT16U port)。 }。 sys_mbox_t mbox。 }。 struct buf { /*網絡數據緩存結構體 */ struct pbuf *p, *ptr。最后將組裝好的完整的 HTTP 應答報文發(fā)送回客戶 端。應答報文 的協(xié)議版本號、應答狀態(tài)碼、應答狀態(tài)碼說明是一些相對固定的信息,接收的元信息部分的數據不是必需的,故可以只給出部分確定的信息(如服務器類型、內容類型等)。本文的設計方案中, Web 服務器只接受GET 請求方法。建立的嵌入式 Web 服務器 HTTP 連接的流程圖如圖 所示。 HTTP 頭部代碼和該頁面的 HTML 代碼如下: const static char HTTP_HTML_HEAD[] =Contenttype: text/html\r\n\r\n。 實際使用的時候還應該編制 EEPROM 本身的讀寫函數以及操作文件系統(tǒng)的API 函數。 /* 文件內容的長度 ,以字節(jié)為單位 */ unsigned long start。一般按一定的文件格式,保存在外圍 EEPROM 中,文件格式可以自定義或采用標準的文件格式。這種方式的使用,提高了處理器讀取存儲器的效率,減小了系統(tǒng)的響應時間。每次請求 HTTP數據報文到達時,先解析是否為 GET 方法,如果不是 GET 方法則不做處理。 響應報文的格式是: statusline headers(0個或有多個 ) blank line body statusline 的格式是: HTTP 版本號 responsecode responsephrase 在己經建立 TCP 連接的基礎上,一個 HTTP 會話包括兩個過程:客戶端發(fā)送請求數據報文, Web 服務器端完成相應動作并發(fā)送應答數據報文。 (3) POST 請求用來發(fā)送電子郵件、新聞或發(fā)送能由交互用戶填寫的表格。 HTTP 報文有兩種類型:請求和響應。因此通過在網頁程序中加入 標記,使瀏覽器在無用戶干預下周期性地刷新頁面,從而保證用戶及時地獲得遠程現(xiàn)場的信息。瀏覽器發(fā)出請求報文 。在基于 HTTP 的客戶 /服務器數據交換時,當 HTTP 請求產生時,就開始一次 HTTP 通信。客戶和服務器間的中間節(jié)點不對 HTTP 請求及響應做任何操作,只需在客戶端采用 IE 瀏覽器就可以對 服務器上的數據進行瀏覽訪問,不用開發(fā)客戶端程序。一個典型的頁面可能含有許多單獨的 HTT 請求,如 基本頁面請求、每個 HTML 框架請求、每個圖形請求等。 無錫科技職業(yè)學院 LwIP 調用 ne2kif的方法 ifinput()及 ifoutput()進行以太網 packet 的收、發(fā)等操作。所以目前實現(xiàn)的網絡設備驅動是針對Ne2k 的,其它類型的網絡芯片驅動可以在 LwIP 的網站上找到。 //字符無錫科技職業(yè)學院 u32_t htonl(u32_t n)。需要注意的是 LwIP 中的 thread 并沒有181。這時就需要用戶實現(xiàn)創(chuàng)建新線程的函數: void sys_thread_new(void (* thread)(void *arg), void *arg)。 timeout 結構體已經由 LwIP 自己在 中定義好了,而且對結構體隊列的數據操作也由 LwIP 負責,我們所要實現(xiàn)的是如下函數: struct sys_timeouts * sys_arch_timeouts(void) 這個函數的功能是返回目前正處于運行態(tài)的線程所對應的 timeout 隊列指針。 (3) sys_arch_timeout 函數 LwIP 中每個與外界網絡連接的線程都有自己的 timeout 屬性,即等待超時無錫科技職業(yè)學院 void* pvQEntries[MAX_QUEUE_ENTRIES]。C/OSII 同樣實現(xiàn)了消息隊列結構 OSQ 及其操作,但是 181。嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設計(論文) 15 處理函數: struct sys_sem_t sys_sem_new() //創(chuàng)建一個信號量結構 sys_ sem _free() //釋放一個信號量結構 sys_ sem _signal() //發(fā)送信號量 sys_ arch_sem _wait() //請求信號量 由于 181。C/OS II 時定義的數據長度等參數是一致的。 與 CPU或編譯器相關的 include 文件 181。嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設計(論文) 14 第三章 LwIP 在 uCOS II 上的實現(xiàn)原理及過程 : LwIP協(xié)議棧在設計時就考慮到了將來的移植問題,因此把所 有與硬件、OS、編譯器相關的部份獨立出來,放在 ucosiiamp。嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設計(論文) 13 節(jié)的 FIFO 緩沖隊列,快速的通信過程中很容易丟失數據 .故除了通信的實現(xiàn)采用中斷方式之外 .還設計了一個 30Byte 的緩沖隊列,存放接收到的數據,接收數據由設計在 CPUlowInterruptHook()中的代碼完成, uC/OS II 是一個完整的、可移植、可裁減、源碼公開的搶占式實時多任務操作系統(tǒng)。編寫中斷服務程序CPUhighInterruptHook() 數和 CPUlwoInterruptHook()函數 用戶實時任務編寫 uC/OS II中的實時任務是在系統(tǒng)初始化 (調用 OSInit()和 OSCtxSw())后,通過 OSTaskCreateExt()調用創(chuàng)建的,實時任務創(chuàng)建完成后,調用 OpenTimer0()設置時鐘中斷,最后調用 OSStart(),系統(tǒng)開始運行并進行任務調度。 (4) OSTickISR( )函數 OSTickISR( )是 μC/OS II 要求用戶提供一個周期 性 的時鐘源,來實現(xiàn)時間的延時和超時功能。在中斷服務子程序的最后, OSIntExit( )函數會調用 OSIntCtxSw( )做任務切換。嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設計(論文) 12 在 μC/OS II 中,如果任務調用了某個函數,而該函數的執(zhí)行結果可能造成系統(tǒng)任務重新調度,則在函數的末尾會調用 OSShed( ), OSShed( )將查找當前就緒的優(yōu)先級最高的任務,若不是當前任務,則判斷是否需要進行任務調度,并找到該任務控制塊 OS_TCB 的地址,將該地址拷貝到變量 OSTCBHighRdy 中,然后通過 OSCtxSw( )進行任務切換。為了啟動任務, OSStartHighRdy( )首先找到當前就緒的優(yōu)先級最高任務,并從任務的任務控制塊中找到指向堆棧的指針,然后從堆棧中彈出全部寄存器的內容,運行中斷返回指令。 (1) OSStartHighRdy( )函數 OSStartHighRdy( )由 OSStart( )函數調用,功能是在
點擊復制文檔內容
醫(yī)療健康相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1