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

正文內容

畢業(yè)設計論文-基于linux系統(tǒng)下usb鼠標驅動開發(fā)(參考版)

2024-08-21 22:42本頁面
  

【正文】 在離開之際衷心的祝愿我的母校越越辦越好,東華理工的精神能為我們的中國特色的社會主義中國做出更大的貢獻。感謝母校四年來給予的精神食糧,使我專業(yè)知識還文化素質都得到了提高。其次要感謝這半年來那些和我一起攻克畢業(yè)設計中遇到每個困難的戰(zhàn)友們,正是你們在旁邊對我的鼓勵才使我能堅持不懈保證了論文的進度。這次畢業(yè)設計得到了老師和很多同學的幫助,在此我表示誠摯的感謝。但最終都得到了解決,讓我積累了豐富的項目經(jīng)驗,增強了信心,成為了一筆永遠的財富。為我們畢業(yè)后走上工作崗位打下一定的基礎;并為自己能順利與社會環(huán)境接軌做準備。綜合運用所學的基礎理論、基本技能和專業(yè)知識,去獨立分析和解決實際問題的能力明顯加強。在此次畢業(yè)設計初就體現(xiàn)了我理論功底不扎實的,理論聯(lián)系實踐的能力還不不強的現(xiàn)象。}總 結在老師的指導下,通過三個月的努力終于完成了畢業(yè)設計。kfree(mouse)。fail2:usb_buffer_free(dev, 8, mousedata, mousedata_dma)。return 0。if (error)goto fail3。mouseirqtransfer_flags |= URB_NO_TRANSFER_DMA_MAP。/* 初始化中斷 URB */usb_fill_int_urb(mouseirq, dev, pipe, mousedata, (maxp 8 ? 8 : maxp), usb_mouse_irq, mouse, endpointbInterval)。input_devopen = usb_mouse_open。input_devrelbit[0] |= BIT_MASK(REL_WHEEL)。input_devrelbit[0] = BIT_MASK(REL_X) | BIT_MASK(REL_Y)。input_devevbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REL)。input_dev = amp。usb_to_input_id(dev, amp。input_devname = mousename。usb_make_path(dev, mousephys, sizeof(mousephys))。strlcat(mousename, devproduct, sizeof(mousename))。if (devmanufacturer)strlcpy(mousename, devmanufacturer, sizeof(mousename))。mouseusbdev = dev。/* 分配 URB */mouseirq = usb_alloc_urb(0, GFP_KERNEL)。mousedata_dma)。if (!mouse || !input_dev)goto fail1。/* 創(chuàng)建 input 設備 */mouse = kzalloc(sizeof(struct usb_mouse), GFP_KERNEL)。/* 返回該端點能夠傳輸?shù)淖畲蟮陌L度,鼠標的返回的最大數(shù)據(jù)包為 4 個字節(jié)。/* 根據(jù) HID 規(guī)范,鼠標唯一的端點應為中斷端點 */if (!usb_endpoint_is_int_in(endpoint))return ENODEV。/* 獲取端點 0 描述符 */endpoint = amp。/* 獲取當前接口設置 */interface = intfcur_altsetting。int pipe, maxp。struct usb_mouse *mouse。 /* 接口設置描述 */struct usb_host_interface *interface。return retval。usb_mouse_driver)。//入口module_exit(usb_mouse_exit)。以便實現(xiàn)更高層的調用。外圍設備主要有:LCD 、UART、KEY、IIS 、TIMER 等硬件。初始化寄存器、硬件設備等。在這一層中既要結合硬件知識又要運用到軟甲基礎。這部分主要是用匯編和 C 語言編寫的程序代碼,完成驅動 s3c2440 和相關外圍設備硬件工作的功能。 平臺軟件構成應用層:是嵌入式系統(tǒng)的最高層。LCD 控制器可以根據(jù)編程的需要選擇不同的 LCD 屛要求。而色深和分辨率之積決定了顯存的大小。LCD 分辨率是指 LCD 上的像素的數(shù)目,用橫向點數(shù)*縱向點數(shù)得出 LTV350QV F0E 的分辨率為 320*240。2. S3c2440A 功能及特點LTV350QVF0E:LTV350QVF0E 是 TFT(Thin Film Transistor)型的液晶顯示頻。分布式電源供電,3V 鋰電池,提供 RTC 電源。 安裝其他工具(1)安裝 DNW 超級終端并在 Configuration 中配置 Serial Port 的 Baud Rate 為 115200;在 COM Port 中選擇 COM1;在 USB Port 的 Download Address 中輸入 0x30008000。在 Language Settings 的 ARM Assembler 選項卡中的 Architecture or Processor 選擇 ARM920T。(2)單擊 DebugRel Settings 進行設置。 安裝和配置編譯器 在 Windows 平臺上安裝編譯器 ADS(ARM Developer Suite ) 。URB 被提交到 USB 核心后,USB 核心指定 USB 主控器驅動程序來處理該 URB,一下 3 種情況被認為處理 完成:URB 被成功發(fā)給設備,設備返回正確的確認(urbstatus 為 0)發(fā)送或接受數(shù)據(jù)時出錯(urbstatus 將記錄錯誤值)URB 被取消(usb_unlink_urb()或 usb_kill_urb()函數(shù)被調用,或者 URB 已提交,而 USB 設備拔出) 搭建開發(fā)平臺 安裝編輯工具 在 Windows 平臺上安裝 Source Insight 開發(fā)工具。初始化 URB 中斷 urb usb_fill_int_urb() 批量 urb usb_fill_bulk_urb() 控制 urb usb_fill_control_urb() 等時 urb 沒有函數(shù)初始化在 Linux 系統(tǒng)內核定義了 usb_host_endpoint 來描述 USB 端點描述符。在 Linux 系統(tǒng)內核里定義了 usb_interface 結構體來作為接口描述符,在接口描述符中又包含了多個配置和多個設置,就像手機可以當 U 盤和手機用(配置) ,同時又有會議模式和戶外模式(設置) 。圖 34 USB 協(xié)議參見(文件綜述 Universal+Serial+Bus+Specification+v2[1].0((USB+) 第 265頁266 頁)__u8 bNumConfigurations。__u8 iProduct。__le16 bcdDevice。__le16 idVendor。__u8 bDeviceProtocol。__u8 bDeviceClass。__u8 bDescriptorType。static struct usb_driver usb_mouse_driver = {.name = usbmouse, /* 驅動名 */.probe = usb_mouse_probe, /* 捕獲函數(shù) */.disconnect = usb_mouse_disconnect, /* 卸載函數(shù) */.id_table= usb_mouse_id_table, /* 設備列表 */}。Device 設備Config 配置Interface 接口端點 Endpoint端點 EndpointUSB 驅動圖 33 USB 設備管道和端點關聯(lián),和關聯(lián)的端點 有相同的屬性,如支持的傳輸類型、最大包長度、傳輸方向等。除端點 0 外,所有的端點只支持一個方向的 數(shù)據(jù)傳輸。一個 USB 設備可以包括若干個端點,不同的端點以端點編號和方向區(qū)分。通常需要多個管道來完成數(shù)據(jù)交 換,因為同一管道只支持一種類型的數(shù)據(jù)傳輸。一般來說端點都有 Buffer,可以認為 USB 通訊就是應用軟件 Buffer 和設備端點 Buffer 之間的數(shù)據(jù)交換,交換的通道稱為管道。途中黑色箭頭代表真實的數(shù)據(jù)流,灰色箭頭代表邏輯上的通訊。從邏輯上可以分為功能層、設備層和總 線接口層三個層次??稍?arch/arm/configs ,可將該文件拷貝到內核源代碼的根目錄下()這樣可以參照系統(tǒng)多該 CPU 進行的配置的模板,之后在此基礎上定制內核。圖 10 內核模塊編譯 安裝和卸載內核模塊加載內核模塊 modprobe 圖 11 安裝和卸載內核模塊 a卸載內核模塊 rmmod 查看內核模塊 lsmod 圖 12 安裝和卸載內核模塊 b Linux 內核配置與安裝Linux 內核具有可定制的優(yōu)點,具體步驟如下:1. 清除臨時文件、中間文件和配置文件: [rootlocalhost ]make distclean圖 13 Linux 內核配置與安裝 a ,如 CPU 類型、網(wǎng)卡的型號、所支持的網(wǎng)絡協(xié)議等 : [rootlocalhost ]ls –a[rootlocalhost ]make menuconfig圖 14 Linux 內核配置與安裝 b進入后左右鍵在個選項間移動,enter 進入子菜單,每個選項上的高亮是鍵盤上的快捷方式,空格可更改默認選項。Makefile 術語:a. 規(guī)則:用于說明如何生成一個或多個目標文件,命令要用 TAB 鍵開始。GUN 的 makefile 能夠是整個軟件工程編譯,連接只需要一個命令就可以完成。Linux 內核模塊的程序結構:模塊加載函數(shù),安裝時被系統(tǒng)自動的調用的函數(shù),通過 module_init 宏來指定;模塊卸載函數(shù),卸載時被系統(tǒng)自動的調用的函數(shù),通過 module_exit 宏來指定。Linux內核模塊動態(tài)的添加到正在運行的內核中。/virt 目錄:內核虛擬機。/sound 目錄:音頻設備的驅動程序。/scripts 目錄:配置內核的腳本。/ 目錄:網(wǎng)絡協(xié)議實現(xiàn)的代碼。/ipc 目錄:進程間通信的實現(xiàn)代碼。/include 目錄:內核所需的頭文件,與平臺無關的頭文件在 include/linux 子目錄下與硬件體系相關的頭文件在 arch 目錄下。/driver 目錄:設備驅動程序。/crypto 目錄:加密、壓縮、CRC 校驗算法。System call interface(SCI)系統(tǒng)調用接口Pross management(PM)進程管理依賴硬件體系結構的代碼Device Drivers(DD)驅動程序ArchMemory management(MM)內存管理Network stack網(wǎng)絡協(xié)議棧Virtueal file system(VFS)虛擬文件系統(tǒng)圖 8 linux 內核 Linux 內核目錄結構圖 9 Linux 內核文件目錄/arch 目錄:內核多支持的每一種支持 CPU 體系,在該目錄下都有對應的子目錄,每一個 CPU 的子目錄有進一步分解為 boot、kernel 等子目錄,分別包含了控制系統(tǒng)引導,系統(tǒng)調用等。內核空間與用戶空間是程序執(zhí)行的兩種不同的狀態(tài),通過系統(tǒng)調用和硬件中斷能夠完成從用戶空間到內核空間的轉移。通過將一次傳輸分成兩此,將令牌(和數(shù)據(jù))的傳輸與響應數(shù)據(jù)(和 握手)的傳輸分開,這樣就可以在中間插入其他高速傳輸,從而提高總線的利用率。分離傳輸顧名思義就是把一次完整的事務傳輸分成兩個事務傳輸來完成。 在主機控制器和 USB HUB 之間還有另外一種傳輸——分離傳輸(Split Transaction) ,它僅在主機控制器和 HUB 之間執(zhí)行,通過分離傳輸,可以允許全速/低速設備連接到高速主機。全速同步傳輸不得占用超過 80%的幀時間,高速同步傳輸不得占用超過 90%的微幀時間。只有高速和全速端點支持同步傳輸,高速同步端點的最大包長度為 1024,低速的為 1023。高速的批量端點必須支持 PING 操作,向主機報告端點的狀態(tài),NYET 表示否 定應答,沒有準備好接收下一個數(shù)據(jù)包,ACK 表示肯定應答,已經(jīng)準備好
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1