欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      北郵計算機網(wǎng)絡(luò)實踐第三次實驗報告

      時間:2019-05-14 16:39:26下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《北郵計算機網(wǎng)絡(luò)實踐第三次實驗報告》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《北郵計算機網(wǎng)絡(luò)實踐第三次實驗報告》。

      第一篇:北郵計算機網(wǎng)絡(luò)實踐第三次實驗報告

      計算機網(wǎng)絡(luò)技術(shù)實踐

      實驗報告

      實驗名稱 RIP和OSPF路由協(xié)議的配置及協(xié)議流程

      姓 名___(-…-)_____________實 驗 日 期:2014年4月11日 學(xué) 號_ 242_______實驗報告日期:2014年4月16日 報 告 退 發(fā):(訂正、重做)

      一.環(huán)境(詳細說明運行的操作系統(tǒng),網(wǎng)絡(luò)平臺,網(wǎng)絡(luò)拓撲圖)1.運行操作系統(tǒng)

      由于本人電腦上的操作系統(tǒng)是WIN7旗艦版,嘗試直接安裝Dynamips模擬器,但一直沒有成功。于是在電腦上安裝了VMware Workstation,并安裝WINXP虛擬操作系統(tǒng)。在WINXP虛擬操作系統(tǒng)上安裝Dynamips模擬器,才順利完成了實驗環(huán)境的搭建。2.網(wǎng)絡(luò)平臺 Dynamips模擬器 3.網(wǎng)絡(luò)拓撲圖

      F0/0PC11.1.242.1 255.0.0.0網(wǎng)絡(luò) 1.0.0.0F0/0F0/0PC33.1.242.1 255.0.0.01.1.242.2 255.0.0.0DTE PPP6.1.242.2 255.0.0.0RT1S1/0網(wǎng)絡(luò) 6.0.0.0網(wǎng)絡(luò) 3.0.0.0DCE PPPClockrate:1152007.1.242.1 255.0.0.0S1/1DCE PPPClockrate:1152006.1.242.1 255.0.0.0S1/0F0/03.1.242.2 255.0.0.0F0/0網(wǎng)絡(luò) 4.0.0.0F0/0網(wǎng)絡(luò) 7.0.0.0S1/2S1/0網(wǎng)絡(luò) 8.0.0.0DCE PPPDTE PPPRT3Clockrate:115200RT4DTE PPP8.1.242.2 255.0.0.05.1.242.2 255.0.0.08.1.242.1 255.0.0.0S1/1網(wǎng)絡(luò) 5.0.0.0S1/14.1.242.2 255.0.0.0PC44.1.242.1 255.0.0.0DTE PPPS1/07.1.242.2 255.0.0.0F0/0網(wǎng)絡(luò) 2.0.0.0RT22.1.242.2 255.0.0.0DCE PPPClockrate:1152005.1.242.1 255.0.0.0F0/0PC2

      二.實驗?zāi)康?/p>

      ? 復(fù)習(xí)和進一步掌握實驗一二的內(nèi)容。

      ?

      學(xué)會設(shè)計較復(fù)雜的網(wǎng)絡(luò)物理拓撲和邏輯網(wǎng)段。

      ?

      掌握路由器上RIP協(xié)議的配置方法,能夠在模擬環(huán)境中進行路由器上RIP協(xié)議的配置,并能通過debug信息來分析RIP協(xié)議的工作過程,并觀察配置水平分割和沒有配置水平分割兩種情況下RIP協(xié)議工作過程的變化。

      ?

      掌握路由器上OSPF協(xié)議的配置方法,能夠在模擬環(huán)境中上進行路由器上OSPF協(xié)議的配置,并能夠通過debug信息分析OSPF協(xié)議的工作工程。

      三.實驗內(nèi)容及步驟(包括主要配置流程,重要部分需要截圖)

      1.實驗前的基礎(chǔ)設(shè)置(實驗一、二)

      2.物理拓撲設(shè)計

      修改.net 文件,設(shè)計物理拓撲,修改后的.net文件見附錄。3.邏輯網(wǎng)段設(shè)計

      3.1.用list命令列出所有網(wǎng)絡(luò)成員,如下圖所示。

      3.2.輸入命令start/all啟動所有網(wǎng)絡(luò)成員

      配置路由器以及PC的idle-pc value并保存。

      3.3.同過telnet登陸到主機或路由器

      打開八個控制臺窗口,每個窗口都使用telnet登陸到路由器或主機上。例如登陸到PC1 的命令為telnet 127.0.0.1 3001,登陸到RT1的命令為telnet 127.0.0.1 3002 3.4.配置路由器之間的串口并啟動串口

      配置從底層向高層配置,先配置物理層的時鐘信息,再配置數(shù)據(jù)鏈路層協(xié)議,最后配置網(wǎng)絡(luò)層的IP協(xié)議,并開啟串口。

      在配置串口時,已選需要配置成為DCE端,另一端要配置成為DTE端。DCE端提供時鐘,DTE端跟隨時鐘。所以只要在DCE 端配置時鐘即可,配置了時鐘的那端就是DCE端,沒有配置時鐘的那端就是DTE端。

      在此實驗中我將所有的串口的數(shù)據(jù)鏈路層都配置成PPP協(xié)議。如果不配置,默認的數(shù)據(jù)鏈路層采用的是HDLC協(xié)議。IP協(xié)議方面,注意串口兩端的IP地址要在同一網(wǎng)段。no shutdown 啟動窗口。

      具體步驟以RT1和RT2之間的串口連接的配置為例

      用這種方法將其他路由器對之間的串口連接,具體參數(shù)參見網(wǎng)絡(luò)拓撲圖。

      3.5.配置主機和路由器之間的以太網(wǎng)連接接口并啟動

      主機和路由器之間通過以太網(wǎng)相連,以太網(wǎng)不用配置物理層和數(shù)據(jù)鏈路層,只要配置網(wǎng)絡(luò)層IP協(xié)議即可。

      以PC1和RT1為例。

      同理配置好其他三個主機和路由器之間的以太網(wǎng)連接接口并啟動。至此,同一網(wǎng)段中的設(shè)備已經(jīng)可以進行數(shù)據(jù)傳輸了。測試同意網(wǎng)段中的設(shè)配的傳輸數(shù)據(jù)情況。以PC1和RT1以及RT1和RT2之間為例:

      RT1 ping PC1:

      PC1 ping RT1:

      RT1 ping RT2:

      RT2 ping RT1:

      4.配置RIP協(xié)議。

      4.1.為拓撲圖中的主機配置默認路由

      由于拓撲圖中的網(wǎng)絡(luò)比較復(fù)雜,主機采用配置默認路由的方式可以減少工作量,默認路由配置如下例。

      4.2.配置RIP協(xié)議

      以RT1為例,配置RIP協(xié)議,network為與RT1直連的網(wǎng)絡(luò),neighbor為

      RT1的鄰居路由器。

      讓窗口打印RIP協(xié)議調(diào)試信息,我們發(fā)現(xiàn)RT1在更新路由表。

      4.3.檢測不同網(wǎng)段中網(wǎng)絡(luò)的聯(lián)通情況

      各路由器均已開啟RIP協(xié)議,即各個路由器之間已經(jīng)交換過信息。PC1 ping PC4

      PC4 ping RT2

      RT4 ping RT1

      RT4 ping PC1

      各網(wǎng)段路由器經(jīng)過動態(tài)學(xué)習(xí),已經(jīng)獲得了整個網(wǎng)絡(luò)的拓撲,所以拓撲中的模塊均能夠ping通。

      4.4.分析RIP協(xié)議工作過程。RT1:

      RT2:

      RIP協(xié)議基于距離矢量路由算法,它的基本工作原理是:每一個路由器維護一張路由表,該路由表以每一個目標(biāo)網(wǎng)絡(luò)為索引,記錄到達該目標(biāo)網(wǎng)絡(luò)的時間開銷或距離開銷,以及對應(yīng)的輸出接口。所有使用RIP協(xié)議的路由器周期性地向外發(fā)送路由刷新報文,再接收到來自各個鄰居路由器的路由表后,根據(jù)這些路由表來重新計算自己到達各個網(wǎng)絡(luò)的最佳路由。

      從上面的調(diào)試信息,我們可以看到RT2接收來自各個鄰居路由的路由表,RT1向外發(fā)送路由刷新報文,更新路由表的三個最重要的動作。

      4.5.比較禁止水平分割和打開水平分割兩種情況下RIP協(xié)議交互過程的變化。

      進入RT1的s1/0接口的配置模式,禁止水平分割(默認打開水平分割)。命令行為:RT1(config-if)#no ip split-horizon 有水平分割RT1的調(diào)試信息

      禁止水平分割后RT1的調(diào)試信息

      水平分割方法讓路由器記住每一條路由信息的來源,也就是標(biāo)記收到該路由信息的端口號,當(dāng)本路由器向外廣播路由信息時,不會將該路由信息向收到這條信息的端口上發(fā)送,從而可以避免一些路由循環(huán)產(chǎn)生。

      有上面兩個截圖的比較,我們發(fā)現(xiàn)關(guān)閉水平分割后,從s1/0傳來的網(wǎng)段1,2,3,4,5,6,7,8的信息又發(fā)給s1/0。此外,對于有水平分割的s1/0接口,傳送的是已經(jīng)篩選過的距離表。這就是關(guān)閉水平分割的區(qū)別。

      雖然在上圖中沒有明顯的區(qū)別,但是當(dāng)鏈路出現(xiàn)故障時,水平分割就是一種防止出現(xiàn)無窮計算問題的高效同步的方法。

      4.6.采用show ip route 觀察路由器在RIP協(xié)議中學(xué)到的路由表項

      我們以R1為例進行分析。RIP協(xié)議配置前的R1的路由表

      我們發(fā)現(xiàn)路由表中只有與它直接相連的路由信息且都標(biāo)注為C。啟動RIP協(xié)議后RT1的路由信息。

      比較學(xué)習(xí)前和學(xué)習(xí)后的路由表,我們發(fā)現(xiàn)多了標(biāo)記為R的表項,并且現(xiàn)在路由知道了與其不相連的網(wǎng)段、主機和路由。

      我們以第二行:R 2.0.0.0/8[120/1]via 7.1.242.2,00:00:08,Serial1/0為例說明: R表示此路由表項是通過RIP協(xié)議學(xué)習(xí)到的,而時間00:00:08表示學(xué)習(xí)到這個路由表項距離現(xiàn)在的時間,時間越小表示路由表項越新,它的可信度也就越高。而時間較大時表示這個路由表項是很久之前學(xué)習(xí)到的,現(xiàn)在網(wǎng)絡(luò)狀況可能已經(jīng)發(fā)生了變化。

      4.7.跟蹤路由,觀察RIP協(xié)議實驗結(jié)果

      我們觀察PC1 ping PC4 的包所經(jīng)過的路徑,由下圖可知路徑為:1.1.242.1->1.1.242.2->6.1.242.1->8.1.242.2->4.1.242.1 *表示失敗。

      5.OSPF 協(xié)議配置和實驗

      5.1.刪除各路由器上的RIP協(xié)議

      在配置模式下輸入no router rip

      在特權(quán)模式下輸入show ip route 查看刪除RIP協(xié)議后的路由信息,由下圖可知刪除RIP協(xié)議后,路由器只認識和它直連的網(wǎng)絡(luò)信息。

      5.2.在路由器上配置OSPF協(xié)議

      以RT1為例配置OSPF協(xié)議。

      具體步驟為:進入OSPF配置模式->配置與RT1直連的網(wǎng)絡(luò)并指明該網(wǎng)絡(luò)所在的區(qū)域->進入路由串口(s)分別配置從接口發(fā)送hello包的時間間隔和認為通過該接口相連的鄰居已經(jīng)不存在的時間間隔。

      當(dāng)網(wǎng)絡(luò)中所有路由器都已經(jīng)配好OSPF協(xié)議后,在RT1中輸入show ip route,如下圖可知RT1已經(jīng)知道了所有沒有直接相連的網(wǎng)絡(luò)。

      5.3.檢測OSPF路由結(jié)果

      以PC1 ping PC4為例

      開始時丟了兩包,收到了三包,說明網(wǎng)絡(luò)連接沒有問題。

      5.4.利用debug ip ospf event 打開調(diào)試信息,分析OSPF協(xié)議工作過程

      以RT1為例

      OSPF是基于鏈路狀態(tài)算法的分層路由協(xié)議。在開啟OSPF協(xié)議之后路由器之間交互的是鏈路狀態(tài)信息,不過上圖只有相鄰鏈路Hello包的交互,這是因為OSPF的主要協(xié)議交互過程是在剛配置完OSPF協(xié)議時就進行了,而在網(wǎng)絡(luò)運行過程中,如果沒有鏈路狀態(tài)的變化就沒有交互鏈路狀態(tài)信息。也就是說,一旦網(wǎng)絡(luò)穩(wěn)定,信息不再更新,則只會有Hello包。只有鏈路發(fā)生變化時,相應(yīng)路由器才會廣播改變的信息給其余路由器。

      Hello協(xié)議是OSPF協(xié)議中比較重要的部分,用于檢測鄰居并維護鄰接關(guān)系。

      5.5.修改鏈路狀態(tài),觀察廣播信息的交互

      5.5.1.通過debug ip osdf flood 打開RT1的洪泛狀態(tài)

      打開后,維持下面狀態(tài)不變,知道鏈路狀態(tài)出現(xiàn)變化。

      可靠洪泛機制是OSPF的重要部分,在其某條鏈路狀態(tài)發(fā)生變化時,會將變化的信息發(fā)送給同一域中的所有OSPF路由器,從而確保整個域內(nèi)的路由器始終具有一致的鏈路狀態(tài)數(shù)據(jù)庫。

      5.5.2.觀察路由器端口失效時信息的交互

      關(guān)閉與RT1直連的RT3的s1/0接口

      RT1反應(yīng)部分截圖

      我們發(fā)現(xiàn),RT3的接口一關(guān)閉后,就收到了來自RT3的11.1.1.2的洪泛信息。OSPF路由器收到鏈路狀態(tài)更新報文時,更新自己的鏈路狀態(tài)數(shù)據(jù)庫,然后采用SPF算法重新計算路由表。在重新計算過程中,路由器繼續(xù)使用舊路由表,直到SPF完成新路由表的計算。

      最終RT1端又會恢復(fù)鏈路改變前的平靜狀態(tài),不會再有信息輸出。但是即使鏈路狀態(tài)沒有發(fā)生變化,OSPF路由信息也會自動更新,默認時間為30分鐘。

      5.5.3.觀察IP地址失效時信息的交互

      刪除與RT1直連的RT3的s1/0的IP地址

      觀察RT1的變化

      我們發(fā)現(xiàn)RT1收到來自RT3 s1/2的洪泛信息。

      5.6.利用各個路由器的OSPF的鄰居路由器

      命令行為:sh ip ospf neighbor。其中,Neighbor ID 表示鄰居路由器的路由ID,路由ID是路由器在OSPF網(wǎng)絡(luò)中的唯一標(biāo)識。(是該路由器各IP地址中的一個)。Pri標(biāo)識路由器的優(yōu)先級,默認為1。State標(biāo)識路由器的狀態(tài),F(xiàn)ULL即開著。DOWN即該端口被shutdown了。Dead Time表示最后學(xué)習(xí)到路由信息的時間。Address標(biāo)識鄰居路由器與本路由器相連的接口的IP地址。Interface標(biāo)識連接鄰居路由器的本地接口。

      四.實驗結(jié)果(包括最終實驗結(jié)果,需要截圖)

      詳細實驗結(jié)果見三中的實驗步驟、分析與截圖。

      a)RIP協(xié)議

      通過實驗,我深入理解了RIP協(xié)議的工作原理。

      RIP協(xié)議是基于距離矢量算法的內(nèi)部動態(tài)路由協(xié)議。其基本工作原理是:每一個路由表維護一張路由表,記錄到達該目標(biāo)網(wǎng)絡(luò)的時間開銷或距離開銷,以及對應(yīng)的輸出接口。所有路由器通過周期性地向外發(fā)送路由刷新報文,在接收到來自各個鄰居路由器的路由表后,根據(jù)這些路由表來重新計算自己到達各個網(wǎng)絡(luò)的最佳路由。

      通過對比水平分割關(guān)閉前后的交互變化,真切理解到RIP協(xié)議通過水平分割來優(yōu)化,避免路由循環(huán)的產(chǎn)生,提高效率。

      b)OSPF協(xié)議

      OSPF協(xié)議基于鏈路狀態(tài)路由算法。在分層次的網(wǎng)絡(luò)結(jié)構(gòu)中,每個區(qū)域內(nèi)部維持一張唯一的本域拓撲結(jié)構(gòu)圖,各域內(nèi)部的路由器根據(jù)所在域的拓撲圖各自計算路由,域邊界路由器把本域的內(nèi)部路由總結(jié)后向其他域進行擴散。

      實驗中還著重研究了OSPF的Hello協(xié)議和可靠泛洪機制。Hello協(xié)議用于檢測鄰居并維護鄰接關(guān)系,可靠泛洪機制在鏈路狀態(tài)發(fā)生變化時更新狀態(tài)。

      我們從鄰居路由表中可以發(fā)現(xiàn),路由器標(biāo)識為端口IP中最大的IP地址。

      debug時,可以看到OSPF協(xié)議中路由器先和鄰居交互鏈路狀態(tài)信息,交互描述信息DBD而非具體的路由信息,然后當(dāng)路由器知道自己沒有哪些信息而對方有時,會啟動Database Require請求交互,然后再Exchange真正的路由信息,知道達到同步為止。

      在點到點鏈路中,常選擇IP地址較大的作為主路由,或者通過elect選舉出多個成員中的主路由,其他路由需與主路由進行數(shù)據(jù)庫同步。

      五.實驗中的問題及心得(需要認真寫,不要寫空話、套話)a)試驗中遇到的問題

      在創(chuàng)建物理鏈路狀態(tài)時,由于沒有經(jīng)驗,每個PC機的端口也寫了slot0 = PA-C7200-IO-FE,導(dǎo)致系統(tǒng)根本啟動不起來。經(jīng)歷數(shù)次失敗的后,終于發(fā)現(xiàn)了問題。程序順利啟動。

      在配置RIP協(xié)議后,發(fā)現(xiàn)各個路由器之間能夠ping通而但PC與PC或者PC與非直連路由器之間無法傳送數(shù)據(jù)。仔細回想實驗步驟,發(fā)現(xiàn)PC沒有配置路由,剛開始采用配置靜態(tài)路由的方法,比較繁瑣;后來學(xué)到配置默認路由來減少工作量。

      b)實驗總結(jié)

      本次實驗建立在實驗一二的基礎(chǔ)上,通過仿真環(huán)境下做具體的配置實踐和觀察,很好地復(fù)習(xí)了上學(xué)期計算機網(wǎng)絡(luò)課程中所學(xué)的距離矢量路由(RIP)和鏈路狀態(tài)路(OSPF)由算法。

      通過實驗,對運行在網(wǎng)絡(luò)中各層的協(xié)議也有了更進一步的認識,知道了網(wǎng)絡(luò)協(xié)議的分工與合作。對網(wǎng)絡(luò)的分層結(jié)構(gòu)有了具體的認識,過去書本上學(xué)到的知識很抽象,動手實踐后認識更加深刻,有些理解錯誤的地方也更正了過來。

      六.實驗思考(需要認真寫,不要寫空話、套話)

      本次實驗做的時間較長,由于我的電腦裝軟件總是裝不上,無奈之下裝了虛擬機+XP操作系統(tǒng)。其間由于不熟悉虛擬機使用規(guī)范,虛擬機還死掉一次,無奈又重裝。在做實驗時,一步步跟著實驗步驟來,一點點熟悉指令。也犯過致命的錯誤,仔細檢查實驗流程重要發(fā)現(xiàn)了問題并順利解決了問題。到網(wǎng)上查找資料,實驗過程也優(yōu)化了很多。實驗大概做了三遍,收獲頗豐。對網(wǎng)絡(luò)的分層結(jié)構(gòu)有了更深的認識,明白了網(wǎng)絡(luò)各層協(xié)議的分工合作。從物理層到數(shù)據(jù)鏈路層再到網(wǎng)絡(luò)層,對數(shù)據(jù)的傳輸腦海中形成了清晰的流程。

      在書寫實驗報告的過程中,學(xué)會了用Visio繪制精美的網(wǎng)絡(luò)拓撲圖,報告層次也更加規(guī)范,嚴(yán)謹。

      七.附錄

      物理拓撲結(jié)構(gòu) autostart = false

      [localhost] port = 7200

      udp = 10000 workingdir =..tmp

      [[router R1]]

      image =..iosunzip-c7200-is-mz.122-37.bin

      model = 7200

      console = 3002

      npe = npe-400

      ram = 64

      confreg = 0x2102

      exec_area = 64

      mmap = false

      slot0 = PA-C7200-IO-FE

      slot1 = PA-4T

      f0/0 = PC1 f0/0

      s1/0 = R2 s1/0

      s1/1 = R3 s1/0

      [[router R2]]

      image =..iosunzip-c7200-is-mz.122-37.bin

      model = 7200

      console = 3004

      npe = npe-400

      ram = 64

      confreg = 0x2102

      exec_area = 64

      mmap = false

      slot0 = PA-C7200-IO-FE

      slot1 = PA-4T

      f0/0 = PC2 f0/0

      s1/1 = R3 s1/1

      [[router R3]]

      image =..iosunzip-c7200-is-mz.122-37.bin

      model = 7200

      console = 3006

      npe = npe-400

      ram = 64

      confreg = 0x2102

      exec_area = 64

      mmap = false

      slot0 = PA-C7200-IO-FE

      slot1 = PA-4T

      f0/0 = PC3 f0/0

      s1/2 = R4 s1/0

      [[router R4]]

      image =..iosunzip-c7200-is-mz.122-37.bin

      model = 7200

      console = 3007

      npe = npe-400

      ram = 64

      confreg = 0x2102

      exec_area = 64

      mmap = false

      slot0 = PA-C7200-IO-FE

      slot1 = PA-4T

      f0/0 = PC4 f0/0

      [[router PC1]] model = 2621 ram = 20 image =..iosunzip-c2600-i-mz.121-3.T.bin mmap = False confreg = 0x2102 console = 3001

      [[router PC2]] model = 2621 ram = 20 image =..iosunzip-c2600-i-mz.121-3.T.bin mmap = False confreg = 0x2102 console = 3003

      [[router PC3]] model = 2621 ram = 20 image =..iosunzip-c2600-i-mz.121-3.T.bin mmap = False confreg = 0x2102 console = 3005

      [[router PC4]] model = 2621 ram = 20 image =..iosunzip-c2600-i-mz.121-3.T.bin mmap = False confreg = 0x2102 console = 3008

      第二篇:北郵嵌入式實驗報告

      北京郵電大學(xué)

      嵌入式系統(tǒng)開發(fā)實驗報告

      學(xué)院:

      班級: 姓名: 學(xué)號:

      序號:

      目錄

      一、實驗?zāi)康?.............................................................................................1

      二、實驗設(shè)備..............................................................................................1

      三、基礎(chǔ)實驗(實驗一~實驗七)............................................................1

      1.實驗五..................................................................................................1 2.實驗六..................................................................................................1 3.實驗七..................................................................................................1

      四、驅(qū)動程序..............................................................................................5

      1.設(shè)備驅(qū)動程序的概念..........................................................................5 2.驅(qū)動程序結(jié)構(gòu)......................................................................................6 3.設(shè)備注冊和初始化..............................................................................7 4.設(shè)備驅(qū)動程序的開發(fā)過程..................................................................8

      五、基本接口實驗......................................................................................8

      1.實驗十二簡單設(shè)備驅(qū)動程序..............................................................9 2.實驗十三 CPU GPIO驅(qū)動程序設(shè)計...................................................9 3.實驗十四中斷實驗...........................................................................10 4.實驗十五數(shù)碼管顯示實驗................................................................12 5.實驗十六 LED點陣驅(qū)動程序設(shè)計...................................................19 6.實驗十七 AD驅(qū)動實驗....................................................................23 7.實驗十八 DA驅(qū)動實驗....................................................................26

      六、實驗中遇到的問題及解決方法........................................................30

      七、實驗總結(jié)及心得................................................................................31

      一、實驗?zāi)康?/p>

      通過實驗熟悉Linux環(huán)境,并掌握一些基本接口驅(qū)動的寫法和用C語言編寫簡單的實驗程序。學(xué)習(xí)LINUX開發(fā)環(huán)境的搭建,通訊配置等。并熟練掌握LINUX驅(qū)動程序的編寫及開發(fā)流程。對嵌入式系統(tǒng)有進一步的了解。

      二、實驗設(shè)備

      1.一套PXA270EP嵌入式實驗箱

      2.安裝Redhat9的宿主PC機,并且配置好ARM Linux的開發(fā)環(huán)境

      三、基礎(chǔ)實驗(實驗一~實驗七)

      實驗一~七為基礎(chǔ)實驗,目的是為后續(xù)實驗搭建好軟、硬件環(huán)境,配置好相關(guān)的協(xié)議、服務(wù),并通過編寫最簡單的HelloWorld程序進行測試。由于后面的實驗都要依靠前面實驗的配置,故本段只著重敘述實驗七的具體實現(xiàn)。

      1.實驗五

      實驗五為宿主PC機配置了TFTP服務(wù)。TFTP(Trivial File Transfer Protocol)是簡單文件傳輸協(xié)議,由于特定開發(fā)環(huán)境的制約,這一服務(wù)是必須的。在配置完成后,每次重啟宿主PC機時,都須先輸入命令:service xinetd restart,以啟動TFTP服務(wù)。

      2.實驗六

      實驗六為宿主PC機配置了NFS服務(wù)。NFS(Network File System)指網(wǎng)絡(luò)文件系統(tǒng),它實現(xiàn)了文件在不同的系統(tǒng)間使用。當(dāng)我們想用遠端檔案時,只需調(diào)用“mount”就可以遠端系統(tǒng)掛接在自己的檔案系統(tǒng)之下。每次重啟宿主PC機時,都須先輸入命令:service nfs restart,以啟動nfs服務(wù)。

      3.實驗七

      實驗七通過用c語言編寫的簡單程序HelloWorld,測試前面幾個實驗是否成功配置好環(huán)境,從超級終端可以看到HelloWorld程序的運行結(jié)果。

      實驗步驟如下: 1)硬件連接:

      連接宿主 PC 機和一臺 PXA270-RP目標(biāo)板。2)打開宿主PC 機電源,進入 Linux操作系統(tǒng)。

      3)啟動RedHat 9.0 的圖形界面,如下圖,若您是以 root 身份登陸在文本模式下,則輸入命令startx啟動圖形界面。進入RedHat 9.0 圖形界面后,打開一個終端窗(Terminal)。

      4)輸入minicom然后回車,minicim設(shè)置為115200 8NI無流控。

      5)打開PXA270_RP目標(biāo)板電源,按目標(biāo)板上的BOOT鍵,在minicom中應(yīng)該會看到如下圖:

      6)在minicom終端窗口中,如圖,輸入下列四條命令 root ifconfig eth 192.168.0.50 up mount-o nolock 192.168.0.100:/ /mnt cd /mnt 此時,先將該窗口最小化,在后面的第 10 操作步驟中還將會回到該窗口中進行操作。

      7)宿主機上打開一個終端窗口(Terminal),點擊【紅帽/System Tools/Terminal】啟動終端窗口,輸入下列 4 條命令: ① cd /home

      ②mkdir HW

      ③ cd HW

      ④ vi

      HelloWorld.c

      /*請您輸入程序 7.1 程序清單*/

      此時會顯示一個空白的屏幕,這條命令的含義是,使用 Vi 編輯器,對一個名叫HelloWorld.c的文件進行編輯,我們看到的空白窗口是對文件進行編輯的窗口,如下圖。就像在 Windows系統(tǒng)下面使用寫字板等一樣道理。

      在 vi 里面先單擊鍵盤 A 鍵,然后左下角會變成—INSER。輸入程序的時候和其他編輯器是一樣的,如下圖。

      當(dāng)輸入程序完畢后,單擊鍵盤 Esc 鍵,然后按“:”(冒號)此時左下角會出現(xiàn)冒號然后輸入“wq”最后按“Enter”確認存盤退出 vi 編輯器,如下圖。

      8)在上面同一個終端窗口中,輸入下列 2 條命令交叉編譯HelloWorld.c源程序,并查看生成的.o 目標(biāo)文件,如圖 7-10,圖7-11: ①

      arm-linux-gcc–oHelloWorldHelloWorld.c ②ls 等到再次出現(xiàn)提示符,代表程序已經(jīng)正確編譯。如果此步出現(xiàn)錯誤信息,請查看錯誤信息,并且重新編輯原來的 C文件,修改錯誤。直到正確編譯。

      9)重新打開第 7 步最小化的開有minicom的終端窗口,即到 PXA270-RP 目標(biāo)板的mnt目錄下,請您輸入下列 3 條命令,運行HelloWorld編譯成功的HelloWorld目標(biāo)程序:

      ① cd home/HW

      /*回到minicom中目標(biāo)板的/mnt/home/HW目錄下*/ ②ls ③./ HelloWorld

      /*此時會看到如下圖*/

      四、驅(qū)動程序

      1.設(shè)備驅(qū)動程序的概念

      設(shè)備驅(qū)動程序?qū)嶋H是處理和操作硬件控制器的軟件,從本質(zhì)上講,是內(nèi)核中具有最高特權(quán)級的、駐留內(nèi)存的、可共享的底層硬件處理例程。驅(qū)動程序是內(nèi)核的一部分,是操作系統(tǒng)內(nèi)核與硬件設(shè)備的直接接口,驅(qū)動程序屏蔽了硬件的細節(jié),完成以下功能:

      ?對設(shè)備初始化和釋放;

      ?對設(shè)備進行管理,包括實時參數(shù)設(shè)置,以及提供對設(shè)備的操作接口; ?讀取應(yīng)用程序傳送給設(shè)備文件的數(shù)據(jù)或者回送應(yīng)用程序請求的數(shù)據(jù); ?檢測和處理設(shè)備出現(xiàn)的錯誤。

      Linux操作系統(tǒng)將所有的設(shè)備全部看成文件,并通過文件的操作界面進行操作。對用戶程序而言,設(shè)備驅(qū)動程序隱藏了設(shè)備的具體細節(jié),對各種不同設(shè)備提供了一致的接口,一般來說,是把設(shè)備映射為一個特殊的設(shè)備文件,用戶程序可以像對其他文件一樣對此設(shè)備文件進行操作。這意味著:

      ?由于每一個設(shè)備至少由文件系統(tǒng)的一個文件代表,因而都有一個“文件名”。?應(yīng)用程序通常可以通過系統(tǒng)調(diào)用open()打開設(shè)備文件,建立起與目標(biāo)設(shè)備的連接。

      ?打開了代表著目標(biāo)設(shè)備的文件,即建立起與設(shè)備的連接后,可以通過read()、write()、ioctl()等常規(guī)的文件操作對目標(biāo)設(shè)備進行操作。

      設(shè)備文件的屬性由三部分信息組成:第一部分是文件的類型,第二部分是一個主設(shè)備號,第三部分是一個次設(shè)備號。其中類型和主設(shè)備號結(jié)合在一起惟一地確定了設(shè)備文件驅(qū)動程序及其界面,而次設(shè)備號則說明目標(biāo)設(shè)備是同類設(shè)備中的第幾個。

      由于Linux 中將設(shè)備當(dāng)做文件處理,所以對設(shè)備進行操作的調(diào)用格式與對文件的操作類似,主要包括open()、read()、write()、ioctl()、close()等。應(yīng)用程序發(fā)出系統(tǒng)調(diào)用命令后,會從用戶態(tài)轉(zhuǎn)到核心態(tài),通過內(nèi)核將open()這樣的系統(tǒng)調(diào)用轉(zhuǎn)換成對物理設(shè)備的操作。

      2.驅(qū)動程序結(jié)構(gòu)

      一個設(shè)備驅(qū)動程序模塊的基本框架

      在系統(tǒng)內(nèi)部,I/O設(shè)備的存取通過一組固定的入口點來進行,入口點也可以理解為設(shè)備的句柄,就是對設(shè)備進行操作的基本函數(shù)。字符型設(shè)備驅(qū)動程序提供如下幾個入口點:

      ?

      open入口點。打開設(shè)備準(zhǔn)備I/O操作。對字符設(shè)備文件進行打開操作,都會調(diào)用設(shè)備的open入口點。open子程序必須對將要進行的I/O操作做好必要的準(zhǔn)備工作,如清除緩沖區(qū)等。如果設(shè)備是獨占的,即同一時刻只能有一個程序訪問此設(shè)備,則open子程序必須設(shè)置一些標(biāo)志以表示設(shè)備處于忙狀態(tài)。

      ?

      close入口點。關(guān)閉一個設(shè)備。當(dāng)最后一次使用設(shè)備完成后,調(diào)用close子程序。獨占設(shè)備必須標(biāo)記設(shè)備方可再次使用。

      ?

      read入口點。從設(shè)備上讀數(shù)據(jù)。對于有緩沖區(qū)的I/O操作,一般是從緩沖區(qū)里讀數(shù)據(jù)。對字符設(shè)備文件進行讀操作將調(diào)用read子程序。

      ?

      write入口點。往設(shè)備上寫數(shù)據(jù)。對于有緩沖區(qū)的I/O操作,一般是把數(shù)據(jù)寫入緩沖區(qū)里。對字符設(shè)備文件進行寫操作將調(diào)用write子程序。

      ?ioctl入口點。執(zhí)行讀、寫之外的操作。

      select入口點。檢查設(shè)備,看數(shù)據(jù)是否可讀或設(shè)備是否可用于寫數(shù)據(jù)。select系統(tǒng)調(diào)用在檢查與設(shè)備文件相關(guān)的文件描述符時使用select入口點。

      3.設(shè)備注冊和初始化

      設(shè)備的驅(qū)動程序在加載的時候首先需要調(diào)用入口函數(shù)init_module(),該函數(shù)最重要的一個工作就是向內(nèi)核注冊該設(shè)備,對于字符設(shè)備調(diào)用register_chrdev()完成注冊。register_chrdev的定義為:intregister_chrdev(unsigned int major, const char *name, struct file_ operations *fops);其中,major是為設(shè)備驅(qū)動程序向系統(tǒng)申請的主設(shè)備號,如果為0,則系統(tǒng)為此驅(qū)動程序動態(tài)分配一個主設(shè)備號。name是設(shè)備名,fops是對各個調(diào)用的入口點說明。此函數(shù)返回0時表示成功;返回-EINVAL,表示申請的主設(shè)備號非法,主要原因是主設(shè)備號大于系統(tǒng)所允許的最大設(shè)備號;返回-EBUSY,表示所申請的主設(shè)備號正在被其他設(shè)備程序使用。如果動態(tài)分配主設(shè)備號成功,此函數(shù)將返回所分配的主設(shè)備號。如果register_chrdev()操作成功,設(shè)備名就會出現(xiàn)在/proc/dvices文件中。

      Linux在/dev目錄中為每個設(shè)備建立一個文件,用ls–l命令列出函數(shù)返回值,若小于0,則表示注冊失敗;返回0或者大于0的值表示注冊成功。注冊以后,Linux將設(shè)備名與主、次設(shè)備號聯(lián)系起來。當(dāng)有對此設(shè)備名的訪問時,Linux通過請求訪問的設(shè)備名得到主、次設(shè)備號,然后把此訪問分發(fā)到對應(yīng)的設(shè)備驅(qū)動,設(shè)備驅(qū)動再根據(jù)次設(shè)備號調(diào)用不同的函數(shù)。

      當(dāng)設(shè)備驅(qū)動模塊從Linux內(nèi)核中卸載,對應(yīng)的主設(shè)備號必須被釋放。字符設(shè)備在cleanup_ module()函數(shù)中調(diào)用unregister_chrdev()來完成設(shè)備的注銷。unregister_chrdev()的定義為:intunregister_chrdev(unsigned int major, const char *name);包括設(shè)備注冊在內(nèi),設(shè)備驅(qū)動的初始化函數(shù)主要完成的功能是有以下5項。(1)對驅(qū)動程序管理的硬件進行必要的初始化。

      對硬件寄存器進行設(shè)置。比如,設(shè)置中斷掩碼,設(shè)置串口的工作方式、并口的數(shù)據(jù)方向等。

      (2)初始化設(shè)備驅(qū)動相關(guān)的參數(shù)。

      一般說來,每個設(shè)備都要定義一個設(shè)備變量,用以保存設(shè)備相關(guān)的參數(shù)。在這一步驟里對設(shè)備變量中的項進行初始化。

      (3)在內(nèi)核注冊設(shè)備。

      調(diào)用register_chrdev()函數(shù)來注冊設(shè)備。(4)注冊中斷。

      如果設(shè)備需要IRQ支持,則要使用request_irq()函數(shù)注冊中斷。(5)其他初始化工作。

      初始化部分一般還負責(zé)給設(shè)備驅(qū)動程序申請包括內(nèi)存、時鐘、I/O端口等在內(nèi)的系統(tǒng)資源,這些資源也可以在open子程序或者其他地方申請。這些資源不用時,應(yīng)該釋放,以利于資源的共享。

      若驅(qū)動程序是內(nèi)核的一部分,初始化函數(shù)則要按如下方式聲明: int __initchr_driver_init(void);其中__init是必不可少的,在系統(tǒng)啟動時會由內(nèi)核調(diào)用chr_driver_init,完成驅(qū)動程序的初始化。

      當(dāng)驅(qū)動程序是以模塊的形式編寫時,則要按照如下方式聲明: intinit_module(void)當(dāng)運行后面介紹的insmod命令插入模塊時,會調(diào)用init_module函數(shù)完成初始化工作。

      4.設(shè)備驅(qū)動程序的開發(fā)過程

      由于嵌入式設(shè)備由于硬件種類非常豐富,在默認的內(nèi)核發(fā)布版中不一定包括所有驅(qū)動程序。所以進行嵌入式Linux系統(tǒng)的開發(fā),很大的工作量是為各種設(shè)備編寫驅(qū)動程序。除非系統(tǒng)不使用操作系統(tǒng),程序直接操縱硬件。嵌入式Linux系統(tǒng)驅(qū)動程序開發(fā)與普通Linux開發(fā)沒有區(qū)別??梢栽谟布a(chǎn)廠家或者Internet上尋找驅(qū)動程序,也可以根據(jù)相近的硬件驅(qū)動程序來改寫,這樣可以加快開發(fā)速度。實現(xiàn)一個嵌入式Linux設(shè)備驅(qū)動的大致流程如下。

      (1)查看原理圖,理解設(shè)備的工作原理。一般嵌入式處理器的生產(chǎn)商提供參考電路,也可以根據(jù)需要自行設(shè)計。

      (2)定義設(shè)備號。設(shè)備由一個主設(shè)備號和一個次設(shè)備號來標(biāo)識。主設(shè)備號惟一標(biāo)識了設(shè)備類型,即設(shè)備驅(qū)動程序類型,它是塊設(shè)備表或字符設(shè)備表中設(shè)備表項的索引。次設(shè)備號僅由設(shè)備驅(qū)動程序解釋,區(qū)分被一個設(shè)備驅(qū)動控制下的某個獨立的設(shè)備。

      (3)實現(xiàn)初始化函數(shù)。在驅(qū)動程序中實現(xiàn)驅(qū)動的注冊和卸載。(4)設(shè)計所要實現(xiàn)的文件操作,定義file_operations結(jié)構(gòu)。(5)實現(xiàn)所需的文件操作調(diào)用,如read、write等。

      (6)實現(xiàn)中斷服務(wù),并用request_irq向內(nèi)核注冊,中斷并不是每個設(shè)備驅(qū)動所必需的。

      (7)編譯該驅(qū)動程序到內(nèi)核中,或者用insmod命令加載模塊。(8)測試該設(shè)備,編寫應(yīng)用程序,對驅(qū)動程序進行測試。

      五、基本接口實驗

      在完成了基本實驗后,我們開始著手基本接口實驗。在這些實驗中,我們學(xué)習(xí)如何編寫設(shè)備驅(qū)動程序,及如何用測試程序檢驗驅(qū)動程序是否正確,并通過改寫測試程序正常地對驅(qū)動程序進行相關(guān)操作。

      1.實驗十二 簡單設(shè)備驅(qū)動程序

      本次實驗的任務(wù)是編寫一個字符型設(shè)備驅(qū)動程序,并學(xué)習(xí)在應(yīng)用程序中調(diào)用驅(qū)動??紤]到我們初次接觸驅(qū)動程序的編寫,對此還十分陌生,因此指導(dǎo)書中提供了本次實驗所要用到的程序源代碼。雖然這樣一個字符型設(shè)備驅(qū)動程序并沒有任何實際作用,但是它讓我們輕松掌握了嵌入式驅(qū)動的編寫過程,因為復(fù)雜繁瑣的驅(qū)動,其骨架都是相同的。因此,看懂本實驗的源代碼,學(xué)習(xí)并模仿其編寫方法,對于后續(xù)實驗有著非常重要的意義。

      2.實驗十三 CPU GPIO驅(qū)動程序設(shè)計

      在本實驗中,我們要編寫第一個針對實際硬件的驅(qū)動程序。我們知道,凡是操作系統(tǒng)控制外部設(shè)備,即使是最簡單的硬件電路,也是需要驅(qū)動的。本實驗涉及的外部硬件只有電阻和發(fā)光二極管。我們使用自己編寫的驅(qū)動程序與應(yīng)用程序控制 GPIO96的電平,通過 LED 的亮滅來判斷,是否 CPU 做出了正確的響應(yīng)。

      補充代碼(1)

      //-------------------WRITE-----------------------ssize_tSIMPLE_GPIO_LED_write(struct file * file ,const char * buf, size_t count, loff_t * f_ops){ #ifdef OURS_GPIO_LED_DEBUG printk(“SIMPLE_GPIO_LED_write [--kernel--]n”);

      #endif

      return count;}

      補充代碼(2)

      //-------------------OPEN------------------------ssize_tSIMPLE_GPIO_LED_open(structinode * inode ,struct file * file){ #ifdef OURS_GPIO_LED_DEBUG printk(“SIMPLE_GPIO_LED_open [--kernel--]n”);

      #endif

      MOD_INC_USE_COUNT;

      return 0;}

      補充代碼(3)

      //------------------structfile_operationsGPIO_LED_ctl_ops ={ open:SIMPLE_GPIO_LED_open, read:SIMPLE_GPIO_LED_read, write:SIMPLE_GPIO_LED_write, ioctl:SIMPLE_GPIO_LED_ioctl, release:SIMPLE_GPIO_LED_release, };實驗作業(yè)

      要求在目標(biāo)板上LED閃爍產(chǎn)生亮7秒,滅2秒的效果 在測試程序中有這樣一段代碼: while(1){ ioctl(fd,LED_OFF);sleep(1);

      sleep(1);while(1){ ioctl(fd,LED_OFF);sleep(2);

      sleep(7);} 3.實驗十四

      中斷實驗

      // 滅2秒 // 亮7秒 ioctl(fd,LED_ON);}

      // 休眠1秒

      ioctl(fd,LED_ON);只需將上面的代碼改為如下代碼即可:

      在理論課中,我們學(xué)習(xí)了許多中斷方面的知識,包括中斷向量、中斷優(yōu)先級、中斷過程等。在PXA270系統(tǒng)里,中斷控制器分外部設(shè)備和 PXA270X 處理器設(shè)備產(chǎn)生的兩個層次的中斷,前者是初級的中斷源,后者是次級中斷源,大量的次級中斷源通常被映射為一個初級中斷源。

      補充代碼1 voidshowversion(void){ printk(“*********************************************n”);

      printk(“t %s tn”, VERSION);

      printk(“*********************************************nn”);

      } static intSimpleINT_temp_count = 0;補充代碼2 //-------------------READ------------------------ssize_tSIMPLE_INT_read(struct file * file ,char * buf, size_t count, loff_t * f_ops){

      #ifdef OURS_INT_DEBUG

      #endif return count;printk(“SIMPLE_INT_read [--kernel--]n”);} 補充代碼3 //-------------------WRITE-----------------------ssize_tSIMPLE_INT_write(struct file * file ,const char * buf, size_t count, loff_t * f_ops){

      #ifdef OURS_INT_DEBUG

      } 補充代碼4 //------------------structfile_operationsINT_ctl_ops ={ open: SIMPLE_INT_open, read: SIMPLE_INT_read, #endif return count;printk(“SIMPL_INT_write [--kernel--]n”);write:SIMPLE_INT_write, ioctl:SIMPLE_INT_ioctl, release:SIMPLE_INT_release, };

      通過此實驗,我了解了硬件中斷管腳與中斷號的對應(yīng)關(guān)系,以及中斷號與中斷處理程序的對應(yīng)關(guān)系,對于今后編寫更為復(fù)雜的中斷程序打下基礎(chǔ)。

      4.實驗十五

      數(shù)碼管顯示實驗

      在此實驗中,我們要編寫針對 74LV164 的驅(qū)動程序,并用其串并轉(zhuǎn)換功能來控制八段LED數(shù)碼管的顯示。

      補充代碼1 voidshowversion(void){ printk(“*********************************************n”);

      printk(“t %s tn”, VERSION);

      printk(“*********************************************nn”);

      } 補充代碼2 //-------------------READ------------------------ssize_tSERIAL_LED_read(struct file * file ,char * buf, size_t count, loff_t * f_ops){ #ifdef OURS_HELLO_DEBUG

      } 補充代碼3 //-------------------WRITE-----------------------ssize_tSERIAL_LED_write(struct file * file ,const char * buf, size_t count, loff_t * f_ops)return count;printk(“SERIAL_LED_read [--kernel--]n”);#endif { #ifdef OURS_HELLO_DEBUG

      } 補充代碼4 //-------------------IOCTL-----------------------ssize_tSERIAL_LED_ioctl(structinode * inode ,struct file * file, unsigned intcmd, long data){ #ifdef OURS_HELLO_DEBUG

      #endif

      } 補充代碼5 //-------------------OPEN------------------------ssize_tSERIAL_LED_open(structinode * inode ,struct file * file){ #ifdef OURS_HELLO_DEBUG

      #endif

      return 0;} MOD_INC_USE_COUNT;printk(“SERIAL_LED_open [--kernel--]n”);return 0;printk(“SERIAL_LED_ioctl [--kernel--]n”);return count;#endif write_byte(* buf);printk(“SERIAL_LED_write [--kernel--]n”);補充代碼6 //-------------------RELEASE/CLOSE---------------ssize_tSERIAL_LED_release(structinode *inode ,struct file * file){ #ifdef OURS_HELLO_DEBUG

      printk(“SERIAL_LED_release [--kernel--]n”);

      #endif MOD_DEC_USE_COUNT;return 0;} 補充代碼7 //------------------structfile_operationsSERIAL_LED_ops ={ open: SERIAL_LED_open,read: SERIAL_LED_read,write:SERIAL_LED_write,ioctl:SERIAL_LED_ioctl,release:SERIAL_LED_release, };補充代碼8 staticint __initHW_SERIAL_LED_init(void){ int ret =-ENODEV;

      ret =

      devfs_register_chrdev(SERIAL_LED_MAJOR, &SERIAL_LED_ops);

      showversion();if(ret < 0)“serial_led_ctl”,} {

      } else { } return ret;printk(“ pxa270 serial_led_driver register success!![--kernel--]n”);printk(“ pxa270 init_module failed with %dn [--kernel--]”, ret);return ret;補充代碼9 staticint __init pxa270_SERIAL_LED_init(void){ int ret =-ENODEV;

      printk(“pxa270_SERIAL_LED_init [--kernel--]n”);

      #endif

      ret = HW_SERIAL_LED_init();if(ret)return ret;return 0;} 補充代碼10 static void __exit cleanup_SERIAL_LED(void){ #ifdef OURS_HELLO_DEBUG #ifdef OURS_HELLO_DEBUG

      #endif }

      補充代碼11 MODULE_DESCRIPTION(“serial_led driver module”);

      MODULE_AUTHOR(“l(fā)iduo”);

      MODULE_LICENSE(“GPL”);

      module_init(pxa270_SERIAL_LED_init);module_exit(cleanup_SERIAL_LED);使用測試程序看到的測試結(jié)果是數(shù)碼管按0-9顯示輸出。實驗作業(yè)要求在上述基礎(chǔ)上,分別實現(xiàn)一下兩個功能:

      ①要求您再編寫一個測試程序,實現(xiàn) PXA270-EP 目標(biāo)板上的 LED 數(shù)碼管循環(huán)顯示的數(shù)字9-0。

      ②要求您再編寫一個測試程序,實現(xiàn) PXA270-EP 目標(biāo)板上的 LED 數(shù)碼管循環(huán)顯示的數(shù)字02468。

      由于在測試程序中定義了數(shù)組buf[10]分別存儲了0-9是個數(shù),因此上述功能的實現(xiàn)方法是,分別對測試程序做如下修改:

      原測試程序: while(1){ for(count=0;count<10;count++){ data[0] = buf[count];ret=write(fd,data,1);sleep(1);} } 實現(xiàn)功能①: while(1){ for(count=9;count>=0;count--)} } 結(jié)果顯示

      // 倒序顯示數(shù)字

      { data[0] = buf[count];ret=write(fd,data,1);sleep(1);devfs_unregister_chrdev(SERIAL_LED_MAJOR, “serial_led”);printk(“cleanup_SERIAL_LED [--kernel--]n”);實現(xiàn)功能②: while(1){ for(count=0;count<9;count=count+2)} } 結(jié)果顯示

      // 更改顯數(shù)順序

      { data[0] = buf[count];ret=write(fd,data,1);sleep(1);

      通過更改顯數(shù)的順序,很容易實現(xiàn)實驗作業(yè)里要求的功能。

      5.實驗十六 LED點陣驅(qū)動程序設(shè)計

      通過本實驗的操作,我們將 8X8 的點陣 LED 驅(qū)動起來并通過編寫測試程序,使其能夠按照您的意圖進行顯示。要求您還編寫更多的測試程序

      補充代碼1 voidshowversion(void){ printk(“*********************************************n”);printk(“t %s tn”, VERSION);printk(“*********************************************nn”);

      } 補充代碼2 //-------------------READ------------------------ssize_tSIMPLE_LED_read(struct file * file ,char * buf, size_t count, loff_t * f_ops){ #ifdef OURS_LED_DEBUG

      #endif return count;printk(“SIMPLE_LED_read [--kernel--]n”);} 補充代碼3 //-------------------IOCTL-----------------------ssize_tSIMPLE_LED_ioctl(structinode * inode ,struct file * file, unsigned intcmd, long data){

      #endif

      } 補充代碼4 //------------------structfile_operationsLED_ctl_ops ={ open: SIMPLE_LED_open, read:

      SIMPLE_LED_read, write: SIMPLE_LED_write, ioctl: SIMPLE_LED_ioctl, release:SIMPLE_LED_release, };補充代碼5 staticint __init pxa270_LED_CTL_init(void){ int ret =-ENODEV;

      printk(“pxa270_LED_CTL_init [--kernel--]n”);

      #endif

      ret = HW_LED_CTL_init();if(ret)

      return ret;#ifdef OURS_LED_DEBUG return 0;printk(“SIMPLE_LED_ioctl [--kernel--]n”);#ifdef OURS_LED_DEBUG return 0;} 補充代碼6 static void __exit cleanup_LED_ctl(void){

      #ifdef OURS_LED_DEBUG

      #endif

      } ①要求您再編寫一個測試程序,實現(xiàn)按橫的方向隔行順序掃描 LED 點陣數(shù)碼管。

      ②要求您再編寫一個測試程序,實現(xiàn)按豎的方向順序掃描 LED 點陣數(shù)碼管。作業(yè)一,隔行掃描:

      printk(“cleanup_LED_ctl [--kernel--]n”);outw(0x0000,ioremap_addr);

      devfs_unregister_chrdev(SIMPLE_LED_MAJOR, “l(fā)ed_ary_ctl”);for(i=1;i<=8;i2++){

      buf[0]=c;buf[1]=~r;// row for(j=1;j<=8;j++){

      } r = 1;c = c<<1;

      write(fd,buf,2);

      printf(“buf[0],buf[1]: [%x,%x]n”,buf[0],buf[1]);usleep(200000);// sleep 0.2 second r=r<<1;

      buf[1]=~r;// column

      結(jié)果顯示

      作業(yè)二,豎向掃描:

      for(i=1;i<=8;i++){

      buf[0]=c;buf[1]=~r;// row for(j=1;j<=8;j++){

      } r = 1;c = c<<1;

      write(fd,buf,2);

      printf(“buf[0],buf[1]: [%x,%x]n”,buf[0],buf[1]);usleep(200000);// sleep 0.2 second r=r<<1;

      buf[1]=~r;// column

      結(jié)果顯示

      6.實驗十七 AD驅(qū)動實驗

      通過本實驗的操作,我們將 AD 轉(zhuǎn)換器驅(qū)動起來并通過編寫測試程序,使其能夠?qū)⒛M信號量按照我們的要求轉(zhuǎn)換成數(shù)字信號量。為了更加清楚地理解 AD 轉(zhuǎn)換器的工作過程,請您再編寫一個測試程序,將 UCB_ADC_INP_AD0 換成其他通道,來觀察其他 AD 通道情況。

      補充代碼1 voidshowversion(void){ printk(“%sn”,VERSION);} struct ucb1x00 *ad_ucb;

      補充代碼2 //-------------------READ------------------------staticssize_tadctl_read(struct file * file ,char *buf, size_t count, loff_t *offset){

      } 補充代碼3 //-------------------WRITE-----------------------ssize_tadctl_write(struct file * file ,const char *buf, size_t count, loff_t *offset){

      #ifdef OURS_HELLO_DEBUG printk(“writen”);

      #endif

      } 補充代碼4 //-------------------OPEN------------------------ssize_tadctl_open(structinode * inode ,struct file * file){

      #ifdef OURS_HELLO_DEBUG printk(“openn”);

      #endif

      }

      補充代碼5 //-------------------RELEASE/CLOSE---------------ssize_tadctl_release(structinode *inode ,struct file * file){

      #ifdef OURS_HELLO_DEBUG printk(“releasen”);

      #endif return 0;return 0;return count;#ifdef OURS_HELLO_DEBUG printk(“readn”);#endif return count;} 補充代碼6 staticstructfile_operationsadctl_ops = {

      };補充代碼7 //-------------------INIT------------------------staticint __initHW_AD_CTL_init(void){

      return ret;}

      補充代碼8 staticint __init pxa270_AD_CTL_init(void){ int ret =-ENODEV;#ifdef OURS_HELLO_DEBUG int ret =-ENODEV;ret = devfs_register_chrdev(ADCTL_MAJOR, “adctl”, &adctl_ops);showversion();ad_ucb=ucb1x00_get();if(ret < 0){

      } else { } adctl_dev_handle = devfs_register(NULL, “ad_ctl”, DEVFS_FL_DEFAULT, printk(“adctl driver register success!n”);printk(“fail %dn”,ret);return 0;read: ioctl: adctl_read, adctl_ioctl, write: adctl_write, open: adctl_open, release:adctl_release,ADCTL_MAJOR, 0, S_IFCHR, &adctl_ops, NULL);printk(“initn”);#endif ret=HW_AD_CTL_init();if(ret)}

      補充代碼9 static void __exit cleanup_AD_ctl(void){

      }

      7.實驗十八 DA驅(qū)動實驗

      通過本實驗的操作,我們使用示波器看到了通過DA轉(zhuǎn)換而輸出的波形。在此基礎(chǔ)上,要求試寫一個實現(xiàn)輸出三角波的測試程序。

      補充代碼1 #include #include #include #include #include #include #include #include 補充代碼2 voidshowversion(void){ printk(“*****************************n”);#ifdef OURS_HELLO_DEBUG printk(“cleanupn”);#endif devfs_unregister_chrdev(ADCTL_MAJOR,“ad_ctl”);devfs_unregister(adctl_dev_handle);return ret;return 0;

      } printk(“t %st n”,VERSION);printk(“*****************************n”);static long ioremap_addr;補充代碼3 //-------------------READ------------------------ssize_tSIMPLE_DA_read(struct file * file ,char * buf, size_t count, loff_t * f_ops){ #ifdef OURS_DA_DEBUG

      } 補充代碼4 //-------------------WRITE-----------------------ssize_tSIMPLE_DA_write(struct file * file ,const char * buf, size_t count, loff_t * f_ops){

      printk(“SIMPLE_DA_write[--kernel--]n”);

      #endif

      return count;} 補充代碼5 //-------------------IOCTL-----------------------ssize_tSIMPLE_DA_ioctl(structinode * inode ,struct file * file, unsigned intcmd, outb(buf[0],ioremap_addr);#ifdef OURS_DA_DEBUG return count;#endif printk(“SIMPLE_DA_read[--kernel--]n”);long data){ #ifdef OURS_DA_DEBUG

      printk(“SIMPLE_DA_ioctl[--kernel--]n”);

      #endif return 0;} 補充代碼6 //-------------------OPEN------------------------ssize_tSIMPLE_DA_open(structinode * inode ,struct file * file){

      #ifdef OURS_DA_DEBUG printk(“SIMPLE_DA_open [--kernel--]n”);

      MOD_INC_USE_COUNT;return 0;

      #endif } 補充代碼7 /------------------structfile_operationsDA_ctl_ops ={

      read: SIMPLE_DA_read,};

      補充代碼8 release:

      SIMPLE_DA_release, ioctl:

      SIMPLE_DA_ioctl, write:

      SIMPLE_DA_write, //-------------------INIT------------------------staticint __initHW_DA_CTL_init(void){ int ret =-ENODEV;

      }

      補充代碼9 staticint __init pxa270_DA_CTL_init(void){ int ret =-ENODEV;

      printk(“pxa270_DA_CTL_init [--kernel--]n”);

      #endif #ifdef OURS_DA_DEBUG } printk(“ pxa270 led_driver register success!![--kernel--]n”);{ else } return ret;printk(“ pxa270: init_module failed with %dn [--kernel--]”, ret);{ if(ret < 0)showversion();ret = devfs_register_chrdev(SIMPLE_DA_MAJOR, “da_ctl”, &DA_ctl_ops);

      ret = HW_DA_CTL_init();if(ret)

      return ret;return 0;} 補充代碼10 static void __exit cleanup_DA_ctl(void){

      #endif } 補充代碼11 MODULE_DESCRIPTION(“DA_ctl driver module”);MODULE_AUTHOR(“l(fā)iduo”);MODULE_LICENSE(“GPL”);module_init(pxa270_DA_CTL_init);module_exit(cleanup_DA_ctl);printk(“cleanup_DA_ctl [--kernel--]n”);#ifdef OURS_DA_DEBUG

      六、實驗中遇到的問題及解決方法

      每一次上課重新啟動后,當(dāng)需要將宿主PC機的根目錄掛在到PXA270-EP目標(biāo)板的mnt目錄下(即在超級終端中輸入命令“mount –o soft,timeo=100,rsize=1024 192.168.0.100:/ /mnt”)時,常顯示無法掛載。

      解決方法:在超級終端下的掛載命令應(yīng)該用”mount –o nolock 192.168.0.100:/ /mnt”,如果依然不能掛載需要重啟NFS服務(wù),即在PC機終端中輸入命令”service nfs restart”兩遍后就可以掛載,當(dāng)然有時候也可能是因為網(wǎng)線沒插好。

      在每次重啟機器之后都需要將PC機終端的IP地址和開發(fā)板中的系統(tǒng)的IP地址設(shè)定正確,不然也無法掛載。

      七、實驗總結(jié)及心得

      本學(xué)期的所有實驗均在宿主PC機與PXA270-EP目標(biāo)板上進行。在實驗中,我們先建立硬件實驗平臺,又建立主機軟件開發(fā)環(huán)境,接著為實驗進行各項配置,最后完成了各個實驗中的多種功能。值得注意的是,前期的硬件、軟件準(zhǔn)備必須完整無誤地實現(xiàn),后續(xù)的實驗才能順利進行。所以,打基礎(chǔ)的工作一定要仔細謹慎。后續(xù)實驗中雖然給出了驅(qū)動程序的框架,仍需要我們自己補充完整,并開動腦筋舉一反三,在原代碼的基礎(chǔ)上進行一定修改以實現(xiàn)新的功能。

      通過這學(xué)期的實驗,我逐步完成了建立實驗軟件開發(fā)平臺,搭建實驗編譯軟件環(huán)境,在PC上編輯、編譯一個應(yīng)用程序,并且在嵌入式系統(tǒng)上運行和調(diào)試它的過程。在實驗中,不難發(fā)現(xiàn),編譯驅(qū)動程序大體框架都是一樣的,比如里面的讀函數(shù)、寫函數(shù)、ioctl函數(shù)、打開、關(guān)閉以及函數(shù)模塊的初始化并且在超級終端上顯示出等。但所不同的是,要根據(jù)不同的實驗要求修改名稱,并且對其中必要的部分進行修改。

      除此之外,我認為很多基礎(chǔ)知識對實驗的進行也起著非常大的作用,例如數(shù)碼管的顯示原理。在掌握了基礎(chǔ)知識之后,上機的過程會顯得相對簡單,尤其是代碼框架已經(jīng)給出,我們所以需要做的就是根據(jù)需要稍作改動來得到我們想要的結(jié)果。

      在實驗過程中常常會遇到各種各樣的問題,剛開始時我不知如何是好,只能求助于老師和同學(xué),后來隨著實驗的進行,我對實驗的內(nèi)容和虛擬機都有了一定的了解,遇到問題時也可以靜下心來思考其原因,自己嘗試各種方法去解決問題。整個實驗讓我了解了一套完整的嵌入式系統(tǒng)驅(qū)動程序開發(fā)的全過程,學(xué)到的內(nèi)容非常豐富,相信在學(xué)習(xí)了這些內(nèi)容后,在今后的學(xué)習(xí)工作中接觸到類似內(nèi)容,我不會感到無從下手,而是能夠有條不紊。

      感謝老師的辛勤指導(dǎo)!

      第三篇:北郵數(shù)據(jù)庫實驗報告

      數(shù)據(jù)庫實驗報告

      (三)姓名:學(xué)號:班級:

      1.用Transact-SQL語句、數(shù)據(jù)導(dǎo)入、SQL Server Management Studio(企業(yè)管理器)輸入的方法對所給定的8張表的數(shù)據(jù)輸入到數(shù)據(jù)庫中。自行決定每張表的數(shù)據(jù)導(dǎo)入辦法,但每種方法各針對二或三張表。

      ? Transact-SQL語句: 導(dǎo)入department,student, student_course表。

      insertinto department select*from openrowset

      ('microsoft.jep.oledb.4.0','excel 5.0;hdr=yes;database=D:課件數(shù)據(jù)庫database2.xls',department$);

      insertinto student select*from openrowset

      ('microsoft.jep.oledb.4.0','excel 5.0;hdr=yes;database=D:課件數(shù)據(jù)庫database2.xls',student$);

      insertinto student_course select*from openrowset

      ('microsoft.jep.oledb.4.0','excel 5.0;hdr=yes;database=D:課件數(shù)據(jù)庫database2.xls',student_course$);

      ? 數(shù)據(jù)導(dǎo)入:

      操作:選中數(shù)據(jù)庫studentsdb,右鍵-任務(wù)-導(dǎo)入數(shù)據(jù)。導(dǎo)入book, class, course表。

      SQL Server Management Studio: 操作:右鍵需要編輯的表,選擇編輯前200行。

      Teacher:

      Teacher_course_class:

      導(dǎo)入結(jié)果: Book:

      Class:

      Course:

      Department:

      Student:

      Student_course:

      Teacher:

      Teacher_course_class:

      2.用Transact-SQL向Course表中插入一條記錄,course_name為空,看運行的結(jié)果。

      SQL語句:

      INSERTINTO course VALUES('dep02_s002', null,'dep02_s002', '72', '5', '4');運行結(jié)果:

      分析:course_name有not null的約束,因此這條語句不能執(zhí)行。

      3.用Transact-SQL修改Course表中credit為5的記錄,將其credit改為7, credit小于4的改為2,看運行的結(jié)果。

      SQL語句:

      update course set credit=7 where credit=5;執(zhí)行結(jié)果:

      分析:約束C1指定了credit的范圍為1至6.SQL語句:

      update course set credit=2 where credit<4;執(zhí)行結(jié)果:

      4.刪除一條學(xué)生記錄,看運行結(jié)果,對運行結(jié)果進行分析。SQL語句:

      deletefrom student where student_id='g9940201';執(zhí)行結(jié)果:

      分析:因為有參照完整性約束,不能刪除。

      5.用Transact-SQL完成將編號為dep04_b001的課程的選修信息插入到一個新的選課信息表中。

      SQL語句:

      Creattablestudent_course2(course_idchar(20), student_idchar(20)gradeint, creditint, semesterint,school_yearchar(20),primarykey(course_id,student_id));

      insertintostudent_course2 select*fromstudent_course wherecourse_id='dep04_b001';執(zhí)行結(jié)果:

      6.用Transact-SQL完成刪除單片機原理課程的選課信息,分析運行結(jié)果。

      SQL語句:

      deletefrom student_course where course_id in(select course_id from course

      where course_name='單片機原理')執(zhí)行結(jié)果: 分析:所有課程號為dep04_s003的課程被刪除。

      本實驗中遇到的問題和解決方法:

      本實驗的順利完成需要預(yù)先作很多準(zhǔn)備工作。以下就是我在遇到缺少組件accessdatabaseengine時的解決過程的記錄。

      AccessDatabaseEngine的安裝

      accessdatabaseengine用于和office連接,導(dǎo)入導(dǎo)出數(shù)據(jù),本實驗中需要導(dǎo)入excel文件。安裝配合office的版本,我安裝的是accessdatabaseengine2017(English)版本。安裝32位版本,因office2016是32位。之前誤操作安裝了不能使用的老舊版本accessdatabaseengine2007,通過控制面板-應(yīng)用程序卸載將其卸載了。安裝accessdatabaseengine依然報錯,是因為microsoftofficeclicktorun阻礙sqlserver的一些功能,需要將其卸載。這是微軟推出的用于減少office打開速度的應(yīng)用程序,安裝office2016時會自動安裝上,原理是開機時將一部分內(nèi)容放到內(nèi)存中,因此打開文件時會更快一些。檢測自己的office是通過clickto run 還是MSI安裝的,可以在word中點擊文件-賬戶,查看產(chǎn)品信息,如果有下圖中“office更新”這個選項,則說明安裝過click to run。這個程序在控制面板-應(yīng)用程序中找不到,因此用刪除注冊表的方式卸載。快捷鍵“win+R”輸入“regedit”打開注冊表編輯器,左邊HKEY_CLASSES_ROOT-Installer-Product-00006開頭的選項,有四個。單擊這幾個選項,在右側(cè)查看詳細信息,可以看到ProductNam是Microsoft Access database engine 2007(我原來誤安裝的老版本)。刪除之前先備份注冊表。方法一:選中要刪除的文件,右鍵-導(dǎo)出,保存。只保存了要刪除的文件。方法二:注冊表編輯器,文件-導(dǎo)出,保存。保存了注冊表所有信息。這是因為如果誤刪了重要文件會導(dǎo)致嚴(yán)重后果,可能需要重裝系統(tǒng),留此備份是為了可以恢復(fù)系統(tǒng)。

      備份完之后,選中要刪除的文件(00006開頭的四個),右鍵-刪除即可?;氐紸ccess database engine 32位的程序安裝包,安裝。我無法安裝64位,可能是因為office是32位。安裝成功之后就可以在sqlserver中導(dǎo)入excel文件了。

      第四篇:重郵計算機網(wǎng)絡(luò)實驗報告

      計 算 機 網(wǎng) 絡(luò) 實 驗 報 告

      實驗一 網(wǎng)絡(luò)命令與使用實驗日志

      實驗題目:網(wǎng)絡(luò)命令與使用

      實驗?zāi)康模?/p>

      ??掌握常用網(wǎng)絡(luò)命令的使用方法;

      ??熟悉和掌握網(wǎng)絡(luò)管理、網(wǎng)絡(luò)維護的基本內(nèi)容和方法

      實驗要求:

      ?試用網(wǎng)絡(luò)命令實現(xiàn)如下功能:

      1、在窗口中顯示網(wǎng)絡(luò)適配器的物理地址、主機的IP地址、子網(wǎng)掩碼以及默認網(wǎng)關(guān)

      2、向一臺電腦無限制的發(fā)送數(shù)據(jù)包,此數(shù)據(jù)包大小為60000byte

      3、查看本地計算機或另一臺計算機的ARP高速緩存中的當(dāng)前內(nèi)容

      4、從一臺ftp服務(wù)器上下載一份文件

      ??記錄實驗中所使用的命令格式和執(zhí)行結(jié)果;

      實驗主要步驟: 進入命令行界面

      1.顯示網(wǎng)絡(luò)適配器的物理地址、主機的ip地址、子網(wǎng)掩碼以及默認網(wǎng)關(guān) ipconfig/all 2.向電腦無限制發(fā)送數(shù)據(jù)包,大小為60000byte:ping 172.16.38.31-l 60000 –t 3.查看本地計算機或另一臺計算機的arp高速緩存中的當(dāng)前內(nèi)容 查看本地計算機 arp –a 另一臺計算機

      arp 172.16.38.31-a 4.從一臺ftp服務(wù)器上下載一份文件

      ftp open @s172.16.38.100 ls lcd d:test get wrar501sc.exe 實驗結(jié)果: 1.ipconfig/all

      2.3.4.心得體會:

      經(jīng)過本次的實驗學(xué)習(xí),初步掌握了簡單的網(wǎng)絡(luò)命令的使用,了解到了如何進行網(wǎng)絡(luò)管理和網(wǎng)絡(luò)維護,用命令行進行操作容易出錯誤,打錯一行便需要重來,十分的不方便,不過操作界面十分的簡單。

      實驗二 網(wǎng)絡(luò)服務(wù)器建立與使用實驗日志

      實驗題目:網(wǎng)絡(luò)服務(wù)器建立與使用 實驗?zāi)康模?/p>

      掌握HTTP服務(wù)器和FTP服務(wù)器的配置方法。

      實驗要求:

      (1)IIS Web服務(wù)器的配置

      ?進入Web站點創(chuàng)建向?qū)?/p>

      ?設(shè)定Web站點說明 ?設(shè)置Web站點IP地址

      ?設(shè)置網(wǎng)頁所在目錄 ?設(shè)置Web站點起始頁

      ?創(chuàng)建測試網(wǎng)頁 ?啟動Web服務(wù)器,測試。(2)Serv-U FTP服務(wù)器的配置

      ?安裝Serv-U FTP服務(wù)器; ?創(chuàng)建用戶,綁定發(fā)布目錄; ?設(shè)定目錄權(quán)限; ?測試。

      實驗主要步驟:

      IIS下WEB服務(wù)器的配置過程

      (一)、進入:我的電腦-> 控制面板->管理工具->Internet 服務(wù)管理器

      (二)、配置:選中“XX站點”,點右鍵,選擇屬性:在此頁中分別(主要)選擇主目錄、文檔等進行設(shè)置

      第三方軟件的ftp服務(wù)器的安裝與配置

      (一)、安裝Serv-U FTP Server

      (二)建立第一個可用的FTP服務(wù)器:

      (三)使用此FTP服務(wù)器

      實驗結(jié)果:

      IIS下WEB服務(wù)器的配置

      訪問成功

      第三方軟件的FTP服務(wù)器的安裝與配置

      用不同方式訪問ftp服務(wù)器

      心得體會:

      經(jīng)過本次學(xué)習(xí)成功掌握了http服務(wù)器和ftp服務(wù)器的配制方法。在iis web服務(wù)器的配置中,最重要的就是設(shè)置網(wǎng)頁所在的目錄,不然就會導(dǎo)致網(wǎng)頁無法訪問。在serv-u ftp服務(wù)器的配置中,根據(jù)指導(dǎo)書的指導(dǎo)步驟進行配置,十分的簡單易用,上手很快。通過serv-u創(chuàng)建的ftp服務(wù)器很容易管理,讓我們可以節(jié)省不少的時間。

      實驗三 網(wǎng)絡(luò)協(xié)議分析實驗日志

      實驗題目:網(wǎng)絡(luò)協(xié)議分析 實驗?zāi)康模?/p>

      ??掌握協(xié)議分析軟件的使用方法和基本特點; ??了解Ping命令的工作過程; ??了解FTP協(xié)議的工作過程。

      實驗要求:

      ??寫出實驗過程及結(jié)果;

      ?記錄捕獲的關(guān)鍵數(shù)據(jù),并分析協(xié)議工作過程。??實驗中遇到的問題及解決; ?心得體會。

      實驗主要步驟:

      安裝ethereal 1.使用Ethereal分析軟件捕獲一段Ping命令的數(shù)據(jù)流,并分析其工作過程。Icm抓包

      打開cmd界面 ping 172.16.38.100 2.登錄ftp://172.16.37.223,并下載一個小文件,使用Ethereal分析軟件分析其工作過程。Tcp抓包。打開cmd界面

      ftp open 172.16.38.100 lcd d: get 實驗日志模板.doc 3.http抓包

      瀏覽網(wǎng)頁mail.cqupt.edu.cn

      實驗結(jié)果: 安裝

      1.icmp抓包

      2.tcp抓包

      3.http抓包

      心得體會:

      過本次試驗,我了解到了如何使用抓包軟件進行網(wǎng)絡(luò)協(xié)議分析,掌握了協(xié)議分析軟件的使用方法和基本特點。通過抓包的過程,我了解到了ping命令的工作過程,也了解到了ftp協(xié)議的工作過程。如果網(wǎng)絡(luò)不進行信息加密,則會容易被人截取賬戶信息,例如賬戶、密碼、個人交易情況等等,所以也證明了信息安全的重要性。

      實驗四 網(wǎng)絡(luò)設(shè)備與VLAN配置實驗日志

      實驗題目:網(wǎng)絡(luò)設(shè)備使用與VLAN配置

      實驗?zāi)康模?/p>

      ?掌握交換機的管理特性,能夠?qū)⒔粨Q機配置文件備份到TFTP服務(wù)器

      ?理解Port Vlan的配置

      ?理解VLAN如何跨交換機實現(xiàn)

      ?通過路由器實現(xiàn)各個VLAN間的互聯(lián)互通 實驗要求:

      ?交換機基本操作

      ?VLAN基本配置:交換機端口隔離(Port Vlan)

      ?跨交換機實現(xiàn)VLAN(Tag Vlan)

      ?通過路由器實現(xiàn)VLAN間通信(交換機Switch2950)實驗主要步驟以及測試結(jié)果: 實驗1 交換機基本操作

      拓撲圖

      1.基本配置:交換機配置:

      PC機設(shè)置:

      驗證測試:

      在各PC機上測試與交換機管理IP地址的連通性:

      2.繼續(xù)配置

      將交換機的當(dāng)前配置信息保存到PC1的TFTP服務(wù)器,并命名為config.txt:

      在PC1上查看已保存的交換機配置文件:

      實驗2 VLAN基本配置:交換機端口隔離(Port Vlan)

      拓撲圖

      1.交換機配置:

      測試命令:S1#show vlan

      2.PC機設(shè)置:

      驗證測試:

      實驗3 跨交換機實現(xiàn)VLAN(Tag Vlan)

      拓撲圖

      1.交換機s1配置:

      2.交換機s2配置:

      3.PC機設(shè)置:

      Pc1:IP address:192.168.1.1 netmask:255.255.255.0 gateway:192.168.1.254 Pc2:IP address:192.168.1.2 netmask:255.255.255.0 gateway:192.168.1.254

      Pc3:IP address:192.168.1.3 netmask:255.255.255.0 gateway:192.168.1.254 Pc4:IP address:192.168.1.4 netmask:255.255.255.0 gateway:192.168.1.254 4.測試:

      實驗4 通過路由器實現(xiàn)VLAN間通信(交換機Switch2950)

      拓撲圖

      1.交換機s1配置: 2.交換機s2配置:

      3.PC機設(shè)置: Pc1:IP address:192.168.1.1 netmask:255.255.255.0 gateway:192.168.1.254 Pc2:IP address:192.168.2.1 netmask:255.255.255.0 gateway:192.168.2.254 Pc3:IP address:192.168.1.2 netmask:255.255.255.0 gateway:192.168.1.254 Pc4:IP address:192.168.2.2 netmask:255.255.255.0 gateway:192.168.2.254 4.路由器配置:

      5.測試

      心得體會:

      經(jīng)過本次大型實驗的學(xué)習(xí),基本掌握了交換機的管理特性,能夠?qū)⒔粨Q機配置文件備份到tftp服務(wù)器。也深刻的理解了port vlan的配置和vlan的跨交換機的實現(xiàn)。也掌握了通過路由器實現(xiàn)各個vlan的互聯(lián)互通。初次接觸network boson這個軟件,這個軟件確實十分的好用,不用花費人的時間和金錢去配置實體的裝置,只需要在軟件上面模擬就可以真實地掌握網(wǎng)絡(luò)設(shè)備實用和vlan配置,真是十分的方便。

      實驗五 靜態(tài)路由與缺省路由使用實驗日志

      實驗題目:

      靜態(tài)路由與缺省路由使用 實驗?zāi)康模?/p>

      ?通過靜態(tài)路由使不同網(wǎng)段用戶互聯(lián)互通 實驗要求:

      ?通過靜態(tài)路由使不同網(wǎng)段用戶互聯(lián)互通 實驗主要步驟以及測試結(jié)果:

      拓撲圖

      A 路由器的配置:

      B 路由器的配置:

      PC機1和2配置:

      驗證命令及測試:

      心得體會:

      經(jīng)過本次實驗的學(xué)習(xí),成功地通過靜態(tài)路由使不同網(wǎng)段的用戶實現(xiàn)了互聯(lián)互通。利用boson軟件實現(xiàn)確實非常的方便快捷。

      實驗六 動態(tài)路由配置使用實驗日志

      實驗題目:

      動態(tài)路由配置使用 實驗?zāi)康模?/p>

      ?本實驗主要用來練習(xí)動態(tài)路由OSPF協(xié)議,驗證該協(xié)議的工作原理。實驗主要步驟以及測試結(jié)果:

      1.繪制實驗拓撲圖

      2.配置路由器基本參數(shù)

      配置路由器1 配置路由器2 3.配置 PC 機基本參數(shù)

      測試主機12連接到默認網(wǎng)關(guān)的連通性

      4.配置R1、R2并測試動態(tài)路由OSPF協(xié)議

      驗證測試:

      PC1、PC2測試動態(tài)路由配置:

      心得體會:

      通過本次實驗,我掌握了如何進行動態(tài)路由的配置。進行了動態(tài)路由OSPF協(xié)議的反復(fù)練習(xí),最終成功的完成了實驗,也驗證了該協(xié)議的工作原理,收獲十分巨大。

      實驗七 ACL配置與使用實驗日志

      實驗題目:

      ACL配置與使用 實驗?zāi)康模?/p>

      ?掌握標(biāo)準(zhǔn)IP訪問列表規(guī)則及配置。實現(xiàn)網(wǎng)段間相互訪問的安全控制。?掌握擴展IP訪問列表規(guī)則及配置。實現(xiàn)對網(wǎng)絡(luò)服務(wù)訪問的安全控制。實驗主要步驟以及測試結(jié)果:

      實驗1 標(biāo)準(zhǔn)IP訪問列表

      拓撲圖

      1.基本配置

      各PC機IP可設(shè)置為:

      PC1:IP 192.168.3.2 net-mask 255.255.255.0 default-gateway 192.168.3.1 PC2:IP 192.168.2.2 net-mask 255.255.255.0 default-gateway 192.168.2.1 PC3:IP 192.168.1.2 net-mask 255.255.255.0 default-gateway 192.168.1.1 觀察接口狀態(tài)

      2.配置標(biāo)準(zhǔn)IP訪問控制列表并測試

      3.把訪問控制列表在接口下應(yīng)用并測試

      實驗2 擴展IP訪問列表

      拓撲圖

      1.基本配置

      各PC機IP可設(shè)置為:

      PC1:IP 172.16.10.2 net-mask 255.255.0.0 default-gateway 172.16.10.1 PC2:IP 172.17.10.2 net-mask 255.255.0.0 default-gateway 172.17.10.1 PC3:IP 172.18.10.2 net-mask 255.255.0.0 default-gateway 172.18.10.1 測試觀察接口狀態(tài):

      2.配置擴展IP訪問控制列表并測試

      3.把訪問控制列表在接口下應(yīng)用并測試

      心得體會:

      經(jīng)過本次實驗學(xué)習(xí),我成功的掌握標(biāo)準(zhǔn)IP訪問列表規(guī)則及配置,還有擴展IP訪問列表規(guī)則及配置。這次實驗是根據(jù)實際問題來進行的,通過本次實驗,雖然不能進行真正的實際問題的解決,但是還是給予我們一些解決實際問題的思路。

      實驗八 NAT配置與使用實驗日志

      實驗題目:

      NAT配置與使用 實驗?zāi)康模?/p>

      ?掌握內(nèi)網(wǎng)中一臺服務(wù)器連接到Internet網(wǎng)時的靜態(tài)內(nèi)部源地址轉(zhuǎn)換。實驗要求:

      你是某公司的網(wǎng)絡(luò)管理員,內(nèi)部網(wǎng)絡(luò)有FTP服務(wù)器可以為外部網(wǎng)絡(luò)提供服務(wù),服務(wù)器的IP地址必須采用靜態(tài)地址轉(zhuǎn)換,以便外部用戶可以使用這些服務(wù)。實驗主要步驟以及測試結(jié)果:

      拓撲圖

      1.基本配置(R1、R2)配置:

      PC1配置:IP address 192.168.0.1 netmask 255.255.255.0 default-gateway 192.168.0.254PC2配置:IP address 202.0.0.1 netmask 255.0.0.0

      default-gateway 202.0.0.254 驗證測試:

      2.配置靜態(tài)NAT映射

      測試

      心得體會:

      通過本次的實驗學(xué)習(xí),掌握內(nèi)網(wǎng)中一臺服務(wù)器連接到Internet網(wǎng)時的靜態(tài)內(nèi)部源地址轉(zhuǎn)換。決解了一個公司管理的實體模型,這個方法可以決解這一類問題,但是想要做一個公司的網(wǎng)絡(luò)管理員,還有其他很多很多的事情需要學(xué)習(xí),需要有決解更多問題的能力才行。

      實驗九 HDLC與PPP方式的網(wǎng)絡(luò)互聯(lián)與靜

      態(tài)路由實驗日志

      實驗題目:

      HDLC與PPP方式的網(wǎng)絡(luò)互聯(lián)與靜態(tài)路由 實驗?zāi)康模?/p>

      ?掌握高級數(shù)據(jù)鏈路控制(簡稱HDLC)的原理和配置方法。

      ?PPP的原理和配置方法。

      實驗主要步驟以及測試結(jié)果:

      一、HDLC 方式

      拓撲圖

      Router1配置:

      Router2配置:

      Pc1:/ip 172.10.10.2 Pc2:/ip 172.10.10.3 Pc3:/ip 172.10.20.2 Pc4:/ip 172.10.20.3 3.測試

      255.255.255.0 255.255.255.0 255.255.255.0 255.255.255.0

      /dg 172.10.10.1 /dg 172.10.10.1 /dg 172.10.20.1 /dg 172.10.20.1

      二、PPP 方式

      拓撲圖與HDLC相同。Router1、Router2配置:

      網(wǎng)絡(luò)拓撲圖和設(shè)備端口的IP地址與HDLC方式一樣

      測試連通性

      心得體會:

      通過本次實驗的學(xué)習(xí)掌握了HDLC的原理和配置方法以及PPP方式的原理和方法,也通過自身的學(xué)習(xí)解決了一些問題。起初用PPP的源代碼進行連接的時候,發(fā)現(xiàn)并不能連通,于是上網(wǎng)進行了資料的查找,自己組合了一些代碼,便成功的。通過自己的學(xué)習(xí)達到了實驗的目的收獲了成就感。

      實驗十

      ISDN方式的網(wǎng)絡(luò)互聯(lián)與RIP動態(tài)

      路由實驗日志

      實驗題目:

      ISDN方式的網(wǎng)絡(luò)互聯(lián)與RIP動態(tài)路由 實驗?zāi)康模?/p>

      ?RIP(Routing information Protocol)的原理和配置方法。?綜合數(shù)字業(yè)務(wù)網(wǎng)(ISDN)的原理和配置方法

      實驗要求: ?完成ISDN方式下的實驗,打通兩個LAN和WAN之間的聯(lián)系。

      實驗主要步驟以及測試結(jié)果:

      拓撲圖

      (1)Router1、Router2的配置

      PC機的配置 PC1:/ip 192.10.10.2 255.255.255.0 /dg 192.10.10.1 PC2:/ip 192.10.10.3 255.255.255.0 /dg 192.10.10.1 PC3:/ip 192.10.20.2 255.255.255.0 /dg 192.10.20.1 PC4:/ip 192.10.20.3 255.255.255.0 /dg 192.10.20.1 測試

      心得體會:

      通過本次實驗大致掌握了RIP的原理和配置方法以及ISDN方式的網(wǎng)絡(luò)互聯(lián)。但是這個實驗是有問題的,代碼的錯誤率很高,并不能實現(xiàn)網(wǎng)絡(luò)的互聯(lián),還是需要自己獨自在網(wǎng)絡(luò)上進行學(xué)習(xí)和探索才能弄懂。

      實驗十一 Frame-Relay——基本幀中繼配

      置實驗日志

      實驗題目:

      Frame-Relay——基本幀中繼配置 實驗?zāi)康模?/p>

      ?掌握基本幀中繼的原理和配置方法。實驗主要步驟以及測試結(jié)果:

      拓撲圖

      配置路由器R1、R2配置

      進行幀中繼的測試:

      心得體會:

      通過本次實驗的學(xué)習(xí),基本掌握了幀中繼的原理和配置方法。實驗比較簡單,代碼也沒有什么錯誤,十分好理解。

      實驗十二 幀中繼點到點子接口配置日志

      實驗題目:

      幀中繼點到點子接口配置 實驗?zāi)康模?/p>

      ?本實驗用來練習(xí)Frame-Relay—幀中繼點到點子接口配置

      實驗主要步驟以及測試結(jié)果:

      拓撲圖

      配置路由器router1、router2、router3

      測試幀中繼

      心得體會:

      這次是最后一次實驗,通過本次實驗的學(xué)習(xí),我基本掌握了Frame-relay-幀中繼點到點子接口配置以及原理。計算機網(wǎng)絡(luò)確實復(fù)雜深奧,需要我們多多學(xué)習(xí)才能運用自己的知識去解決實際的問題。

      第五篇:計算機網(wǎng)絡(luò)實踐實驗報告

      《計算機網(wǎng)絡(luò)實踐實驗報告》

      實驗一 :傳輸介質(zhì)的實驗

      實驗思考題:

      1.左右兩側(cè)線序完全一致,但不是標(biāo)準(zhǔn)線序。問:能否當(dāng)正線使用?

      2.8根線中有4根是實際用于數(shù)據(jù)傳輸。問:是哪4根?

      3.直通線和交叉線實際的應(yīng)用環(huán)境是什么?

      4.列出3中功能不同的測線儀,并簡述其功能。

      實驗二 :常用網(wǎng)絡(luò)命令介紹

      實驗思考題:

      1.如何通過常用網(wǎng)絡(luò)命令判斷目標(biāo)主機的操作系統(tǒng)?

      2.作為一名網(wǎng)管,應(yīng)對于網(wǎng)絡(luò)拓撲有詳盡的了解。如何通過網(wǎng)絡(luò)命令判斷故障點。

      3.分析網(wǎng)關(guān)的作用。

      實驗三 :在WindowsServer 2003 環(huán)境下配置WWW服務(wù)

      實驗思考題:

      1.WWW服務(wù)的支撐組件事ISS,最新的IIS版本是什么?支撐WWW所必須的IIS組件事什么?(internet信息服務(wù)管理器公用文件 萬維網(wǎng)服務(wù))

      2.同一IP能否搭配兩個或多個WWW服務(wù)器?能

      3.如何設(shè)計非80端口訪問服務(wù)器? 默認網(wǎng)站 右鍵 屬性 tcp端口瀏覽器輸入

      http://10.0.56.77:8080

      4.Windows 默認的站點主目錄是什么? C:Inetpubwwwroot

      5.描述hTTP協(xié)議工作的過稱及原理。

      實驗四 :在Windows Server 2003 下搭建DNS 服務(wù)器

      實驗思考題:

      1.把本機搭成DNS服務(wù)器,能否為主機某一網(wǎng)站分配兩個或多個域名?能

      2.在同一DNS服務(wù)器內(nèi),能否為不同的網(wǎng)站(不同的IP)分配相同的域名?不能

      3.在實驗實內(nèi)為本機安裝了DNS組件,但沒有添加任何記錄。在TCP/IP 屬性里,將本機的IP設(shè)成唯一的DNS 服務(wù)器。在外網(wǎng)連通的情況下,你能否通過域名

      訪問百度網(wǎng)站?不能

      4.在TCP/IP屬性里面,將本機IP設(shè)成唯一DNS服務(wù)器,在外網(wǎng)連通的情況下,能否通過域名訪問百度網(wǎng)站。不能

      5.某主機IP掩碼網(wǎng)關(guān)配置正常,未設(shè)DNS服務(wù)器,該主機能否訪問某一網(wǎng)站,如

      可以,通過什么來訪問? 能通過代理訪問

      6.反向搜索區(qū)域的作用

      實驗五:搭建DHCP

      實驗思考題:

      1.能否通過交換機充當(dāng)DHCP服務(wù)器?如可以,用二層交換機還是三層交換機?

      2.DHCP服務(wù)器的IP是否必須要和IP值在同一子網(wǎng),說明原因,如果在同一子網(wǎng),該IP是否需要做排除?如果不做排除,地址租約中會出現(xiàn)什么樣的效果?

      3.設(shè)計一個實驗,使租約生效。

      4.DHCP服務(wù)器是否需要為客戶端分配網(wǎng)關(guān)及DNS,描述原因。

      實驗六:用serv—u搭建服務(wù)器

      實驗思考題:

      1.serv—u中組的使用

      2.課堂所列問題

      實驗七:代理服務(wù)器

      實驗思考題:

      1.設(shè)置代理服務(wù)器的作用

      2.分析代理服務(wù)器與網(wǎng)絡(luò)安全之間的關(guān)系

      3.列出三個實際應(yīng)用的代理服務(wù)器軟件

      下載北郵計算機網(wǎng)絡(luò)實踐第三次實驗報告word格式文檔
      下載北郵計算機網(wǎng)絡(luò)實踐第三次實驗報告.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        北郵嵌入式實驗報告[五篇]

        嵌入式系統(tǒng)開發(fā)實驗報告 班級: 姓名: 班內(nèi)序號: 學(xué)號: 日期: 目錄 一、 實驗?zāi)康?.........................................................................................

        北郵數(shù)據(jù)庫第一次實驗報告

        《數(shù)據(jù)庫原理》實驗報告 實驗名稱班級組號組員姓名 數(shù)據(jù)庫實驗平臺的安裝、數(shù)據(jù)庫創(chuàng)建與維護實驗 計算機科學(xué)與技術(shù)8班2011211308 梁展偉、李安一、實驗?zāi)康?1.通過對Micr......

        北郵數(shù)據(jù)結(jié)構(gòu)實驗報告-排序范文大全

        北京郵電大學(xué) 數(shù)據(jù)結(jié)構(gòu)試驗報告 實驗名稱: 實驗四排序 學(xué)生姓名:班級:班內(nèi)序號:學(xué)號: 日期: 2014年1月4日 1 實驗?zāi)康?學(xué)習(xí)、實現(xiàn)、對比各種排序算法,掌握各種排序算法的優(yōu)劣,以......

        北郵日歷java實驗報告

        Java日歷實驗報告 信息工程27班項明鈞 一、實驗要求 寫一個建議日歷圖形用戶界面二、設(shè)計思路 此次作業(yè)主要用到了窗口布局設(shè)計及各個組件的功能顯示,事件處理機制。首先需......

        北郵數(shù)據(jù)庫實驗報告[最終版]

        數(shù)據(jù)庫實驗報告(四) 姓名:學(xué)號:班級: 1. 簡單查詢:SQL語句: select credit from course where course_name='SQL Server數(shù)據(jù)庫開發(fā)技術(shù)'; 查詢“數(shù)據(jù)庫開發(fā)技術(shù)”課程的學(xué)分;......

        北郵現(xiàn)場總線實驗報告

        現(xiàn)場總線實驗報告 實驗名稱: CAN總線技術(shù)與iCAN模塊實驗學(xué)院: 自動化學(xué)院專業(yè): 自動化專業(yè)班級: 2010211411 姓名: 韓思宇學(xué)號: 10212006 指導(dǎo)老師: 楊軍一、實驗名稱: 實驗一:CAN總......

        北郵電子院專業(yè)實驗報告

        電子工程學(xué)院 ASIC專業(yè)實驗報告 班級: 姓名:學(xué)號: 班內(nèi)序號: 第一部分 語言級仿真 LAB 1:簡單的組合邏輯設(shè)計 一、 二、 實驗?zāi)康?實驗原理 掌握基本組合邏輯電路的實現(xiàn)方法。 本......

        北郵計算機網(wǎng)絡(luò)課程設(shè)計DNS服務(wù)器

        北郵計算機網(wǎng)絡(luò)課程設(shè)計DNS服務(wù)器 1 環(huán)境 操作系統(tǒng)隨意,語言python2.7 2.文件 Socket.py 說明完成緩存檢測,確定是回應(yīng),還是轉(zhuǎn)發(fā),如果是回應(yīng),確定是本地回應(yīng)還是外部應(yīng)答轉(zhuǎn)發(fā) imp......