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

正文內(nèi)容

基于arm的gpio程序設(shè)計畢業(yè)論文-資料下載頁

2024-11-12 15:37本頁面

【導(dǎo)讀】隨著科學(xué)技術(shù)的發(fā)展,嵌入式系統(tǒng)開發(fā)已經(jīng)進(jìn)入32位時代。隨著國內(nèi)外嵌入式產(chǎn)品地進(jìn)一步開發(fā)和推廣,嵌入式技術(shù)越。來越和人們地生活密切相關(guān)。設(shè)備中有著廣泛應(yīng)用,與其他的嵌入式操作系統(tǒng)相比,具有更多的優(yōu)勢。并且詳細(xì)論述了基于。ARM.9處理器的硬件結(jié)構(gòu)、嵌入式操作系統(tǒng)以及開發(fā)流程。結(jié)合嵌入式開發(fā)板。試和發(fā)布方法進(jìn)行了詳細(xì)地論述.生活的一部分,并逐漸呈現(xiàn)普及計算模式。模擬、虛擬現(xiàn)實、醫(yī)療電子、軍事電子、信息家電等領(lǐng)域。目前主要在應(yīng)用國外芯片和軟件技術(shù)進(jìn)行產(chǎn)品的設(shè)計和開發(fā),產(chǎn)品有聯(lián)想。但產(chǎn)品的種類較少,價格較高,實用性不是很強(qiáng)。經(jīng)看到了嵌入式產(chǎn)品的巨大市場潛力正加入到對潛入式系統(tǒng)的研究和開發(fā)中來,CirrusLogic、Winbond和Toshiba等廠商提供了藍(lán)點嵌入式Linux操作系統(tǒng)?!?63計劃”重點支持項目中就有使用Linux作為嵌入式系統(tǒng)開發(fā)的方向。

  

