arm嵌入式原理技術(shù)及應(yīng)用ch_第1頁
arm嵌入式原理技術(shù)及應(yīng)用ch_第2頁
arm嵌入式原理技術(shù)及應(yīng)用ch_第3頁
arm嵌入式原理技術(shù)及應(yīng)用ch_第4頁
arm嵌入式原理技術(shù)及應(yīng)用ch_第5頁
已閱讀5頁,還剩92頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

2010.12陳賾ARM嵌入式技術(shù)原理與應(yīng)用

clshust@163.com131356998035/19/2023◆理解設(shè)備驅(qū)動程序的概念、分類、處理器與設(shè)備間數(shù)據(jù)交換方法◆熟悉驅(qū)動程序結(jié)構(gòu)◆熟悉驅(qū)動程序開發(fā)方法5/19/202312.1.1設(shè)備驅(qū)動程序概述

1.驅(qū)動程序定義及功能設(shè)備驅(qū)動程序?qū)嶋H是處理和操作硬件控制器的軟件,從本質(zhì)上講,是內(nèi)核中具有最高特權(quán)級的、駐留內(nèi)存的、可共享的底層硬件處理例程。驅(qū)動程序是內(nèi)核的一部分,是操作系統(tǒng)內(nèi)核與硬件設(shè)備的直接接口,驅(qū)動程序屏蔽了硬件的細(xì)節(jié).12.1設(shè)備驅(qū)動程序基礎(chǔ)5/19/2023完成以下功能:(1)對設(shè)備初始化和釋放;(2)對設(shè)備進(jìn)行管理,包括實時參數(shù)設(shè)置,以及提供對設(shè)備的操作接口;(3)讀取應(yīng)用程序傳送給設(shè)備文件的數(shù)據(jù)或者回送應(yīng)用程序請求的數(shù)據(jù);(4)檢測和處理設(shè)備出現(xiàn)的錯誤。簡單來說可以概括為:管理I/O設(shè)備,上層軟件的抽象操作與設(shè)備操作的轉(zhuǎn)換。5/19/20232.設(shè)備驅(qū)動程序的概念

Linux操作系統(tǒng)將所有的設(shè)備全部看成文件,并通過文件的操作界面進(jìn)行操作。對用戶程序而言,設(shè)備驅(qū)動程序隱藏了設(shè)備的具體細(xì)節(jié),對各種不同設(shè)備提供了一致的接口,一般來說,是把設(shè)備映射為一個特殊的設(shè)備文件,用戶程序可以像對其他文件一樣對此設(shè)備文件進(jìn)行操作。由于每一個設(shè)備至少由文件系統(tǒng)的一個文件代表,因而都有一個“文件名”。5/19/2023應(yīng)用程序通??梢酝ㄟ^系統(tǒng)調(diào)用open()打開設(shè)備文件,建立起與目標(biāo)設(shè)備的連接。打開了代表著目標(biāo)設(shè)備的文件,即建立起與設(shè)備的連接后,可以通過read()、write()、ioctl()等常規(guī)的文件操作對目標(biāo)設(shè)備進(jìn)行操作。

5/19/2023

設(shè)備文件的屬性由三部分信息組成:第一部分是文件的類型第二部分是一個主設(shè)備號第三部分是一個次設(shè)備號。其中類型和主設(shè)備號結(jié)合在一起惟一地確定了設(shè)備文件驅(qū)動程序及其界面,而次設(shè)備號則說明目標(biāo)設(shè)備是同類設(shè)備中的第幾個。5/19/2023由于Linux中將設(shè)備當(dāng)做文件處理,所以對設(shè)備進(jìn)行操作的調(diào)用格式與對文件的操作類似,主要包括open()、read()、write()、ioctl()、close()等。應(yīng)用程序發(fā)出系統(tǒng)調(diào)用命令后,會從用戶態(tài)轉(zhuǎn)到核心態(tài),通過內(nèi)核將open()這樣的系統(tǒng)調(diào)用轉(zhuǎn)換成對物理設(shè)備的操作。5/19/20233.驅(qū)動層次結(jié)構(gòu)

Linux下的設(shè)備驅(qū)動程序是內(nèi)核的一部分,運行在內(nèi)核模式,也就是說設(shè)備驅(qū)動程序為內(nèi)核提供了一個I/O接口,用戶使用這個接口實現(xiàn)對設(shè)備的操作。下圖所示,顯示了典型的Linux輸入/輸出系統(tǒng)中各層次結(jié)構(gòu)和功能。5/19/20235/19/2023Linux設(shè)備驅(qū)動程序包含中斷處理程序和設(shè)備服務(wù)子程序兩部分。設(shè)備服務(wù)子程序包含了所有與設(shè)備操作相關(guān)的處理代碼。它從面向用戶進(jìn)程的設(shè)備文件系統(tǒng)中接受用戶命令,并對設(shè)備控制器執(zhí)行操作。這樣,設(shè)備驅(qū)動程序屏蔽了設(shè)備的特殊性,使用戶可以像對待文件一樣操作設(shè)備。5/19/2023設(shè)備控制器需要獲得系統(tǒng)服務(wù)時有兩種方式:查詢中斷因為Linux下的設(shè)備驅(qū)動程序是內(nèi)核的一部分,在設(shè)備查詢期間系統(tǒng)不能運行其他代碼,查詢方式的工作效率比較低,所以只有少數(shù)設(shè)備如軟盤驅(qū)動程序采取這種方式,大多設(shè)備以中斷方式向設(shè)備驅(qū)動程序發(fā)出輸入/輸出請求。5/19/20234.設(shè)備驅(qū)動程序與外界的接口

每種類型的驅(qū)動程序,不管是字符設(shè)備還是塊設(shè)備都為內(nèi)核提供相同的調(diào)用接口,因此內(nèi)核能以相同的方式處理不同的設(shè)備。Linux為每種不同類型的設(shè)備驅(qū)動程序維護(hù)相應(yīng)的數(shù)據(jù)結(jié)構(gòu),以便定義統(tǒng)一的接口并實現(xiàn)驅(qū)動程序的可裝載性和動態(tài)性。Linux設(shè)備驅(qū)動程序與外界的接口可以分為如下三個部分。5/19/2023驅(qū)動程序與操作系統(tǒng)內(nèi)核的接口:

這是通過數(shù)據(jù)結(jié)構(gòu)file_operations來完成的。驅(qū)動程序與系統(tǒng)引導(dǎo)的接口:

這部分利用驅(qū)動程序?qū)υO(shè)備進(jìn)行初始化。驅(qū)動程序與設(shè)備的接口:

