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

正文內(nèi)容

基于linux系統(tǒng)下的usb鼠標(biāo)驅(qū)動(dòng)的開(kāi)發(fā)畢業(yè)論文(文件)

 

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