【正文】 o— device s3c2410一 gpio— dcv= { s3c2410一 GPIO— MINOR, //次設(shè)備號 amp。s3c2410一 gpio— fops, //設(shè)備的 file— operations } 22 由于設(shè)備驅(qū)動程序采用中斷驅(qū)動,則可用 requestirq()函數(shù)向內(nèi)核注冊中.?dāng)嗵幚砗瘮?shù)及其對應(yīng)的 IRQ。 在 file— operations中定義一 些與此設(shè)備相關(guān)的功能函數(shù),當(dāng)用戶進(jìn)行系統(tǒng)調(diào)用時,將自動使用驅(qū)動程序 中特定的函數(shù)來實現(xiàn)具體的操作。通過 file— operations數(shù)據(jù)結(jié)構(gòu)提供文件系統(tǒng)的入口函數(shù),也就是訪問設(shè)備驅(qū)動的函數(shù)。用戶是通過設(shè)備文件同硬件打交道,以系統(tǒng)調(diào)用的方式對設(shè)備文件進(jìn)行操作,并通過完成 file— operations中的函數(shù)指針來把系統(tǒng)調(diào)用和驅(qū)動程序關(guān) 聯(lián)起來 [7]。 注冊模塊 在 Linux中,為了使操作系統(tǒng)區(qū)別不同驅(qū)動程序的標(biāo)識,任何設(shè)備都必須有一個主設(shè)備號。在本設(shè)計中為設(shè)備指定分配一個設(shè)備號,由以下語句實現(xiàn): static int gmajor=30; retv=register_ chrdev(gmajor, GPIO— name, amp。GPIO— fops); 函數(shù) register— chrdev在 linux/ fs. h中定義,用于向內(nèi)核注冊 GPIO字符設(shè)備。 其中 gmajor參數(shù)用于傳遞指定的設(shè)備號 30,如申請成功, register— chrdev()函數(shù)返回 0,否則返回負(fù)值。等驅(qū)動加載后就可以建立 GPIO的節(jié)點,命令如下:mknod/ dev/ gpio/ s3c2410 C 30 10 //字符設(shè)備,主設(shè)備號 30,次設(shè)備號 10 注銷模塊 注銷模塊是和注冊模塊對應(yīng)的操作,當(dāng)卸載模塊時,系統(tǒng)將注銷模塊對應(yīng)的設(shè)備,并釋放主設(shè)備號,這 一 操作可以在模塊的清除函數(shù)中調(diào)用 unregister— chrdev()函數(shù)來完成,由以下語句實現(xiàn): retv=unregis. ter_ chrdev(gmajor, GPIO— name);unregister_chrdev()函 數(shù)用于注銷設(shè)備、釋放主設(shè)備號和設(shè)備文件名。參數(shù)包括要釋放的主設(shè)備號和對應(yīng)的設(shè)備名,用這個設(shè)備名與主設(shè)備號參數(shù)所對應(yīng)的已注冊設(shè)備進(jìn)行比較,如不同,或是主設(shè)備號超出了允許范圍 ,則返回一 EIN— VAL。 一些特定函數(shù)的具體實現(xiàn) 應(yīng)用程序可以通過對文件進(jìn)行操作,使得系統(tǒng)調(diào)用和設(shè)備驅(qū)動的實現(xiàn)方法之間對應(yīng)起來,這里不寫出 所有接口函數(shù)的具體實現(xiàn),只給出個別函數(shù)原型,比如gpio— write(),該函數(shù)完成向特定設(shè)備的數(shù)據(jù)傳輸。由以下語句實現(xiàn): static int gpio— write(struct file, gpio— file, const char* buf , int len, loff_ _t loft)o 23 驅(qū)動的實現(xiàn)就是編寫一組被系統(tǒng)調(diào)用的函數(shù),然后加載到系統(tǒng)中,這些 函數(shù)能夠?qū)崿F(xiàn)對硬件的操作,能夠通過和系統(tǒng)的接口與上層應(yīng)用程序交互信息。還有如下函數(shù) includelinux/ fs. h) includelinux/ vmalloc. h includelinux/ kernelh includelinux/ config. h includelinux/ module. h static int s3c2410一 gpio— open(struct inode inode, siruct file file); static int s3c2410一 gpio — release(struct inode inode, struct file file); stauct file— operations dev— fops= { Open: s3c2410一 gpio— open, Release: s3c2410一 gpio— release, }; static int s3c2410一 gpio— open(struct inode}inode, struct file file) { printk(“ GPIO is opened!\ n” ); return 0; } static int s3c2410一 gpio— release(strict inode inode, strict file}file) { printk(” GPIO is closed!\ n” ); return 0; } static int— in“ dev— init(void) 24 { register_ dev(100,” dev”, amp。dev— fops); printk(” GPIO registed OK!、 n” ); return 0; } static int— in“ dev— exit(void) { register_ dev(100,” dev” ); printk(” GPIO unregisted OK!\ n” ); return 0; } module— init(dev— init); module— exit(dev— exit); 將上面的例子編譯,使用 insmod命令將該驅(qū)動模 塊加載到系統(tǒng)中,屏幕上會顯示“ GPIO registed OK!”, 執(zhí)行 rmmod將該模塊卸載,則屏幕上會顯示“ GPIO unregisted OK!”,這說明在執(zhí)行 insmod和 rmmod時系 統(tǒng)會分別調(diào)用函數(shù) dev—init()和 dev— exit()。實際上,上面程序中已定義了這樣兩個函數(shù)來注冊和銷毀驅(qū)動模塊,通過 module— init(dev— init)和 module— exit(dev— exit)告訴系統(tǒng),執(zhí)行模塊裝載和卸載命令時執(zhí)行這兩個函數(shù)??傊?,系統(tǒng)通過設(shè)備號和設(shè)備名稱管設(shè)備,通過 struct file— operations結(jié)構(gòu)的指針來調(diào)用驅(qū)動模塊中的相應(yīng)函數(shù)。 struct file— operations結(jié)構(gòu)說明了一種對應(yīng)關(guān)系, s3c2410一 gpio— open,s3c2410一 gpio— release這兩個接口函 數(shù)在應(yīng)用程序中分別使用“ open”打開“ dev”設(shè)備、使用 “ close”關(guān)閉“ dev”設(shè)備時被系統(tǒng)調(diào)用。把想要在驅(qū)動中實現(xiàn)的內(nèi)容寫在相應(yīng)的函數(shù)中,這樣驅(qū)動就完成了 [8]。 測試本驅(qū)動模塊 登錄到 Linux系統(tǒng)下編寫 makefile文件并編譯模塊,將生成的目標(biāo)文件動態(tài)加載到目標(biāo)系統(tǒng)的內(nèi)核中。把驅(qū)動源文件拷貝至 linux/ driver/ block下,修改該文件夾中的 makefile文件,在其適當(dāng)位置添加 obj— Y+=gpio— drv. O,重新編譯下 25 載內(nèi)核,這樣每次系統(tǒng)啟動時就 自動加載編譯加載驅(qū)動程序。當(dāng)然也可通過修改相應(yīng) config配置文件,添加一選項,使該驅(qū)動可以通 過 make menuconfig有選擇性地加載。 這樣利用支持相應(yīng)內(nèi)核的交叉編譯環(huán)境生成可在嵌入式 Linux下執(zhí)行的二進(jìn)制. O文件,利用 NFS(網(wǎng)絡(luò)文件系統(tǒng) )和超級終端,通過 insmod(加載 )和 rillmod(卸載 )命令,可方便的將. O模塊加卸載到嵌入式 Linux下執(zhí)行的二進(jìn)制. O文件,利用 NFS(網(wǎng)絡(luò)文件系統(tǒng) )和超級終端,通過 insmod(加載 )和 rill— mod(卸載 )命令,可方便的將. O模塊加卸載到嵌入式 Linux系統(tǒng)中進(jìn)行調(diào)試。到此就完成了驅(qū)動程序編: 的整個過程。 結(jié)合對 $3C2410開發(fā)板 GPIO驅(qū)動程序的開詳細(xì)討論了嵌入式 Linux系統(tǒng)中字符設(shè)備驅(qū)動程序 I開發(fā)調(diào)試流程,對類似的其他驅(qū)動程序開發(fā)可以起 j觸類旁通的效果,經(jīng)過 $3C2410開發(fā)板測試后得到期結(jié)果。 26 第五章 總結(jié) 隨著計算機(jī)技術(shù)的不斷發(fā)展,嵌入式系統(tǒng)作為一項熱門技術(shù)正得到越來越廣泛的應(yīng)用。 Samsung公司推出的 S3C2410處理器,是一個 16/ 32位 ARM920TRISC處理器,提供了一系列完整的系統(tǒng)外圍設(shè)備,具有性價比高、功 能豐富、接口完善、可擴(kuò)展性強(qiáng)等優(yōu)點,已越來越受到眾多用戶的青睞。 因為產(chǎn)品平臺本身是一塊母板,要實現(xiàn)許多的應(yīng)用就必須擴(kuò)展各種接口和進(jìn)行相應(yīng)驅(qū)動程序的開發(fā) ,我們在研究開發(fā)和應(yīng)用基礎(chǔ)上,實現(xiàn)了基于 ARM的 GPIO程序開發(fā)。 歸結(jié)起來,本文主要工作如下: 1) 國內(nèi)外嵌入式系統(tǒng)開發(fā)的現(xiàn)狀和發(fā)展趨勢 2)介紹了嵌入式系統(tǒng)的歷史,特點和體系結(jié)構(gòu)和常見的嵌入式系統(tǒng)。 3) 闡述了 ARM的體系結(jié)構(gòu)和 S3C2410處理器。 4) 詳細(xì)分析了關(guān)于 GPIO的程序開發(fā)。 由于本項目任務(wù)比較多,時間緊迫,且課題本身是一個多學(xué)科、多技術(shù)綜 合應(yīng)用的系統(tǒng)工程,加上自身水平、設(shè)備條件等因素的制約,在短時間內(nèi)不可能完善,因而本系統(tǒng)還有很多需要進(jìn)一步研究和改進(jìn)的地方。 由于時間有限,本人很多知識還有待于學(xué)習(xí),項目中有很多工作還需要其他同學(xué)繼續(xù)完成,論文中難免有一些不成熟的地方,懇請各位老師、專家多多指教。 27 參 考文獻(xiàn) : [1] 張大波等.嵌入式系統(tǒng)原理、設(shè)計及應(yīng)用.北京:機(jī)械工業(yè)出版社, 2020 [2] 沈連風(fēng)等.嵌入式系統(tǒng)及其開發(fā)應(yīng)用.北京:電子工業(yè)出版社, 2020 [3] 劉崢嶸等.嵌入式 Linux應(yīng)用開發(fā)詳解.北京:機(jī)械工業(yè)出版社, 2020 [4] RichGrehan等著,許汝峰譯. 32位嵌入式系統(tǒng)編程.北京:中國電力出版社, 2020 [5] JONATHAN CORBET ALESSSANDRO RUBINIamp。JONATH CORBET. LINUX設(shè)備驅(qū)動程序 (第三版 )[M].北京:中電力出版社, 2020. [6] (美 )約翰遜 (johnson, M. K), (美 )特羅安 (Troan, E.Ⅵ著;武延軍,郭松柳譯. 1inux應(yīng)用程序開發(fā) (第二版 )[M北京:電子工業(yè)出版社, 2020. [7] 楊宗德,鄧玉春,曾慶華. Linux高級程序設(shè)計 [M].北 京:人民郵電出版社 2020. [8 ]Mitchell M, Oldham J, Samuel A. Advanced Linux Progral ming[M]. New Riders Publishing, 2020. 28 致謝 光陰荏苒,四年的本科 生活很快就要結(jié)束了,值此論文完成之際,我衷心感謝我的導(dǎo)師 陳國虎教員對我的論文的指導(dǎo)。在此 特別感謝 兩位隊長在生活史給予我的幫助和關(guān)心,兩位隊長 熱忱的為人、敬業(yè)的精神和廣博的知識使我受益非淺。 。 此外,還要感謝 本隊的同學(xué) ,通過和他們一起研究討論,相互取長補(bǔ)短,使我得到很 多啟發(fā)和思路,這段經(jīng)歷我將永遠(yuǎn)銘記。 感謝所有教育過我和幫助我的 信息工程大學(xué)的 老師,你們諄諄教導(dǎo)是我一生中最寶貴的財富。感謝我所有的朋友和同學(xué),你們給予我的真誠鼓勵和無私的幫助將是我終生難忘的。 最后,我要感謝我的家人多年來在生活上無微不至的照顧和物質(zhì)及精神上的支持,是他們給了我殷切的企盼和鼓勵,使我得以順利完成學(xué)業(yè)。
點擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1