這部分描述了驅(qū)動程序如何與設(shè)備進(jìn)行交互,這與具體設(shè)備密切相關(guān)。它們之間的相互關(guān)系如下圖所示。5/19/20235/19/20235.設(shè)備贏驅(qū)動響程序紅的特隔點綜上挪所述陶,Li奮nu姑x中的杯設(shè)備暮驅(qū)動嘉程序烤有如拐下特呢點。(1)內(nèi)煩核代營碼:設(shè)備壓驅(qū)動蛾程序機(jī)是內(nèi)厚核的羊一部考分,胖如果呼驅(qū)動灑程序翁出錯磚,則棚可能司導(dǎo)致叼系統(tǒng)猶崩潰吊。5/遠(yuǎn)18叛/2考02旋3(2)內(nèi)絕核接吉口:設(shè)備片驅(qū)動偽程序鉗必須籠為內(nèi)叮核或扭者其寄子系讓統(tǒng)提椒供一畏個標(biāo)燭準(zhǔn)接瓜口。愧比如就,一花個終川端驅(qū)升動程性序必涂須為屬內(nèi)核漢提供聞一個冰文件I/懶O接口毫;一燈個SC葛SI設(shè)備互驅(qū)動培程序巧應(yīng)該霜為SC恭SI子系嗚統(tǒng)提催供一齡個SC男SI設(shè)備餅接口精,同及時SC僚SI子系篩統(tǒng)也背必須夫為內(nèi)曠核提隱供文蘇件的I/游O接口拔及緩背沖區(qū)尖。5/辜18壯/2供02灘3(3)內(nèi)樂核機(jī)梳制和薦服務(wù)甘:設(shè)備兩驅(qū)動邊程序執(zhí)使用鬧一些僻標(biāo)準(zhǔn)廁的內(nèi)籌核服營務(wù),透如內(nèi)據(jù)存分米配等沫。(4)可億裝載役:大多填數(shù)的Li伏nu邀x操作注系統(tǒng)抱設(shè)備咐驅(qū)動叼程序啟都可死以在缸需要搭時裝腎載進(jìn)佳內(nèi)核深,在摸不需鋒要時鄰從內(nèi)腸核中峽卸載遙。5/熊18煉/2天02熱3(5)可且設(shè)置嶺:Li寇nu錫x操作異系統(tǒng)沖設(shè)備保驅(qū)動緩程序簽可以場集成臘為內(nèi)爐核的罷一部誰分,肅并可益以根凍據(jù)需姑要把擋其中礙的某賊一部忠分集罩成到灑內(nèi)核醬中,荒這只延需要羽在系悔統(tǒng)編筑譯時詳進(jìn)行譯相應(yīng)翠的設(shè)篇置即朝可。(6)動愉態(tài)性太:在系庸統(tǒng)啟偶動且另各個堂設(shè)備斜驅(qū)動影程序秘初始乖化后統(tǒng),驅(qū)笨動程強(qiáng)序?qū)⒛痪S護(hù)以其控鋒制的述設(shè)備匹。如座果該省設(shè)備收驅(qū)動尸程序痕控制蓋的設(shè)粉備不符存在模,也倉不影刑響系崖統(tǒng)的押運行市,只贊是多軌占用棗一點界系統(tǒng)晨內(nèi)存珠。5/漠18騰/2壘02趣3每個邊可以分增加蹲到內(nèi)愿核中鉗的代膝碼稱趕為一群個模漲塊。Li督nu筍x內(nèi)核啄支持丙相當(dāng)棕多的屬模塊耕的類廳型(圣或“舌類”滲),漠但不文僅僅煌只局?jǐn)叵抻阪I設(shè)備盜驅(qū)動知程序烘。每線個模承塊由泳目標(biāo)緊代碼蟲組成建(沒做有連替接成掃完整妙的可寫執(zhí)行抓文件聯(lián)),幻玉通過in駝sm塘od程序萍它們竊可以憑動態(tài)貪連接曉到運捉行著雨的內(nèi)湖核中狼,而烤通過rm白mo盟d程序零就可必以去營除這桶些??畨K。5/筆18窄/2址02待312兔.1股.2設(shè)備娃驅(qū)動恢程序咱的分浪類1.分類Li劈燕nu赤x將設(shè)熄備分籃成兩親大類文:一類濁是塊范設(shè)備在,類凳似磁桐盤以鞋記錄號塊或迷扇區(qū)詠為單兩位,僑成塊稍進(jìn)行賓輸入/輸出閃的設(shè)騙備;另一詠類是時字符街設(shè)備憑,類且似鍵牢盤以響字符影為單角位,高逐個辛進(jìn)行菌輸入/輸出鉛的設(shè)竟備。網(wǎng)路遵設(shè)備逝是介李于塊都設(shè)備宰和字粱符設(shè)面?zhèn)渲U間的燃一種碼特殊環(huán)設(shè)備員。5/鬧18牽/2疫02遠(yuǎn)31)字組符設(shè)想備字符餐設(shè)備最以字盡節(jié)為笨單位拆逐個聽進(jìn)行I/擠O操作攀,字導(dǎo)符設(shè)鹿備中疤的緩崇存是訂可有暮可無頑,它財不支集持隨超機(jī)訪農(nóng)問。貌如超:串票口設(shè)捷備/d甘ev悶/c劫ua答0和/d分ev六/c習(xí)ua嘆1。ls-l擦/龍de元v/娛tt平y(tǒng)S重0cr命w-映rw福-r碌w-促1通r賄oo提t(yī)uu木cp4,夏64萄4月1預(yù)19允:5出6泄/d護(hù)ev脈/t界ty媽S05/鵲18變/2遮02陶32)塊范設(shè)備塊設(shè)過備的幟存取臺是通竊過bu哨ff托er、ca肝ch父e來進(jìn)省行,忌可楚以進(jìn)權(quán)行隨虎機(jī)訪焰問.例如僅:ID犁E硬盤偶設(shè)備/d儀ev趟/hd繡a,可雀以支果持可微安裝五文件賊系統(tǒng)口。ls-l邊/稍de認(rèn)v/熔mt嶼db鹿lo引ck罰3br洗w-弱r-麥-r--惕1春50嗽550故531漂,剝3班Fe散b競19宰20躺05伶/石de謊v/通mt薦db象lo書ck袋35/伯18棄/2擔(dān)02券33)網(wǎng)淹絡(luò)設(shè)纖備網(wǎng)絡(luò)貧設(shè)備授是一場類比辮較特相別的猴設(shè)備把,它振不像罰字符煉或塊寸設(shè)備室那樣妻通過可對應(yīng)道的設(shè)吊備文沖件節(jié)繪點訪送問,押內(nèi)核值也不渾再通孕過re泳ad或wr邀it劈燕e等調(diào)籮用去滾訪問世網(wǎng)絡(luò)冠設(shè)備畝。通挎過BS與D套接榮口訪間問。5/費18鹽/2壓02攀32.設(shè)備蹲文件庸與設(shè)挎?zhèn)涮栍脩魤磐ㄟ^思設(shè)備掌文件凝訪問摟設(shè)備降,每績個設(shè)錯備用央一個貢主設(shè)繪備號效和次得設(shè)備辨號標(biāo)交。塊誰設(shè)備偵接口奏僅支樹持面熱向塊廟的I/圣O操作菜,所雄有I/鎖O操作燒都通賄過在控內(nèi)核敞地址廁空間室中的I/弊O緩沖各區(qū)進(jìn)粘行,協(xié)它可退以支選持隨拿機(jī)存腐取的陶功能驅(qū)。文件漂系統(tǒng)熄通常降都建惡立在彼塊設(shè)業(yè)備上擁。5/雁18放/2攝02步3主設(shè)賽備號表示慣設(shè)備壤對應(yīng)殊的驅(qū)競動程濁序;次設(shè)獄備號由內(nèi)黎核使百用,柜用于醬正確等確定連設(shè)備坑文件漂所指面的設(shè)菠備。足內(nèi)難核用de手v_簡t類型比(<li添nu伶x/者ty拖pe孩s.爽h>)來槐保存虎設(shè)備欄編號法,de拿v_戰(zhàn)t是一犁個32位的劑數(shù),12位表有示主產(chǎn)設(shè)備糟號,20為表銹示次會設(shè)備釘號。俗在廟實際貝使用桿中,侮是通纏過<li莖nu挨x/足kd泊ev春_t話.h>中定匙義的附宏來速轉(zhuǎn)換份格式良。5/劍18蘿/2咬02叼312決.1秒.3處理園器與倘設(shè)備鵲間數(shù)耀據(jù)交保換處理柿器與俘外設(shè)囑之間燭傳輸晶數(shù)據(jù)更的控幸制方如式通淋常有3種:旗查詢凝方式常、中進(jìn)斷方殃式和裹直接對內(nèi)存較存取弟(DM憶A)方竄式。5/解18鋒/2凡02孩31.查耕詢方泊式設(shè)備超驅(qū)動亂程序腦通過珠設(shè)備帖的I/璃O端口猴空間磚,以犁及存皺儲器具空間萬完成脊數(shù)據(jù)寬的交懲換。利用倚這些下地址層空間稠,驅(qū)科動程塑序可妻以向始外設(shè)爺發(fā)送緩指定脫的操道作指摩令。通常浸來講聞,由誘于外消設(shè)的靠操作致耗時績較長脈,因鄭此,販當(dāng)處永理器啊實際揉執(zhí)行鉤了操浩作指刃令之蜘后,訴驅(qū)動糊程序男可采肺用查慶詢方牛式等翠待外計設(shè)完堡成操倒作。5/芝18有/2皆02窗3驅(qū)動餃程序所在提課交命絞令之臭后,互開始建查詢喉設(shè)備蒸的狀厲態(tài)寄鎮(zhèn)存器燃,當(dāng)篇狀態(tài)望寄存臭器表針明操右作完層成時款,驅(qū)圖動程覆序可五繼續(xù)際后續(xù)歐處理蓄。查詢柜方式郵的優(yōu)蠶點是即硬件傻開銷奇小,秩使用看起來核比較遼簡單藝。在此姿方式墾下,CP漿U要不悟斷地距查詢始外設(shè)凍的狀罪態(tài),唐當(dāng)外芬設(shè)未良準(zhǔn)備甚好時死,就柿只能爆循環(huán)須等待甘,不資能執(zhí)淹行其封他程薄序,律這樣焰就浪轎費了CP故U的大廣量時日間,糧降低辱了處擊理器蛙的利鴿用率款。5/鴉18認(rèn)/2厘02皆32.中識斷方寸式查詢淹方式身白白即浪費俱了大掉量的效處理粱器時已間,篇而中礙斷方川式才聾是多彈任務(wù)利操作豎系統(tǒng)題中最崗有效綁利用遵處理礙器的更方式嬸。當(dāng)CP姿U進(jìn)行帽主程革序操米作時蛙,外盞設(shè)的擇數(shù)據(jù)瓣已存嶄入端憐口的括數(shù)據(jù)淘輸入誘寄存宮器,挨或端副口的躬數(shù)據(jù)煎輸出哈寄存街器已也空,姓此時拘由外呈設(shè)通奔過接就口電甚路向CP割U發(fā)出嶄中斷襲請求襲信號稍。5/群18繡/2虜02麥3CP戶U在滿惜足一罩定條存件下裕,暫濤停執(zhí)宿行當(dāng)潮前正箏在執(zhí)委行的坡主程直序,蓋轉(zhuǎn)入婦執(zhí)行疾相應(yīng)鍵能夠懷進(jìn)行逝輸入/輸出圾操作謹(jǐn)?shù)淖鱼@程序留,待旨輸入/輸出隨操作粘執(zhí)行斑完畢吹之后貢,CP挖U再返頑回并嗚繼續(xù)輕執(zhí)行惡原來我被中題斷的岔主程閃序。系統(tǒng)鍛引入弓中斷今機(jī)制克后,CP粱U與外抬設(shè)處挎于“對并行努”工既作狀斤態(tài),案便于這實現(xiàn)端信息促的實作時處靜理和師系統(tǒng)絲式的故其障處演理。5/掘18洋/2問02摔33.直潑接訪領(lǐng)問內(nèi)間存(DM津A)方鄰式利用隊中斷野,系數(shù)統(tǒng)和卻設(shè)備圖之間揚可以標(biāo)通過貍設(shè)備淺驅(qū)動狹程序洽傳送減數(shù)據(jù)稠,但慌是,淹當(dāng)傳遼送的葛數(shù)據(jù)伴量很野大時提,因積為中家斷處仇理上燥的延子遲,良利用扶中斷腹方式薦的效銷率會趕大大較降低稈。而月直接孤內(nèi)存骨訪問奪(DM扯A)可摘以解諸決這誰一問不題。5/尊18淘/2回02擺3DM支A可允副許設(shè)椅備和宿系統(tǒng)嘗內(nèi)存尤間在奪沒有研處理擱器參慌與的韻情況額下傳糖輸大仇量數(shù)寶據(jù)。設(shè)備蝴驅(qū)動拉程序璃在利字用DM膜A之前懷,需按要選話擇DM體A通道舅并定廊義相隱關(guān)寄陷存器既,以圍及數(shù)繪據(jù)的琴傳輸澡方向撫,即隔讀取館或?qū)懶U入,濃然后序?qū)⒃O(shè)但備設(shè)掩定為貿(mào)利用群該DM拜A通道沈傳輸趨數(shù)據(jù)拴。5/咳18腐/2兇02負(fù)3設(shè)備習(xí)完成垮設(shè)置皇之后錯,可弊以立美即利躲用該DM記A通道拾在設(shè)垃備和絡(luò)系統(tǒng)薦的內(nèi)班存之禾間傳悠輸數(shù)康據(jù),神傳輸李完畢萄后產(chǎn)驗生中絡(luò)斷以泥便通乓知驅(qū)膽動程奔序進(jìn)壤行后撇續(xù)處裁理。在利見用DM丸A進(jìn)行垂數(shù)據(jù)這傳輸性的同蔬時,肯處理苦器仍夏然可炕以繼籍續(xù)執(zhí)兔行指裕令。5/拴18逢/2承02悶34得.驅(qū)動推程序筋結(jié)構(gòu)Li堡nu輝x設(shè)備某驅(qū)動尊程序澇的代漢碼結(jié)失構(gòu)大朝致可該以分詠為如曬下幾籮個部紙分:1)驅(qū)眠動程哨序的汁注冊傾與注欠銷2)設(shè)盾備的扣打開考與釋松放3)設(shè)啄備的思讀寫托操作4)設(shè)屈備的汽控制跨操作5)設(shè)忘備的錫中斷鏡和輪藥詢處巾理。5/諷18估/2向02跳35/園18對/2五02滴31)驅(qū)攪動程勺序的桌注冊季與注鄰銷注冊阿:re臣gi杏st液er怠_c刺hr己de廁v(尾);//在~fs屈/d已ev算ic奪es續(xù).c注銷特:un閉re奶gi鼓st行er蛾_c腳hr原de姻v(春)5/野18圍/2早02行32)打扯開、淘釋放暢、讀留、寫電、控央制等Li聲nu鍛x內(nèi)核互將通郊過fi早le銅_o母pe所ra暢ti厘on進(jìn)s結(jié)構(gòu)椅訪問摟驅(qū)動服程序誰提供帝的函代數(shù),響字符粗設(shè)備短的讀犯寫直隔接使砍用函并數(shù)re欠ad街(勺)和wr杜it恒e(拔);塊設(shè)名備需心要調(diào)班用函舅數(shù)bl久oc程k_匠re吉ad(妨)、bl居oc透k_咸wr腿it槳e(繩);io儲ct換l(凡)的用慈法與理具體免設(shè)備苗密切餅關(guān)聯(lián)推,因肉此需你要根雪據(jù)設(shè)醫(yī)備的趴實際鑒情況輝進(jìn)行揀具體柴分析蝕。5/且18掘/2崇02件3st航ru耽ctfi達(dá)le錯_o肅pe繩ra覆ti左on濕s{st握ru針ctmo靈du括le御*晉ow顏ne浙r;lo尼ff圣_t(*ll泡se煙ek)她(st晶ru曲ctfi輔le亂*輕,lo榜ff唉_t,in原t);ss翼iz訪e_李t(*演re宏ad諒)霉(st睜ru增ctfi劫le途*育,摧ch聯(lián)ar唱*仆,si悉ze雄_t,lo古ff撲_t*)純;ss杏iz嫁e_蘋t(*勁wr稼it位e)扒(st輔ru琴ctfi缸le拘*吊,考co遠(yuǎn)ns糟t市ch改ar寺*麻,si貓ze幣_t,lo演ff朵_t*)驕;in嬌t(*re捐ad菜di斑r)需(st友ru鐮ctfi塊le姨*料,侍vo至id請*覺,fi豈ll逐di鐘r_彈t);un處si青gn拘edin館t(*聽po華ll稠)疤(st聰ru寬ctfi屑le逃*鋸,st響ru漠ctpo鴿ll紹_t厲ab后le叔_s耗tr岸uc數(shù)t*)編;in架t(*io慢ct野l(fā))勝(st盛ru兇ctin忠od踏e*,st氏ru胳ctfi堂le膜*膝,調(diào)un秤si案gn致edin陜t,村un單si務(wù)gn明ed毫l花on物g)底;in友t(*mm舌ap)漁(st媽ru般ctfi孟le汁*窄,st態(tài)ru兆ctvm飛_a材re捕a_奶st扮ru瘡ct*)維;in柄t(*瞞op光en神)只(st榨ru明ctin柴od濤e*,st瘡ru穩(wěn)ctfi捷le擦*淚);in蛋t(*繩fl乘us特h)蕩(st純ru交ctfi貪le倒*違);in緞t(*荷re繳le熔as紫e)獸(st緒ru管ctin電od躬e*,st光ru拖ctfi侄le僚*進(jìn));in面t(*fs且yn榜c)燒(st往ru研ctfi財le扯*虛,st筑ru近ctde機(jī)nt攻ry*,in詠tda豬ta隊sy亮nc);in促t(*fa亞sy杯nc)游(in樓t,st損ru任ctfi菊le奸*糾,in勢t);in斜t(*五lo泉ck斜)撈(st貴ru射ctfi瘋le羽*釣,in象t,st碰ru紛ctfi歡le作_l許oc殲k*)體;ss助iz丘e_寶t(*re昨ad嚇v)螞(st垂ru斗ctfi漲le召*秤,溜co附ns妻tst虹ru紀(jì)ctio畢ve輸c*,存u眾ns趁ig鏟ne剝d誓lo攝ng覆,lo縣ff飼_t*)友;ss饒iz冶e_喂t(*wr瓜it腫ev)草(st棟ru奸ctfi談le鞭*雅,閉co憤ns子tst換ru繼ctio遍ve縫c*,貫u查ns狠ig著ne旦d舍lo登ng靜,lo幣ff糞_t*)斜;ss諸iz傘e_遼t(*se宮nd都pa轉(zhuǎn)ge)險(st余ru桂ctfi濾le肆*學(xué),st益ru仍ctpa殖ge臨*酒,in謙t,si棍ze頓_t,lo晝ff刪_t*,in迅t);un站si香gn獻(xiàn)ed皇l坐on美g得(*ge農(nóng)t_洪un破ma透pp還ed茅_a辛re自a)識(s蹄tr嬸uc箏tfi限le運*揉,俗un哈si刪gn季ed勻l路on艦g,殺u霜ns呢ig姐ne秩d沈lo圈ng愛,要un塌si幅gn瞎ed永l致on疲g,撈u獨ns晨ig女ne逗d漿lo易ng沃);};5/飯18悅/2慨02吊3打開歌設(shè)備童的接攻口函板數(shù)是op尸en,根修據(jù)設(shè)漆備的恭不同塞,op梁en函數(shù)咬完成中的功削能也墻有所腰不同壞,但款通常懸情況睡下在op劉en函數(shù)態(tài)中要獸完成掘如下棄工作副:1)遞怠增計撒數(shù)器華;2)檢完查特忘定設(shè)磁備的車特殊隙情況萄;3)初始沸化設(shè)呆備;4)識別謙次設(shè)傷備號海。5/翻18癢/2啄02子3其中斃遞增憶計數(shù)凈器是禁用于閘設(shè)備睬計數(shù)軟的??傆捎谒囋O(shè)備何在使僅用時悟通常選會打窗開較鹽多次峰數(shù),米也可調(diào)以由惜不同致的進(jìn)嗎程所烏使用惕,所體以若飄有一籍進(jìn)程害想要鼠關(guān)閉凈該設(shè)抖備,至則必輕須保育證其乎他設(shè)潑備沒患有使覽用該闖設(shè)備殊。因蓄此使呼用計卸數(shù)器竿就可轟以很襖好地退完成向這項說功能蹤蝶。5/毫18袍/2油02辮3這里胡,實銷現(xiàn)計夠數(shù)器錦操作呈的是述用在<li溪nu搭x/徐mo神du物le懸.h>中定備義的3個宏譽如下箱。MO移D_死IN鉛C_俱US皇E_饒CO寄UN棕T:計布數(shù)器摧加一癥。MO偷D_虧DE紹C_堅US遮E_延CO掠UN索T:計薯數(shù)器舒減一尖。MO傷D_券IN魄_U舉SE:計鵝數(shù)器雅非零目時返云回真蚊。另外例,當(dāng)狀有多港個物逢理設(shè)酒備時撤,就禿需要煤識別皆次設(shè)辛備號另來對臥各個佛不同艦的設(shè)嬸備進(jìn)婚行不胞同的雪操作百,在源有些戰(zhàn)驅(qū)動致程序毒中并碌不需自要用霜到。5/獅18配/2喇02扯3釋放想設(shè)備火的接奮口函評數(shù)是re渡le苦as罰e。要俘注意瞎釋放腹設(shè)備減和關(guān)歪閉設(shè)改備是忌完全紅不同詠的。充當(dāng)一料個進(jìn)洲程釋榮放設(shè)歌備時況,其舌他進(jìn)轎程還盛能繼校續(xù)使超用該悄設(shè)備怨,只常是該第進(jìn)程坊暫時善停止填對該膠設(shè)備飽的使摘用;頌而當(dāng)痕一個恭進(jìn)程牧關(guān)閉掌設(shè)備慢時,膨其他稻進(jìn)程秧必須礙重新嶄打開鑰此設(shè)券備才各能使安用。輝釋放互設(shè)備堪時要密完成偶的工喇作如找下:1)遞牛減計拔數(shù)器MO乓D_纏DE吧C_礎(chǔ)US肆E_墊CO柏UN權(quán)T;2)在蔽最后杰一次勺釋放依設(shè)備屬操作昆時關(guān)蒜閉設(shè)列備;3)讀吐寫設(shè)嫁備re仗ad瞞()和wr六it鬧e(都)5/確18秋/2嫩02肌3讀寫斬設(shè)備體的主界要任緩務(wù)就末是把據(jù)內(nèi)核脂空間鋸的數(shù)提據(jù)復(fù)綁制到保用戶紀(jì)空間條,或興者從虧用戶飲空間障復(fù)制監(jiān)到內(nèi)運核空崇間,碑也就傾是將方內(nèi)核烏空間獲緩沖敗區(qū)里瞎的數(shù)洋據(jù)復(fù)雨制到吊用戶琴空間閘的緩盜沖區(qū)悅中或惜者相啊反。5/王18育/2音02價3雖然社這個墊過程它看起域來很親簡單許,但置是內(nèi)阿核空刪間地團(tuán)址和沃應(yīng)用冒空間殊地址陽是有祝很大豆區(qū)別抓的,話其中嚷之一鋪就是攏用戶謙空間蘋的內(nèi)莊存是滋可以屆被換趨出的至,因奧此可匯能會潤出現(xiàn)昨頁面掃失效周等情際況。禮所以過就不移能使俘用諸違如me光mc貞py之類持的函掃數(shù)來釀完成穗這樣喬的操錄作。黑在這圓里就轎要使襖用co幣py挖_t謹(jǐn)o_膠us亮er或co顧py測_f史ro政m_蛙us潑er函數(shù)胸,它爹們就邁是用蚊來實省現(xiàn)用森戶空景間和卡內(nèi)核固空間漂的數(shù)誦據(jù)交后換的備。5/福18嫩/2慌02苗3要注逮意,睛這兩滾個函濟(jì)數(shù)不求僅實探現(xiàn)了敏用戶返空間乖和內(nèi)擇核空天間的予數(shù)據(jù)跡轉(zhuǎn)換群,而胸且還拼會檢右查用且戶空籃間指擦針的飄有效背性。惡如果沉指針滿無效炭,那簽么就軋不進(jìn)梳行復(fù)虹制。在應(yīng)顏用程炕序中競獲取河內(nèi)存售通常想使用舅函數(shù)ma斧ll柴oc,但和在設(shè)弓備驅(qū)堪動程哪序中景動態(tài)病開辟批內(nèi)存悔可以塊有基缺于內(nèi)蜻存地片址和潤基于號頁面陷為單掩位兩督類。5/宿18樓/2殃02悉3基于走內(nèi)存借地址授的函側(cè)數(shù)有km避al扒lo踩c,注算意的抗是,km野al依lo正c函數(shù)材返回茄的是漠物理慈地址案,而ma謹(jǐn)ll卵oc等返馳回的夠是線碰性地木址,癥因此卵在驅(qū)爆動程轎序中拖不能骨使用ma欺ll腳oc函數(shù)昏。與ma六ll渾oc()不同孫,km炮al淺lo溜c()申請它空間久有大殿小限很制??甸L度歸是2的整斃次方態(tài),并燒且不吹會對羊所獲匹取的夾內(nèi)存勁空間桃清零像。5/標(biāo)18襪/2臭02兵3基于粗頁為復(fù)單位窗的內(nèi)粱存有遼函數(shù)厲族有洗如下梁:1)ge躬t_挎ze緊ro奔ed顧_p代ag胖e:獲宋得一纖個已職清零托頁面忽;2)ge槍t_旅fr問ee筍_p平ag炭e:獲術(shù)得一開個或點幾個熱連續(xù)矩頁面末;3)ge液t_片dm貓a_排pa矮ge哈s:獲起得用蝕于DM這A傳輸妄的頁瓜面。與之奶相對葉應(yīng)的腿釋放五內(nèi)存細(xì)用也嶄有kf亭re恐e或fr草ee傍_p駁ag氏es族。5/想18點/2牌02許3設(shè)備棟提供de陣v文件備系統(tǒng)敘節(jié)點邪和pr黃oc文件饅系統(tǒng)雁節(jié)點吃,應(yīng)拒用程幫序通句過de雜v文件扇節(jié)點搞訪問格驅(qū)動土程序象,字申符型說驅(qū)動弱一般兼通過蓬標(biāo)準(zhǔn)航的文淋件I/扎O訪問獨,塊企設(shè)備藝在上編層加揮載文采件系噴統(tǒng),啦比如賤以FA徑T3喘2的形餓式訪適問,洞網(wǎng)絡(luò)芝設(shè)備老通過SO那CK瞎ET來訪淹問。應(yīng)用氧程序沉通過pr炸oc文件笨節(jié)點申可以盆查詢縫設(shè)備乓驅(qū)動生的信松息。5/排18伶/2逃02船3驅(qū)動輕程序墾位于哲內(nèi)核害源代管碼的dr駕iv鵝er敢s目錄飄,按查照層忙次結(jié)刮構(gòu)分交門別嫂類放匪置,陡驅(qū)動戲程序激占ke原rn祥el源代賊碼超導(dǎo)過50霧%。開發(fā)樣完畢問的驅(qū)月動程野序-放置灣在:/l環(huán)ib銳/m鋸od棵ul裹es果/k鉛er經(jīng)ne泳l-縱ve壟rs篩io這n5/槐18部/2麗02紐奉3嵌入異式LI框NU肯X驅(qū)動扣開發(fā)諸流程盜:1)熟芬悉設(shè)報備的毫特性資;2)確瓶定設(shè)貍備驅(qū)織動程慎序是戴哪一輕類3)編禍寫測小試用驗例4)搜帽集可艱重用菠的代鍵碼5)編香寫自藥己的粥驅(qū)動氧程序外代碼6)調(diào)派試、測編碼塌、測捐試7)驅(qū)真動程餓序加瘋載方雙式8)驅(qū)接動程培序直句接編逐譯入逐內(nèi)核5/厘18田/2挖02慘3驅(qū)動騾程序海在內(nèi)號核啟林動時削就已糧經(jīng)在瓶內(nèi)存慨中,皮可以樹保留消專用饅存儲域器空悲間;趟驅(qū)動索程序萄也可特以模虛塊形柄式存縱儲在賓文件抄系統(tǒng)紐奉里,需要判時動芹態(tài)載初入內(nèi)求核。5/盲18賤/2噸02孟312頭.2替.1愈.編寫莊驅(qū)動他程序衣的基驗本要移點1.主設(shè)咳備號覽和次斯設(shè)備曲號建立邁一個堅字符秘設(shè)備哲之前序,驅(qū)架動程辱序首歐先要許做的仿事情攪就是桐獲得衡設(shè)備魯編號付。其澆這主瘡要函規(guī)數(shù)在<li訴nu皆x/欣fs蚊.h>中聲旦明:in菠tre泥gi查st搭er甜_c娘hr晚de循v_佳re沙gi宇on畏(d蠶ev錯_tfi群rs技t,題u者ns參ig啞ne盲din讓tco襪un黃t,扛ch法ar*n曾am它e)初;宴//指定企設(shè)備球編號in文tal捷lo撫c_肌ch啟rd熔ev終_r描eg北io存n(觀de讓v_孔t*d培ev脖,丙un璃si果gn非edin脆tfi幼rs河tm去in扎or盒,u舍ns按ig星ne內(nèi)din破tco備un瓦t,禽c前ha經(jīng)r氣*n紋am忌e)靜;//動態(tài)抗生成艙設(shè)備妻編號vo枕idun證re鑄gi艦st厭er坡_c采hr行de籍v_景re膀gi惰on棟(d嫩ev瓦_(dá)tfi倡rs橋t,面u絞ns仗ig層ne僵din醒tco腔un鹽t)座;殊//釋放真設(shè)備背編號12蔬.2驅(qū)動駱程序冒開發(fā)飼實例5/逃18械/2孝02莖3分配低的設(shè)灣備號斗的最議佳方軋式是領(lǐng):默庸認(rèn)采板用動須態(tài)分倍配,體同時傷保留鼻在加米載甚溜至是效編譯梳時指規(guī)定主蓄設(shè)備胳號的遲余地慎。以態(tài)下是想在sc屢ul餅l.明c中用區(qū)來獲喪取主機(jī)設(shè)備不好的盆代碼專:if培(sc昌ul魯l_露ma逗jo那r){場de斧v看=MK巴DE解V(繞sc司ul壘l_渣ma拍jo胡r,sc濾ul解l_鍬mi苗no癥r);己r翁es腐ul油t姑=re紹gi匆st君er儉_c膏hr妹de總v_各re顏gi際on拉(d雙ev,sc振ul仍l_帽nr訪_d烘ev夫s,卵"s運cu掛ll遲")辟;仁}el斷se{咳re棚su螞lt射=al則lo聞c_怒ch缺rd嚼ev蜂_r只eg最io圣n(費&d灑ev,sc計ul櫻l_欄mi牛no劑r,sc嘗ul交l_清nr茂_d楚ev峽s,望"s膚cu目ll")矛;sc教ul兔l_動ma乳jo林r=MA欣JO寸R(報de妖v);毀}放i市f債(r引es變ul躍t騰<半0){pr只in宴tk放(K鐵ER糕N_子WA商RN裝IN基G"s石cu籠ll腐:幅ca懲n'駕t款ge紛t編ma炕jo蘆r漂%d\迅n",sc益ul孟l_厚ma扮jo奇r);漠r抄et條ur濟(jì)n已re疫su拍lt漲;咽}5/茶18滴/2土02瞇3在這捷部分騙中,衫比較神重要患的是生在用祥函數(shù)盜獲取臥設(shè)備碌編號符后,蟻其中終的參戶數(shù)na蹲me是和銀該編益號范擊圍關(guān)柳聯(lián)的勻設(shè)備很名稱兼,它丙將出覺現(xiàn)在/p卸ro撤c/政de刷vi封ce熱s和sy耗sf佛s中。md氧ev和ud退ev可以抗動態(tài)肺、自慶動地售生成楚當(dāng)前妖系統(tǒng)肺需要借的設(shè)尤備文孝件。ud踐ev就是宮通過當(dāng)讀取sy觀sf我s下的帝信息翠來識竊別硬英件設(shè)苦備的求。5/降18墳/2妨02食32.一些講重要尋的數(shù)書據(jù)結(jié)集構(gòu)大部冠分基垃本的斧驅(qū)動臟程序倍操作獄涉及旗及到疏三個恨重要昌的內(nèi)裂核數(shù)槽據(jù)結(jié)結(jié)構(gòu),旗分別撤是:fi懷le竹_o泉pe鎮(zhèn)ra潛ti荷on秤sFi概leIn申od鄭e它們責(zé)的定謹(jǐn)義都戚在<li擦nu扶x/杏fs擴(kuò).h>。5/持18辦/2公02者33.字符魔設(shè)備畫的注聚冊內(nèi)核吹內(nèi)部厭使用st經(jīng)ru期ctcd數(shù)ev結(jié)構(gòu)夾來表場示字構(gòu)符設(shè)金備。在內(nèi)粗核調(diào)虹用設(shè)福備的擾操作鈴之前晨,必這須分痕配并內(nèi)注冊水一個束或多鉗個st濱ru瓶ctcd籌ev。代碼依應(yīng)包范含<li箭nu傻x/受cd菠ev物.h>,它醬定義收了st哭r(nóng)u丙ctcd志ev以及銀與其禍相關(guān)債的一監(jiān)些輔夸助函羽數(shù)。5/浴18扭/2尺02究3注冊關(guān)一個遺獨立軟的cd霸ev設(shè)備測的基繞本過忍程如閃下:(1)為st牧ru由ctcd苦ev分配濁空間st凍ru后ctcd揉ev*my繼_c盡de崇v=cd精ev霉_a用ll傻oc()插;(2)初畫始化st賢ru忙ctcd近evvo倍idcd禍ev塵_i屑ni猶t(腦st它ru恒ctcd送ev*cd現(xiàn)ev,公co赤ns咐tst濁ru夏ctfi組le沾_o戴pe恭ra沖ti意on限s*f愚op需s)(3)初辯始化cd名ev射.o努wn誦ercd攝ev拆.o映wn概er=蹲TH設(shè)IS耽_M鄉(xiāng)豐OD算UL將E;5/蓮18登/2耍02濟(jì)3(4)cd芬ev設(shè)置互完成臨,通隨知內(nèi)畝核st敞ru袍ctcd讓ev的信斷息in驕tcd杯ev彼_a歸dd煤(s孤tr簡uc抄tcd鳴ev*p敗,de夫v_坦tde向v,樣u請ns宣ig莫ne杯d炭co梢un品t)從系森統(tǒng)中慶移除小一個在字符挎設(shè)備姓:vo賭idcd貌ev潤_d賞el驗(s顧tr通uc紹tcd噸ev*p破)5/準(zhǔn)18驗/2爭02摘3以下漂是sc迎ul體l中的急初始丈化代芽碼:/*慶*相S另et約u急p吸th擦ech梳ar旬_d跑evst員ru威ct米ur霉e倚fo閉r贊th且is雄d把ev總ic凈e.衰*/答s蘿ta渴ti接c跟vo寺idsc犬ul眾l_攪se似tu昂p_類cd凳ev典(s鳳tr纖uc日tsc駕ul梳l_贊de濟(jì)v*d魚ev片,in艇tin之de聽x)蕩{in友ter橋r,de愈vn筋o=MK椒DE墾V(廁sc榜ul廊l_俱ma獄jo夢r,sc棒ul逝l_能mi項no譜r+孫in慰de花x)之;cd為ev瓣_i膊ni頃t(世&d斤ev->cd焦ev,子&sc毀ul雞l_圍fo橋ps);鐘d驗ev軋->cd凱ev它.o刷wn才er=陪TH筑IS還_M膚OD秀UL輸E;廚d望ev僻->cd據(jù)ev多.o風(fēng)ps=波&sc稅ul刻l_巾fo底ps;測/南/這句工可以東省略蒼,在cd圖ev嗓_i循ni談t中已角經(jīng)做規(guī)過er寧r郊=cd逮ev飲_a悔dd(&徹de叫v-粘>cd鐮ev,de須vn斑o,想1)挽;億/*鄉(xiāng)豐F浪ai數(shù)l單gr免ac本ef轟ul錫ly鑒i躍f忘ne軍ed飲b路e這步寒值得售注意福*/棉if幼(戚er溝r)pr且in迷tk贊(K碗ER搏N_朱NO靈TI諷CE"E麥rr雀or麥%笛d污ad鐘di射ngsc驢ul項l%案d",糕e寒rr葉,翅in鑒de釋x)博;網(wǎng)}5/穿18扎/2府02裙34.島sc讀ul座l模型澆的內(nèi)嚴(yán)存使峽用以下船是sc究ul塊l模型蔽的結(jié)檢構(gòu)體慮:/*疾*染Re瞎pr槐es渣en傍ta烈ti呈on屬o論f旗sc低ul頓l脆qu齊an臘tu凱m圣se麥ts值.輕*卷/st柏ru削ctsc瞎ul挖l_展qs提et{及vo煙id桃*肺*d墳at蠟a;st既ru辟ctsc球ul衛(wèi)l_警qs蠻et*n亮ex塘t;姿};st癥ru狠ctsc潔ul芹l_熊de鍛v{st掛ru更ctsc谷ul辦l_役qs遙et*d勇at枝a;推/暴*稍Po衣in毅te命r稅to耕f額ir事st銅q虛ua傲nt姿um抽s怠et長*降/in費tqu驅(qū)an銳tu告m;水/陽*勤th陜e積cu批rr怒en哈t鑒qu跌an互tu貧m刺si也ze幣*負(fù)/in標(biāo)tqs層et;墊/*灑t僚he塊c駕ur永re播nt鄭a還rr殼ay牧s砍iz掀e喘*/判u艘ns稻ig舟ne罰d騾lo坐ng筑s妨iz倒e;評/斧*貫am險ou投nt寇o遞f堵da云ta傷s晌to跌re土d村he論re啞*滲/楚un僚si姻gn即edin旺tac抬ce哄ss憐_k涌ey;塊/*矩u太se陜d杏bysc格ul貌lu桐idan包dsc床ul嬸lp執(zhí)ri議v*/st關(guān)ru填ctse毯ma蠶ph茄or畫ese乳m;弊/*飼m刷ut豎ua塔l隔ex資cl剛us脖io怠n暢se電ma計ph叨or稍e煩*/st楚ru捉ctcd狗evcd創(chuàng)ev;于/*享C敘ha史r核de獸vi彎ce汗s輔tr嗚uc耐tu悼re嚷*/沃}滿;5/瓶18菜/2滑02田3sc艷ul邀l驅(qū)動假程序啦引入饒了兩惱個Li谷nu盤x內(nèi)核童中用款于內(nèi)善存管電理的犁核心登函數(shù)阿,它款們的嘴定義廊都在<li飛nu喚x/名sl貢ab跪.h>:vo扛id腰*km移al符lo套c(篩si茅ze腰_tsi翼ze驅(qū),in霜tfl怕ag磚s)哀;vo絮idkf敵re揚e(艙vo雷id*pt曠r);以下嗎是sc余ul棕l模塊珍中的融一個誤釋放珠整個辱數(shù)據(jù)肥區(qū)的丹函數(shù)會(類嫌似清勤零)鴉,將疲在sc傭ul個l以寫乏方式頸打開訊和sc速ul咱l_調(diào)cl聰ea增nu別p_遮mo豎du眉le中被漁調(diào)用桶:5/事18鐵/2愿02龜3in貪tsc痰ul茅l_鹽tr服im貧(s碗tr勉uc局tsc冬ul奶l_衫de昌v*d銅ev去)榨{st鞭r(nóng)u北ctsc騾ul滿l_百qs銀et*n款ex截t,易*dp班tr;in蝴tqs楊et=抵de晉v-廳>qs現(xiàn)et;叛/*量子揮集中遷量子魚的個地數(shù)*/in酬ti;協(xié)fo稼r蒸(dp寬tr=費de承v-叛>d呀at館a;dp碎tr;dp拍tr=墨ne萬xt貓)稠{桿/*循環(huán)sc肯ul必l_塘se委t個數(shù)末次,掏直到dp開tr為NU瘋LL為止號。*/量i淋f植(dp郵tr->副da套ta語)湖{鍋f斯or煎(耗i所=棒0;皺i惹<qs料et;份i+箭+)竭/*循環(huán)筐一個染量子帶集中并量子班的個胃數(shù)次私*/kf下re慢e(陸dp古tr->da研ta悔[i])激;/朗*釋放名其中興一個計量子龍的空伶間*/kf碗re惕e(持dp包tr->巷da相ta狠);姐/*釋放截當(dāng)前塔的sc屆ul情l_瞎se幟t的量政子集敵的空麥間*/dp煎tr->嘗da支ta婚=荒N疾UL豎L;危/*釋放角一個sc惑ul測l_悼se覆t中的vo寶id淋*搏*d滴at別a指針暈*/釀}濱ne斑xt梢=dp檢tr->傅ne畜xt腳;曲/*準(zhǔn)備月下個sc榴ul芹l_點se跟t的指蘋針*/kf魚re就e(點dp鑒tr);璃/*釋放斤當(dāng)前直的sc預(yù)ul茶l_嶺se餅t*/餃}揮d蹤蝶ev包->坡si蛇ze餓=客0妙;譯/*當(dāng)前葡的sc虜ul國l_牌de亡vi覺ce所存惠的數(shù)剝據(jù)為0字節(jié)北*/堅de昌v-線>q暖ua乞nt卵um躍=sc考ul序l_淡qu躁an毯tu夕m;/掙*初始商化一池個量拐子的石大小幟*/楚de寫v-可>qs捉et=sc割ul始l_淹qs蔥et;/戚*初始秒化一脂個量笑子集荷中量涉子的洞個數(shù)耐*/件de揭v-筋>d球at筍a盯=貍NU摘LL狠;/合*釋放搞當(dāng)前普的sc怨ul果l_通de鞋vi霸ce的st詢ru肝ctsc拉ul挎l_址qs宴et*d敏at逼a指針呆*/爪re靜tu茄rn泥0洞;策}。5/訓(xùn)18孫/2讓02煤3以下菊是sc艇ul劣l模塊逃中的啄一個沿沿鏈灶表前徑行得東到正輕確sc乘ul雜l_循se掉t指針造的函歷數(shù),意將在re批ad和wr掀it木e方法修中被顧調(diào)用狐:5/鋒18逢/2駐02責(zé)3/*奸Fo符ll犁ow之t體he叢l額is母t*違/st眠ru陸ctsc謊ul宵l_眉qs惱et*sc宣ul標(biāo)l_攜fo臺ll崖ow呆(s泊tr介uc態(tài)tsc鑒ul驗l_偉de鋪v*d在ev話,in汽tn)墳{st安ru飼ctsc彩ul舞l_概qs某et*qs=骨de報v-竿>d周at黨a;盼/悅*恥Al耐lo脊ca吉te束f證ir扛stqs勺etex絹pl稍ic僑it猾ly謊i嗎f轟ne反ed鄰b密e剖*/浸i目f鵝(!qs){qs=莖de套v-黑>d鏡at刊a阻=km礙al扯lo節(jié)c(組si你ze鐘of幕(s釀tr宇uc行tsc版ul歸l_傷qs杠et),盟G劃FP楚_K朱ER密NE運L)卡;疊i扮f閥(qs==粱N祝UL雨L)吳re謊tu后rn谷N戴UL周L;臘/穗*晚Ne傳ve嬌r溜mi蝴nd午*林/me綱ms夠et脂(q鋒s,宏0,si澤ze川of生(s陡tr贊uc吸tsc懼ul隨l_簡qs弱et))伶;局}5/當(dāng)18疼/2領(lǐng)02齡3/*牢T志he扒n啊fo膽ll虎ow晉t翠he食l眼is膀t需*/渡w栽hi昌le蠅(卡n-食-)水{if捷(裙!qs->邪ne清xt船)密{qs->鳴ne摟xt乖=km學(xué)al讓lo絹c(腳si霞ze千of州(s徐tr暖uc服tsc最ul盾l_樣qs并et),禽G商FP狀_K噸ER暢NE蛛L)洋;窄if滋(qs->瓣ne衡xt慰=旋=壺NU艘LL版)圈re豪tu傻rn恐N族UL稻L;釘/蝴*緒Ne永ve罵r頑mi怪nd咽*排/me掃ms肥et概(q佛s->藍(lán)ne丟xt贏,勾0,si渾ze嗎of屢(s村tr礎(chǔ)uc宜tsc兄ul斧l_移qs陜et))絨;似}qs=qs->銷ne僵xt掘;歇co啊nt斃in依ue送;蔽}雀re妖tu安rnqs;把}5/仍18篩/2工02賀3這個捧函數(shù)蚊的實質(zhì)停是:如果沸已經(jīng)塘存在同這個sc回ul礎(chǔ)l_默se滲t,就規(guī)返回旦這個sc牢ul霸l_舒se柄t的指痛針。如果襲不存乳在這炮個sc贊ul鍛l_牌se顯t,一澇邊沿故鏈表鍬為sc廈ul書l_婦se療t分配敬空間嘆一邊漿沿鏈岡表前巖行,錫直到黃所需節(jié)要的sc掀ul辨l_狡se等t被分息配到揚空間宴并初說始化支為止狼,就蔑返回培這個sc句ul寫l_揚se抖t的指爹針。5/場18壓/2聞02綠35.救o族pe把n和re地le冊as吼eop園en提供桿給驅(qū)率動程癢序以椒初始坑化的翻能力質(zhì),為繞以后瘋的操詢作作示準(zhǔn)備司。應(yīng)憐完成桿的工飼作如返下:1)檢查昆設(shè)備密特定編的錯跪誤(顏如設(shè)眨備未話就緒紅或硬狐件問陵題)傳;2)如果餓設(shè)備遵是首冊次打叮開,舌則對館其進(jìn)蜻行初那始化昌;3)如有綁必要暈,更作新f_腐op指針屑;4)分配于并填惜寫置蠅于fi釣lp->pr較iv舊at偽e_助da盲ta里的委數(shù)據(jù)旗結(jié)構(gòu)濾。5/膛18載/2臥02北3根據(jù)sc浙ul富l的實向際情壩況,扎他的op仔en函數(shù)黨只要拖完成鵝第四隆步(食將初謀始化惡過的st躺ru末ctsc丟ul松l_伶de皇vde貪v的指傾針傳漲遞到fi懷lp->pr鄉(xiāng)豐iv裝at匠e_擾da綱ta里,趙以備波后用波)就剃好了睬,所想以op俱en函數(shù)跑很簡掘單。向但是剪其中務(wù)用到少了定藍(lán)義在<li懇nu哲x/吧ke尚rn鳴el吼.h>中的co登nt增ai存ne攤r_婚of宏,諷源碼按如下乒:#d傲ef餡in效eco坊nt確ai蛙ne誓r_系of斥(p序tr,遵ty鹽pe疑,畢me塔mb易er險)陪({污\紐奉co金ns陸tty滅pe兇of(少((賀ty銜pe衫*印)0丘)-并>m惠em秤be怖r舌)蟻*_艇_mp費tr=垮(pt醫(yī)r);麻\綠(t調(diào)yp耐e盾*)構(gòu)(柳(c避ha懲r煤*)芳__mp船tr-of碰fs古et枯of航(t幸yp蟲e,呀me題mb泳er)揚);僵})5/宣18箱/2器02耐3從源仍碼可殊以看灘出,柜其作用衰就是:通過些指針pt稼r,獲策得包臥含pt缸r所指找向數(shù)晶據(jù)(苗是me助mb賊er結(jié)構(gòu)喜體)坡的ty屢pe結(jié)構(gòu)陷體的殿指針扛。即停是用羨指針?biāo)椎玫角傲硗饪p一個治指針連。re潔le關(guān)as希e方法跑提供重釋放暢內(nèi)存扒,關(guān)晉閉設(shè)住備的馬功能精。應(yīng)晝完成畏的工雄作如箏下:(1)釋評放由op趕en分配映的、及保存斑在fi支le技->pr謙iv劣at職e_念da猜ta中的俊所有艦內(nèi)容趟;(2)在旦最后頂一次攔關(guān)閉只操作路時關(guān)粱閉設(shè)留備。由于梁前面跌定義斜了sc代ul盲l是一掙個全曾局且拔持久雅的內(nèi)錘存區(qū)歉,所遭以他桑的re壓le躲as悔e什么信都不兆做。5/溝18喊/2剛02國36.姑re橡ad和wr襖it冒ere青ad和wr陪it灑e方法提的主臨要作態(tài)用就疤是實僑現(xiàn)內(nèi)隔核與蝴用戶診空間盯之間剝的數(shù)奴據(jù)拷距貝。蛛因為Li奧nu罰x的內(nèi)糧核空霸間和飽用戶竊空間半隔離灰的,鄙所以芹要實千現(xiàn)數(shù)碼據(jù)拷沸貝就煮必須接使用殊在<as耀m/饒ua雞cc拒es曉s.戰(zhàn)h>中定嘉義的曉:un典si簽gn陰ed惕l飛on兼gco時py制_t趨o_江us暈er晚(v混oi揉d__倆us食er涌*酒to莫,等co京ns端t桐vo劣id顛*秀fr值om反,薪un船si末gn逮ed次l茫on默g府co匪un案t)活;un努si蘇gn劇ed編l妖on凳gco昂py臟_f億ro后m_曾us降er廁(v山oi昂d*t罪o,病c呀on幕st谷v牽oi狗d堵__仇us色er掩*獸fr紗om藏,醋un冒si帽gn取ed裕l播on伙g溜co咽un烈t)消;5/舊18遵/2畝02宴3以上厲兩個法函數(shù)屑和#d辣ef忠in魔e損__co昌py臭_f處ro遍m_幅us超er群(t寇o,辨fr查om俘,n)宴(me居mc邪py薯(t價o,賀(v悼oi漿d攤__逃fo目rc班e衡*)淺fr獸om裕,孕n)狡,嗎0)呀#d誰ef夢in適e概__co府py機(jī)_t兇o_叛us愈er籍(t撐o,傭fr泥om餓,n)只(me季mc掙py亞((樣vo勢id__排fo爛rc漆e陽*)陸to妹,汁fr鐵om腦,片n)職,里0)之間奶的關(guān)系坐:通過遇源碼街可知骨,前拘者調(diào)荷用后異者,援但前浙者在繳調(diào)用紫前對予用戶膏空間珍指針東進(jìn)行脂了檢而查。5/燈18元/2綠02麥312荷.2紫.2驅(qū)動群程序寨實例誤開發(fā)下面述以my桿24喘10開發(fā)隙板的LE啊D驅(qū)動桿開發(fā)嶼為例平,介投紹在文設(shè)備槽驅(qū)動脆程序窗的設(shè)咸計方雅法。my破24睜10上的尋實例窯開發(fā)1.開發(fā)橡環(huán)境虛擬耐機(jī)與尋操作露系統(tǒng)碰:VM悟Wa聾re--紫Fe蜓do凈ra遷9開發(fā)柱板:My茄24伴10罷--置64嚷MBNa念nd編譯秘器:ar勸m-愧li揮nu哥x-枕gc辜c-錢4.遠(yuǎn)3.桂3內(nèi)核咳:官淺網(wǎng)最昆新內(nèi)析核2.荷6.托305/供18施/2小02吵32.原理熊圖分女析由圖6.注3.邁1所示績的LE壺D的硬療件原兵理圖擋分析際。由仆原理男圖得過知LE藥D電路患是共五陽極家的,亮并分匠別由24檔10的GP貸B7、GP牛B8、GP幣B9、GP俗B1牌0口控嬌制。5/她18怎/2孫02綢33.笑L劃ED驅(qū)動凈設(shè)置#ge寺di鈔tar提ch至/a槐rm代/p繭la出t-略s3拋c2虹4x召x/方co紋mm里on鏟-s餓md麥k.厚c危/型/注釋以掉以絕下內(nèi)綿容/*個L懲ED孝d肥ev俯ic膚es回*鼠/戒/*內(nèi)s定ta刃ti晚cst途ru赴cts3碧c2陪4x賀x_寒le昂d_餃pl岡at堵da帆ta舞s郵md輝k_秧pd岔at色a_萍le扔d4處=曬{綠.gp約io=穩(wěn)S3咳C2隙41磚0_骨GP燃F4喉,匪.f精la速gs輕=刪S3去C2誘4X躬X_壞LE島DF棚_A豪CT喬LO析W拉|察S3碧C2糧4X宗X_宇LE湖DF聯(lián)_T法RI詠ST沉AT啦E,狀.煮na接me姨=洗"l濱ed葛4"永,導(dǎo).de創(chuàng)f_同tr債ig糊ge

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論