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

正文內(nèi)容

畢業(yè)論文---基于linux系統(tǒng)下usb鼠標(biāo)驅(qū)動(dòng)開發(fā)-資料下載頁

2024-11-16 18:40本頁面

【導(dǎo)讀】課題研究的背景和意義-------------------------------------------------------------------------------------1. 課題研究的內(nèi)容---------------------------------------------------------------------------------------------1. USB的應(yīng)用及發(fā)展趨勢(shì)-------------------------------------------------------------------------------------3. 第三章USB系統(tǒng)架構(gòu)與協(xié)議--------------------------------------------------------------------------------7. USB設(shè)備邏輯結(jié)構(gòu)------------------------------------------------------------------------------------------8. USB數(shù)據(jù)傳輸方式------------------------------------------------------------------------------------------9. 第四章LINUX系統(tǒng)內(nèi)核及內(nèi)核模塊---------------------------------------------------------------------13

  

【正文】 統(tǒng)內(nèi)核和內(nèi)核模塊 22 圖 18 Linux內(nèi)核配置與安裝 f : [root@localhost ]cp arch/ram/boot/bzimage /boot/ : [root@localhost ]cp initrd – /boot/ 圖 19 Linux內(nèi)核配置與安裝 g 東華理工 大學(xué)長(zhǎng)江學(xué)院畢業(yè)設(shè)計(jì) 第五章 Linux USB 系統(tǒng)與功能 23 第五章 Linux USB 系統(tǒng)與功能測(cè)試 USB 協(xié)議軟件層次 圖 20 USB協(xié)議軟件層次 USB 體系在實(shí)現(xiàn)時(shí)采用分層的結(jié)構(gòu), 能直接訪問 USB 總線,而必須通過 USB 系統(tǒng)軟件和 USB 主機(jī)控制器來訪問 USB 總線,在 USB 總線上和 USB 設(shè)備進(jìn)行通訊。從邏輯上可以分為功能層、設(shè)備層和總 線接口層三個(gè)層次。其中功能層完 成功能級(jí)的描述、定義和行為;設(shè)備級(jí)則完成從功能級(jí)到傳輸級(jí)的轉(zhuǎn)換,把一次功能級(jí)的行為轉(zhuǎn)換為一 次一次的基本傳輸; USB 總線接口層則處理總線上的 Bit 流,完成數(shù)據(jù)傳輸?shù)奈锢韺訉?shí)現(xiàn)和總線管理。途中黑色箭頭代表真實(shí)的數(shù)據(jù)流,灰色箭頭代表邏輯上的通訊。 USB 系統(tǒng)中數(shù)據(jù)的傳輸,宏觀的看來是在 HOST 和 USB 功能設(shè)備之間進(jìn)行;微觀的看是 在應(yīng)用軟件的 Buffer 和 USB 功能設(shè)備的端點(diǎn)之 間進(jìn)行。一般來說端點(diǎn)都有 Buffer,可以認(rèn)為 USB 通訊就是應(yīng)用軟件 Buffer 和設(shè)備端點(diǎn) Buffer 之間的數(shù)據(jù)交換,交換的通道稱為管道。應(yīng)用軟 件通過和設(shè)備之間的數(shù)據(jù)交換來完成設(shè)備的控 制和數(shù)據(jù)傳輸。通常需要多個(gè)管道來完成數(shù)據(jù)交 換,因?yàn)橥还艿乐恢С忠环N類型的數(shù)據(jù)傳輸。 用在一起來對(duì)設(shè)備進(jìn)行控制的若干管道稱為設(shè) 備的接口,這就是端點(diǎn)、管道和接口的關(guān)系。 一個(gè) USB 設(shè)備可以包括若干個(gè)端點(diǎn),不同的端點(diǎn)以端點(diǎn)編號(hào)和方向區(qū)分。不同端點(diǎn) 可以支 持不同的傳輸類型、訪問間隔以及最大數(shù)據(jù)包大 小。除端點(diǎn) 0 外,所有的端點(diǎn)只支持一個(gè)方向的 數(shù)據(jù)傳輸。端點(diǎn) 0 是一個(gè)特殊的端點(diǎn),它支持雙 向的控制傳輸。管道和端點(diǎn)關(guān)聯(lián),和關(guān)聯(lián)的端點(diǎn) 有相同的屬性,如支持的傳輸類型、最大包長(zhǎng)度、傳輸方向等。 Cli SW(客服軟件 ) USB system SW(客服軟件 ) USB Host Controller(主控器) USB Bus Interface(硬件層 ) USB logical Device(邏輯設(shè)備 ) Function(功能層 ) 主機(jī) 設(shè)備 東華理工 大學(xué)長(zhǎng)江學(xué)院畢業(yè)設(shè)計(jì) 第五章 Linux USB 系統(tǒng)與功能 24 Linux USB 架構(gòu) 圖 21 Linux USB 架構(gòu) MassStorsge 為內(nèi)核配置 MassStorage, 配置之后讓開發(fā)板支持 MassStorage 功能,可以識(shí)別 U盤,開發(fā)板作為 主控器 [root@localhost ] setup 圖 22 內(nèi)核配置 MassStoragea 配置支持熱拔插 USB 設(shè)備驅(qū)動(dòng) USB 核心( USB 協(xié)議) USB 主控器 USB 控制器 Gadget API Gadge 驅(qū)動(dòng) 運(yùn)行 Linux的主機(jī) 運(yùn)行 Linux的設(shè)備 USB 主控器器驅(qū)動(dòng)( UHCI、 OHCI、 EHCI) UDC 驅(qū)動(dòng) 東華理工 大學(xué)長(zhǎng)江學(xué)院畢業(yè)設(shè)計(jì) 第五章 Linux USB 系統(tǒng)與功能 25 General setup ? [*]configure stand kernel fentures ? [*]support for hotpluggable devices(NEW) 圖 23 內(nèi)核配置 MassStorageb 配置支持 U盤格式 Device Drivers? SCSI device support? *SCSI device *SCSI device support *SCSI generic 圖 24 內(nèi)核配置 MassStoragec 配置對(duì) USB 的支持 東華理工 大學(xué)長(zhǎng)江學(xué)院畢業(yè)設(shè)計(jì) 第五章 Linux USB 系統(tǒng)與功能 26 Device Drivers? USB support? * support for Hostside usb [*]USB device filesystem *OHCI HCD support *USB Mass Storage support [*]USB monitor 圖 25 內(nèi)核配置 MassStoraged 配置對(duì) windows 文件系統(tǒng)的支持 File system? Dos/FAT/NT filesystem? *MsDOS *VFAT Partitioniyrs? [*]PC BOS Support *simplified Chinese *NLS UTF8 Mass Storage 功能 測(cè)試 東華理工 大學(xué)長(zhǎng)江學(xué)院畢業(yè)設(shè)計(jì) 第五章 Linux USB 系統(tǒng)與功能 27 圖 26 內(nèi)核配置 MassStoragee 圖 27 內(nèi)核配置 MassStoragef 東華理工 大學(xué)長(zhǎng)江學(xué)院畢業(yè)設(shè)計(jì) 第五章 Linux USB 系統(tǒng)與功能 28 圖 28 內(nèi)核配置 MassStorageg USBHID 為內(nèi)核配置 USB— HID 配置對(duì) USB 的支持 Device Drivers? USB support? * support for Hostside usb [*]USB device filesystem *OHCI HCD support *USB Mass Storage support [*]USB monitor HID devices? *USB Human Interface Device 東華理工 大學(xué)長(zhǎng)江學(xué)院畢業(yè)設(shè)計(jì) 第五章 Linux USB 系統(tǒng)與功能 29 圖 29 內(nèi)核配置 USB— HID a 圖 30 內(nèi)核配置 USB— HID b 東華理工 大學(xué)長(zhǎng)江學(xué)院畢業(yè)設(shè)計(jì) 第五章 Linux USB 系統(tǒng)與功能 30 圖 31 內(nèi)核配置 USB— HID c 圖 32 內(nèi)核配置 USB— HID d 東華理工大學(xué)長(zhǎng)江學(xué)院畢業(yè)設(shè)計(jì) 第六章 Linux USB 鼠標(biāo)驅(qū)動(dòng)程序設(shè)計(jì) 31 第六章 Linux USB 鼠標(biāo)驅(qū)動(dòng)程序設(shè)計(jì) USB 鼠標(biāo)驅(qū)動(dòng)程序分析 USB 設(shè)備包括配置、接口、端點(diǎn)、而 USB 驅(qū)動(dòng)程序設(shè)計(jì)對(duì)應(yīng)一個(gè) USB 接口而非整個(gè) USB 設(shè)備。 圖 33 USB設(shè)備 Linux 內(nèi)核中使用 Struct usb_driver 結(jié)構(gòu)體描述 USb 驅(qū)動(dòng),在 Struct usb_driver結(jié)構(gòu)體中又定義了 usb_device_descriptor 來描述 USb 設(shè)備描述符。 static struct usb_driver usb_mouse_driver = { .name = usbmouse, /* 驅(qū)動(dòng)名 */ .probe = usb_mouse_probe, /* 捕獲函數(shù) */ .disconnect = usb_mouse_disconnect, /* 卸載函數(shù) */ .id_table= usb_mouse_id_table, /* 設(shè)備列表 */ }。 struct usb_device_descriptor { __u8 bLength。 __u8 bDescriptorType。 __le16 bcdUSB。 __u8 bDeviceClass。 __u8 bDeviceSubClass。 __u8 bDeviceProtocol。 __u8 bMaxPacketSize0。 __le16 idVendor。 __le16 idProduct。 __le16 bcdDevice。 Device 設(shè)備 Config 配置 Interface 接口 端點(diǎn) Endpoint 端點(diǎn) Endpoint USB 驅(qū)動(dòng) 東華理工大學(xué)長(zhǎng)江學(xué)院畢業(yè)設(shè)計(jì) 第六章 Linux USB 鼠標(biāo)驅(qū)動(dòng)程序設(shè)計(jì) 32 __u8 iManufacturer。 __u8 iProduct。 __u8 iSerialNumber。 __u8 bNumConfigurations。 } __attribute__ ((packed))。 圖 34 USB協(xié)議 參見(文件綜述 Universal+Serial+Bus+Specification+v2[1].0((USB+) 第 265頁 266 頁) 在 Linux 系統(tǒng)內(nèi)核特有的描述一個(gè) USB 配置的結(jié)構(gòu)體 usb_host_config 在 Linux 系統(tǒng)內(nèi)核里定義了 usb_interface 結(jié)構(gòu)體來作為接口描述符,在接口描述符中又包含了多個(gè)配置和多個(gè)設(shè)置,就像手機(jī)可以當(dāng) U 盤和手機(jī)用(配置),同時(shí)又有會(huì)議模式和戶外模式(設(shè)置)。 東華理工大學(xué)長(zhǎng)江學(xué)院畢業(yè)設(shè)計(jì) 第六章 Linux USB 鼠標(biāo)驅(qū)動(dòng)程序設(shè)計(jì) 33 在 Linux 系統(tǒng)內(nèi)核定義了 usb_host_endpoint 來描述 USB 端點(diǎn)描述符。 URB URB( usb 請(qǐng)求模塊)是 USB 設(shè)備驅(qū)動(dòng)中用來描述昱 USB 設(shè)備通信所用的基本載體和核心數(shù)據(jù)結(jié)構(gòu) URB 處理流程: USB 設(shè)備驅(qū)動(dòng)程序創(chuàng)建并初始化一個(gè)訪問特定 USB 設(shè)備特定的端點(diǎn)的 URB,并提交給 USB Core; USB Core 提交該 URB 到 USB主控器驅(qū)動(dòng)程序; USB 主控器驅(qū)動(dòng)程序根據(jù)該 URB 描述來訪問 USb 設(shè)備; 設(shè)備訪問結(jié)束后, USB 主控器驅(qū)動(dòng)程序程序通知 USB 設(shè)備驅(qū)動(dòng)程序訪問結(jié)束。 創(chuàng)建 URB struct urb *usb_alloc_urb() 初始化 URB 中斷 urb usb_fill_int_urb() 批量 urb usb_fill_bulk_urb() 控制 urb usb_fill_control_urb() 等時(shí) urb 沒有函數(shù)初始化 提交 URB int usb_submit_urb() URB 被提交到 USB 核心后, USB 核心指定 USB 主控器驅(qū)動(dòng)程序來處理該 URB,一下 3種情況被認(rèn)為處理 完成: URB 被成功發(fā)給設(shè)備,設(shè)備返回正確的確認(rèn)( urbstatus 為 0) 發(fā)送或接受數(shù)據(jù)時(shí)出錯(cuò)( urbstatus 將記錄錯(cuò)誤值) URB 被取消( usb_unlink_urb()或 usb_kill_urb()函數(shù)被調(diào)用,或者 URB 已提交,而 USB 設(shè)備拔出) 搭建開發(fā)平臺(tái) 安裝編輯工具 在 Windows 平臺(tái)上安裝 Source Insight 開發(fā)工具。并且新建本系統(tǒng)工程,工程名為 digPhoto。 安裝和配置編譯器 在 Windows 平臺(tái)上安裝編譯器 ADS( ARM Developer Suite )。并配置如下選項(xiàng): (1)新建工程名為 project。 東華理工大學(xué)長(zhǎng)江學(xué)院畢業(yè)設(shè)計(jì) 第六章 Linux USB 鼠標(biāo)驅(qū)動(dòng)程序設(shè)計(jì) 34 (2)單擊 DebugRel Settings 進(jìn) 行設(shè)置。 在 Target Settings 選項(xiàng)卡中的選擇 Postlinker 為 ARM fromELF,這樣做是為了讓編譯器使用 ELF 工具把 ELF 文件轉(zhuǎn)換為片上可執(zhí)行的文件格式 .bin 文件。 在 Language Settings 的 ARM Assembler選項(xiàng)卡中的 Architecture or Processor 選擇 ARM920T。 在 Linker 的
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1