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

正文內容

畢業(yè)設計論文-基于linux系統(tǒng)下usb鼠標驅動開發(fā)(編輯修改稿)

2025-09-06 22:42 本頁面
 

【文章內容簡介】 fer 的大小。Buffer 越大,單次可接收/發(fā)送的數據包越大,反之亦反。當通過一個端點 進行數據傳輸時,若數據的大小超過該端點的最大包長度時,需要將數據分成若干個數據 包傳輸,并彍要求除最后一個包外,所有的包長度均等于該最大包長度。這也就是說如果 一個端點收到/發(fā)送了一個長度小于最大包長度的包,即意味著數據傳輸結束??刂苽鬏斣谠L問總線時也受到一些限制,如:高速端點的控制傳輸不能占用超過 20%的微幀,全速和低速的則不能超過 10%。在一幀內如果有多余的未用時間,并且沒有同步和中斷傳輸,可以用來進行控 制傳輸。 中斷傳輸中斷傳輸是一種輪詢的傳輸方式,是一種單向的傳輸,HOST 通過固定的間隔 對中斷端點進行查詢,若有數據傳輸或可以接收數據則返回數據或發(fā)送數據,否則 返回 NAK,表示尚未準備好。中斷傳輸的延遲有保證,但并非實時傳輸,它是一種延遲有限的可靠傳輸,支 持錯誤重傳。對于高速/全速/低速端點,最大包長度分別可以達到 1024/64/8 Bytes。 高速中斷傳輸不得占用超過 80%的微幀時間,全速和低速不得超過 90%。 中斷端點的輪詢間隔由在端點描述符中定義,全速端點的輪詢間隔可以是 1~255mS,低速端點為 10~255mS,高速端點為(2interval1)*125uS,其中 interval 取 1 到 16 之間的值。除高速高帶寬中斷端點外,一個微幀內僅允許一次中斷事務傳輸,高速高帶寬端點最多可以在一個微幀內進行三次中斷事務傳輸,傳輸高達 3072 字節(jié)的數據。所謂單向傳輸,并不是說該傳輸只支持一個方向的傳輸,而是指在某個端點上該傳輸 僅支持一個方向,或輸出,或輸入。如果需要在兩個方向上進行某種單向傳輸,需要占用兩個端點,分別配置成不同的方向,可以擁有相同的端點編號。 批量傳輸 批量傳輸是一種可靠的單向傳輸,但延遲沒有保證,它盡量利用可以利用的帶寬來完成傳輸,適合數據量比較大的傳輸。低速 USB 設備不支持批量傳輸,高速批量端點的最大包長度為 512,全速批 量端點的最大包長度可以為 1364。批量傳輸在訪問 USB 總線時,相對其他傳輸類型具有最低的優(yōu)先級,USB HOST 總是優(yōu)先安排其他類型的傳輸,當總線帶寬有富余時才安排批量傳輸。高速的批量端點必須支持 PING 操作,向主機報告端點的狀態(tài),NYET 表示否 定應答,沒有準備好接收下一個數據包,ACK 表示肯定應答,已經準備好接收下一個數據包。 同步傳輸 同步傳輸是一種實時的、不可靠的傳輸,不支持錯誤重發(fā)機制。只有高速和全速端點支持同步傳輸,高速同步端點的最大包長度為 1024,低速的為 1023。除高速高帶寬同步端點外,一個微幀內僅允許一次同步事務傳輸,高速高帶寬 端點最多可以在一個微幀內進行三次同步事務傳輸,傳輸高達 3072 字節(jié)的數據。全速同步傳輸不得占用超過 80%的幀時間,高速同步傳輸不得占用超過 90%的微幀時間。同步端點的訪問也和中斷端點一樣,有固定的時間間隔限制。 在主機控制器和 USB HUB 之間還有另外一種傳輸——分離傳輸(Split Transaction) ,它僅在主機控制器和 HUB 之間執(zhí)行,通過分離傳輸,可以允許全速/低速設備連接到高速主機。分離傳輸對于 USB 設備來說是透明的、不可見的。分離傳輸顧名思義就是把一次完整的事務傳輸分成兩個事務傳輸來完成。其出發(fā)點是高速傳輸和全 速/低速傳輸的速度不相等,如果使用一次完整的事務來傳輸,勢必會造成比較長的等待時間,從而 降低了高速 USB 總線的利用率。通過將一次傳輸分成兩此,將令牌(和數據)的傳輸與響應數據(和 握手)的傳輸分開,這樣就可以在中間插入其他高速傳輸,從而提高總線的利用率。第四章 Linux 系統(tǒng)內核及內核模塊 Linux 體系結構User Applications(應用程序)GUN C Library(C 庫)System Call Interface(系統(tǒng)調用接口)Kernel(內核)ArchitechureDependent kernel code(依賴硬件體系結構的代碼)用戶空間內核空間GUN/Linux圖 7 Linux 系統(tǒng)結構現代 CPU 有不同的工作模式,以 ARM 為例,有用戶模式(USR) 、快速中斷模式(FIQ)、外部中斷模式(IRQ)、管理模式(SVC)、數據訪問終止模式(ABT)、系統(tǒng)模式(SYS) 、未定義指令中斷模式(UND) ,不同模式執(zhí)行的特權指令不同,linux 系統(tǒng)利用了 cpu 這一特性,使用了其中的兩級來翻倍運行 Linux 內核昱應用程序,是操作系統(tǒng)本身得到充分的保護。內核空間與用戶空間是程序執(zhí)行的兩種不同的狀態(tài),通過系統(tǒng)調用和硬件中斷能夠完成從用戶空間到內核空間的轉移。 Linux 內核架構Linux 內核源代碼采用樹形結構進行組織,把功能先關的文件都放在同一個子目錄下,是程序更具有可讀性。System call interface(SCI)系統(tǒng)調用接口Pross management(PM)進程管理依賴硬件體系結構的代碼Device Drivers(DD)驅動程序ArchMemory management(MM)內存管理Network stack網絡協(xié)議棧Virtueal file system(VFS)虛擬文件系統(tǒng)圖 8 linux 內核 Linux 內核目錄結構圖 9 Linux 內核文件目錄/arch 目錄:內核多支持的每一種支持 CPU 體系,在該目錄下都有對應的子目錄,每一個 CPU 的子目錄有進一步分解為 boot、kernel 等子目錄,分別包含了控制系統(tǒng)引導,系統(tǒng)調用等。/bock 目錄:部分塊設備驅動程序。/crypto 目錄:加密、壓縮、CRC 校驗算法。/documentation 目錄:內核的文檔。/driver 目錄:設備驅動程序。/fs 目錄:存放各種文件系統(tǒng)的實現代碼。/include 目錄:內核所需的頭文件,與平臺無關的頭文件在 include/linux 子目錄下與硬件體系相關的頭文件在 arch 目錄下。/init 目錄:內核初始化代碼。/ipc 目錄:進程間通信的實現代碼。/kernel 目錄:Linux 大多數關鍵的核心功能(調用程序、進程控制、模塊化)/lib 目錄:庫文件代碼/mm 目錄:用于實現內存管理中昱硬件體系結構無關的部分。/ 目錄:網絡協(xié)議實現的代碼。/samples 目錄:一些內核編程的范例。/scripts 目錄:配置內核的腳本。/security 目錄:安全相關。/sound 目錄:音頻設備的驅動程序。/usr 目錄:Cpio 命令的實現。/virt 目錄:內核虛擬機。 Linux 內核模塊開發(fā)Linux 內核的整體結構非常龐大,起包含組件也很多,若所有組件都編譯進內核文件,這樣會導致內核文件過大,添加和刪除組件是就要重新編譯內核。Linux內核模塊動態(tài)的添加到正在運行的內核中。Linux 內核模塊的特點:本身并不編譯進內核;可以格局需求,在內核運行期間動態(tài)的安裝和卸載。Linux 內核模塊的程序結構:模塊加載函數,安裝時被系統(tǒng)自動的調用的函數,通過 module_init 宏來指定;模塊卸載函數,卸載時被系統(tǒng)自動的調用的函數,通過 module_exit 宏來指定。 makefile當工程很大,需要很多源文件,這是不可能一個一個的去運行,這是就要用到makefile。GUN 的 makefile 能夠是整個軟件工程編譯,連接只需要一個命令就可以完成。Makefile 文件描述整個工程的編譯連接規(guī)則。Makefile 術語:a. 規(guī)則:用于說明如何生成一個或多個目標文件,命令要用 TAB 鍵開始。 規(guī)則: targets(目標): prerequisites(依賴) (TAB 鍵)mand (命令) eg: obj : gcc –o hellob. 最終目標:第一條規(guī)則為最終的目標c. 偽目標:makefile 中把沒有任何依賴只要執(zhí)行的目標為偽目標.PHONY :clearn (將 clearn 聲明為偽目標)clear:rm –f hellod. 變量:用$()定義 eg: obj = hello:$(obj) gcc $(obj) –o hello默認變量$^:代表所有依賴文件$@:代表目標$:代表第一個依賴文件eg:hello : hello: gcc gcc $^ o $@makefile 中“ ”字符為注釋, “@”字符為取消回顯(沒有@時,屏幕會顯示運行的命令) @gcc o hello eg:ifneg($(KERNELRELEASE)) KERNELRELEASE 不為空執(zhí)行 elseobj – m := m 表示編譯的是內核模塊,后面的為模塊的名稱usbmodule –objs= 定義變量else KDIR :=/lib/modules/all: make – C $(KDIR) M=$(pwd) modulesclear: rm –f *.ko *.o *. *. *symversendif 文件為內核模塊文件。圖 10 內核模塊編譯 安裝和卸載內核模塊加載內核模塊 modprobe 圖 11 安裝和卸載內核模塊 a卸載內核模塊 rmmod 查看內核模塊 lsmod 圖 12 安裝和卸載內核模塊 b Linux 內核配置與安裝Linux 內核具有可定制的優(yōu)點,具體步驟如下:1. 清除臨時文件、中間文件和配置文件: [root@localhost ]make distclean圖 13 Linux 內核配置與安裝 a ,如 CPU 類型、網卡的型號、所支持的網絡協(xié)議等 : [root@localhost ]ls –a[root@localhost ]make menuconfig圖 14 Linux 內核配置與安裝 b進入后左右鍵在個選項間移動,enter 進入子菜單,每個選項上的高亮是鍵盤上的快捷方式,空格可更改默認選項。 (*表示編譯進內核,M 表示編譯進內核模塊,空為不編譯) 。可在 arch/arm/configs ,可將該文件拷貝到內核源代碼的根目錄下()這樣可以參照系統(tǒng)多該 CPU 進行的配置的模板,之后在此基礎上定制內核。 :[root@localhost ]make ZImage (內核小于 512K)[root@localhost ]make bzImage(內核大于 512K)編譯好的內核位于 arch/arm/boot/下,為 bzimage 或 zimage 文件圖 15 Linux 內核配置與安裝 c :[root@localhost ]make modules :[root@localhost ]make modules_install圖 16 Linux 內核配置與安裝 d將生成的文件拷貝到/lib/modulse 下,最后內核模塊:/lib/modules/圖 17 Linux 內核配置與安裝 e init ramdisk [root@localhost ]mkinitrd initrd – 生成 initrd – 文件圖 18 Linux 內核配置與安裝 f:[root@localhost ]cp arch/ram/boot/bzimage /boot/:[root@localhost ]cp initrd – /boot/圖 19 Linux 內核配置與安裝 g第五章 Linux USB 系統(tǒng)與功能測試 USB 協(xié)議軟件層次Cli SW(客服軟件)USB system SW(客服軟件 )USB Host Controller(主控器) USB Bus Interface(硬件層)USB logical Device(邏輯設備 )Function(功能層)主機 設備圖 20 USB 協(xié)議軟件層次USB 體系在實現時采用分層的結構, 能直接訪問 USB 總線,而必須通過 USB 系統(tǒng)軟件和 USB 主機控制器來訪問 USB 總線,在 USB 總線上和 USB 設備進行通
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1