版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、拌linux挨-癌2.6.2版6敗內(nèi)核中AR暗M中斷實(shí)現(xiàn)絆詳解(1)班 巴作者:劉洪伴濤,華清遠(yuǎn)敖見(jiàn)嵌入式學(xué)半院金牌講師芭,ARM 艾ATC授權(quán)稗培訓(xùn)講師。澳看了一些網(wǎng)埃絡(luò)上關(guān)于l俺inux中瓣斷實(shí)現(xiàn)的文安章,感覺(jué)有皚一些寫(xiě)的非礙常好,在這澳里首先感謝般他們的無(wú)私扳付出,然后絆也想再補(bǔ)充捌自己對(duì)一些熬問(wèn)題的理解吧。先從函數(shù)艾注冊(cè)引出問(wèn)邦題吧。耙一、中斷注扳冊(cè)方法扳在linu鞍x內(nèi)核中用扳于申請(qǐng)中斷懊的函數(shù)是r半eques暗t_irq熬(),函數(shù)案原型在Ke扒rnel/班irq/m壩anage擺.c中定義胺:奧K。拌int r百eques癌t_irq哀(unsi阿gned 敖int i盎rq,
2、i隘rq_ha稗n白dler_暗t han瓣dler,扳半拔霸白 暗unsig斑ned l阿ong i骯rqfla辦gs, c爸onst 百char 氨*devn搬ame, 哎void 敗*dev_巴id)案b。邦irq是要壩申請(qǐng)的硬件傲中斷號(hào)。啊handl耙er是向系傲統(tǒng)注冊(cè)的中盎斷處理函數(shù)拜,是一個(gè)回伴調(diào)函數(shù),中耙斷發(fā)生時(shí),壩系統(tǒng)調(diào)用這背個(gè)函數(shù),d叭ev_id熬參數(shù)將被傳半遞給它。胺h。斑irqfl昂ags是中叭斷處理的屬板性,若設(shè)置案了IRQF哀_DISABLED 傲(老版本中礙的SA_I埃NTERR佰UPT,本斑版zhon拌已經(jīng)不支持阿了),則表翱示中斷處理扒程序是快速搬處理程序,凹快
3、速處理程擺序被調(diào)用時(shí)稗屏蔽所有中懊斷,慢速處半理程 序不凹屏蔽;若設(shè)骯置了IRQ鞍F_SHA辦RED (唉老版本中的岸SA_SH敗IRQ),邦則表示多個(gè)搬設(shè)備共享中翱斷,若設(shè)置伴了IRQF哎_SAMP邦LE_RA靶NDOM(藹老版本中的斑 SA_S柏AMPLE傲_RAND熬OM),表笆示對(duì)系統(tǒng)熵矮有貢獻(xiàn),對(duì)半系統(tǒng)獲取隨拌機(jī)數(shù)有好處耙。(這幾個(gè)啊flag是柏可以通過(guò)或佰的方式同時(shí)把使用的)安Z。哎dev_i耙d在中斷共芭享時(shí)會(huì)用到板,一般設(shè)置暗為這個(gè)設(shè)備鞍的設(shè)備結(jié)構(gòu)俺體或者NU吧LL。胺P。霸devna背me設(shè)置中凹斷名稱(chēng),在柏cat /靶proc/皚inter鞍rupts靶中可以看到靶此名稱(chēng)。
4、懊U。礙reque艾st_ir埃q()返回搬0表示成功盎,返回-I罷NVAL表示中斷號(hào)無(wú)胺效或處理函凹數(shù)指針為N扳ULL,返斑回-EBU霸SY表示中藹斷已經(jīng)被占愛(ài)用且不能共辦享。安4。般關(guān)于中斷注傲冊(cè)的例子,瓣大家可在內(nèi)耙核中搜索下疤reque礙st_ir扒q。岸E。昂在編寫(xiě)驅(qū)動(dòng)絆的過(guò)程中,懊比較容易產(chǎn)艾生疑惑的地敖方是:骯1、中斷向阿量表在什么懊位置?是如鞍何建立的?安盎 2、辦從中斷開(kāi)始哎,系統(tǒng)是怎拔樣執(zhí)行到我斑自己注冊(cè)的皚函數(shù)的?襖壩 3、愛(ài)中斷號(hào)是如笆何確定的?懊對(duì)于硬件上奧有子中斷的靶中斷號(hào)如何襖確定?癌頒 4、皚中斷共享是板怎么回事,版dev_i絆d的作用是翱?襖h。芭本文以百2.
5、6.2把6拌內(nèi)核和S阿3C板2410處凹理器為例,吧為大家講解拜這幾個(gè)問(wèn)題盎。疤i。辦二、異常向絆量表的建立案在ARM 班V4及V4般T以后的大澳部分處理器拜中,中斷向愛(ài)量表的位置唉可以有兩個(gè)翱位置:一個(gè)伴是0,另一版?zhèn)€是0 xf敖fff00岸00??梢园耐ㄟ^(guò)CP1稗5協(xié)處理器拜c1寄存器癌中V位(b癌it13佰)控制。拌V和中斷向扮量表的對(duì)應(yīng)挨關(guān)系如下:骯J。芭V=0昂澳 拌 拜0 x0 x壩C般壩 V=柏1阿 胺叭 0 x跋ffff0唉0000哀xffff壩001C斑d。扒arch/拌arm/m稗m/pro疤c-arm瓣920.S昂中瓣.sect藹ion 骯.text頒.init耙, #a
6、扒lloc,礙 #exe按cinst八r霸拜 _拜arm92捌0_set把up:八罷 搬 orr暗岸 r0, 啊r0, #艾0 x210藹0阿辦 懊 .1般. .霸1 .1絆1 .捌1艾Q。靶/bit芭13=1 板中斷向量表耙基址為0 x把FFFF0辦000。R艾0的值將被扮付給CP1笆5的C1.按V。扒在linu擺x中,向量把表建立的函敗數(shù)為:艾init/阿main.哀c-st昂art_k斑ernel班()-t笆rap_i鞍nit壩()敗8。白void 八_ini搬t(yī) tra壩p_ini背t(voi敗d)把巴 矮暗班昂 uns襖igned芭 long搬 vect扳ors =矮 CONF板IG
7、_VE唉CTORS拔_BASE版;敗罷皚暗 暗拔笆擺 mem癌cpy(啊void 按*)vec柏tors,扳 _ve翱ctors盎_star案t, _敗vecto吧rs_en礙d - _靶_vect凹o(jì)rs_s吧tart)盎;奧頒傲稗 memc搬py(v埃oid *啊)vect愛(ài)ors +阿 0 x20敗0, _瓣stubs哎_star板t, _癌stubs翱_end 扒- _s伴tubs_氨start拌);霸跋氨愛(ài) .搬.安把 頒Y。稗在爸2.6.2盎6靶內(nèi)核中CO礙NFIG_鞍VECTO案RS_BA昂SE最初是伴在各個(gè)平臺(tái)礙的配置文件稗中設(shè)定的,哎如:癌K。奧arch/半arm/c八onf
8、ig扒s/s把3c霸2410_皚defco阿nfig中捌8。瓣CONFI礙G_VEC邦TORS_敗BASE=澳0 xfff翱f0000案_vec笆tors_稗end 至哎 _ve矮ctors胺_star耙t之間為異岸常向量表。般7。按位于arc暗h/arm吧/kern吧el/en俺try-a柏rmv.S隘.glob跋l _v辦ector巴s_sta昂rt暗_vec柏tors_半start矮:巴瓣 sw扳i SYS班_ERRO拌R0:耙哀 b 罷vecto般r_und罷 + st耙ubs_o襖ffset襖 /復(fù)位癌異常:翱辦 ld鞍r pc,挨 .LCv哀swi +凹 stub按s_off凹se
9、t阿吧 /未定哀義指令異常邦:熬霸 b 翱vecto板r_pab哀t + s翱tubs_爸offse挨t奧 /敗/軟件中斷敖異常:扮矮 b 凹vecto案r_dab案t + s邦tubs_頒offse皚t骯 /艾/數(shù)據(jù)異常辦:靶辦 b 隘vecto盎r_add哀rexcp靶tn + 愛(ài)stubs背_offs罷et隘 爸/保留:埃邦 b 翱vecto辦r_irq班 + st吧ubs_o百ffset百疤 /挨普通中斷異邦常:扮熬 b 翱vecto礙r_fiq辦 + st傲ubs_o昂ffset白白 /拜快速中斷異常:盎阿 .g盎lobl 罷_vec跋tors_哀end:熬_vec跋tors_捌en
10、d:擺9。藹_stu斑bs_en癌d 至 _白_stub胺s_sta唉rt之間是敗異常處理的拔位置。也位擺于文件ar埃ch/ar奧m/ker稗nel/e岸ntry-霸armv.昂S中。ve熬ctor_奧und、v白ector哀_pabt岸、vect絆or_ir挨q、vec壩tor_f般iq都在它跋們中間。俺M。版stubs班_offs翱et值如下奧:癌.equ 搬stubs敖_offs矮et, _耙_vect鞍ors_s般tart 埃+ 0 x2愛(ài)00 - 安_stu笆bs_st懊art襖A。般stubs案_offs般et是如何半確定的呢?罷(引用網(wǎng)絡(luò)叭上的一段比按較詳細(xì)的解疤釋?zhuān)┌羛。疤當(dāng)匯
11、編器看扮到B指令后埃會(huì)把要跳轉(zhuǎn)唉的標(biāo)簽轉(zhuǎn)化奧為相對(duì)于當(dāng)疤前PC的偏艾移量(芭32M挨)寫(xiě)入指令扮碼。從上面斑的代碼可以耙看到中斷向矮量表和st耙ubs都發(fā)艾生了 代碼拔搬移,所以拜如果中斷向安量表中仍然俺寫(xiě)成b v拜ector伴_(kāi)irq,藹那么實(shí)際執(zhí)八行的時(shí)候就皚無(wú)法跳轉(zhuǎn)到胺搬移后的vector稗_irq處巴,因?yàn)橹噶盍T碼里寫(xiě)的是稗原來(lái)的偏移凹量,所以需擺要把指令碼瓣中的偏移量唉寫(xiě) 成搬移鞍后的。我們挨把搬移前的扳中斷向量表熬中的irq哎入口地址記半irq_P扒C,它在中澳斷向量表的暗偏移量就是俺irq_P癌C-vec頒tors_癌start百, vec胺tor_i安rq在st巴ubs中的皚偏
12、移量是v辦ector扮_irq-版stubs佰_star瓣t,這兩個(gè)頒偏移量在搬懊移前后是不扒變的。搬移扒后 vec耙tors_拌start骯在0 xff癌ff000拌0處,而s芭tubs_俺start盎在0 xff奧ff020斑0處,所以骯搬移后的v骯ector愛(ài)_irq相霸對(duì)于中斷 稗向量中的中板斷入口地址芭的偏移量就辦是,200擺+vect捌or_ir暗q在stu隘bs中的偏疤移量再減去唉中斷入口在芭向量表中的把偏移量,即翱200+ 骯vecto笆r_irq捌-stub靶s_sta白rt-ir敖q_PC+癌vecto藹rs_st安art =藹 (vec白tor_i挨rq-ir巴q_PC)
13、跋 + ve絆ctors芭_(tái)star拜t+200耙-stub疤s_sta巴rt,對(duì)于岸括號(hào)內(nèi)的值愛(ài)實(shí)際上就是暗中斷向量表襖中寫(xiě)的ve澳ctor_癌irq,減般去irq_跋PC是由匯敗 編器完成癌的,而后面奧的 vec班tors_半start阿+200-搬stubs案_star扮t就應(yīng)該是八stubs半_offs頒et,實(shí)際佰上在ent伴ry-ar辦mv.S中癌也是這樣定頒義的。翱Y。絆三、中斷處搬理過(guò)程 把這一節(jié)將以頒S百3C佰2410為疤例,描述l艾inux-百2.6.2啊6巴內(nèi)核中,從癌中斷開(kāi)始,半中斷是如何擺一步一步執(zhí)拔行到我們注班冊(cè)函數(shù)的。敗 安J。鞍3.1 中擺斷向量表 捌arch辦
14、armk骯ernel辦entr拔y-arm拌v.S暗G。暗_vec背tors_癌start奧:辦皚笆sw八i SYS搬_ERRO安R0艾扒扒b凹 ve藹ctor_扳und +佰 stub扒s_offset矮壩拌ld鞍r pc,敗 .LCv艾s俺wi + 把stubs爸_offs胺et稗背襖b啊 ve胺ctor_搬pabt 案+ stu愛(ài)bs_of按fset瓣扮捌b暗 ve霸ctor_熬dabt 柏+ stu半bs_of澳fset巴挨絆b盎 ve疤ctor_柏addre案xcptn熬 + st唉ubs_o岸ffset岸罷版b邦 ve背ctor_斑irq +芭 stub跋s_off般set 奧瓣伴
15、b愛(ài) ve稗ctor_唉fiq +阿 stub柏s_off懊set邦捌.g阿lobl班 _v皚ector跋s_end罷哎_安vecto拔rs_en俺d:奧T。拌中斷發(fā)生后盎,跳轉(zhuǎn)到耙b vec敗tor_i愛(ài)rq + 絆stubs班_offs氨et絆的位置執(zhí)行翱。注意現(xiàn)在爸的向量表的巴初始位置是巴0 xfff骯f0000案。 哀z。邦3.2 中稗斷跳轉(zhuǎn)的入暗口位置 a笆rcha搬rmke捌rnel愛(ài)entry敖-armv吧.S澳5。哎俺.glo挨bl 隘_stu霸bs_st版art熬_絆_stub叭s_sta跋rt:班 敖/*岸 扮* Int邦errup辦t dis按patch皚er敗班*/瓣按
16、白ve頒ctor_扳stub盎 ir拌q, IR胺Q(chēng)_MOD岸E, 4 矮吧IRQ_M唉ODE在i埃nclud胺easm班ptra啊ce.h中皚定義:0 x佰12奧班拜.l拔ong壩 _i芭rq_us巴r 0版 (USR拔_26 /澳 USR_案32)哎百疤.l芭ong襖 _i按rq_in板valid按 1 艾(FIQ_伴26 / 唉FIQ_3罷2)矮八藹.l挨ong敖 _i安rq_in般valid昂 2 暗(IRQ_26 / 絆IRQ_3霸2)鞍鞍愛(ài).l癌ong瓣 _i背rq_sv佰c 3襖 (SVC巴_26 /傲 SVC_班32)暗疤懊.l按ong藹 _i藹rq_in岸valid哀 4白唉
17、背.l辦ong敗 _i佰rq_in熬valid疤 5靶邦.l百ong頒 _i絆rq_in皚valid扮 6壩敖邦.l吧ong安 _i靶rq_in矮valid霸 7唉岸頒.l奧ong拌 _i扳rq_in班valid昂 8絆般伴.l佰ong唉 _i扳rq_in八valid唉 9懊氨昂.l八ong _氨_irq_扒inval唉id 癌a絆昂哎.l伴ong _懊_irq_俺inval瓣id 靶b班挨稗.l胺ong _班_irq_搬inval敗id 瓣c叭鞍鞍.l伴ong _哎_irq_挨inval鞍id 柏d岸襖敗.l艾ong _隘_irq_瓣inval柏id 頒e巴霸安.l壩ong _佰_irq_案
18、inval笆id 礙f敗8。拔上面代碼中挨vecto翱r_stu敖b宏的定義邦為: 霸.macr挨o vec澳tor_s笆tub, 佰name,安 mode盎, cor哎recti熬on=0奧稗爸.a礙lign 哀5啊芭ve愛(ài)ctor_胺name把:叭懊阿.i扮f co盎rrect絆ion跋癌扮su拌b lr,阿 lr, 藹#cor拌recti壩on半捌礙.e伴ndif扒般版爸?jǐn)“?岸Save 敗r0, l阿r_ (瓣p辦arent翱 PC) 安and s叭psr_藹氨敖 (pare拔nt CP哀SR)啊搬案柏笆白st鞍mia s盎p, r瓣0, lr傲 s疤ave r吧0, lr皚扒半mr矮
19、s lr,皚 spsr柏辦礙st鞍r lr,拌 sp,柏 #8 骯 sav搬e sps奧r昂藹搬哀昂埃 凹Prepa絆re fo礙r SVC白32 mo挨de. I熬RQs r懊emain絆 disa鞍bled.澳搬霸柏埃伴mr骯s r0,壩 cpsr瓣胺爸eo阿r r0,伴 r0, 挨#(mo礙de 扒SVC_M盎ODE)哎絆霸ms翱r sps斑r_cxs擺f, r0挨 俺為后面進(jìn)入疤svc模式啊做準(zhǔn)備 班h。拜岸襖埃 the b靶ranch盎 tabl按e mus板t imm胺ediat把ely f暗ollow懊 this辦 code百岸佰 斑扳襖an胺d lr,斑 lr, 板#0 x把0
20、f拌 進(jìn)入中壩斷前的mo哀de的后4哎位 凹白般#藹defin唉e USR頒_MODE昂 0 x胺把斑#白defin敗e FIQ啊_MODE啊 0 x皚岸安#背defin扳e IRQ板_MODE八 0 x拌氨靶#礙defin翱e SVC傲_MODE唉 0 x巴扳#白defin盎e ABT凹_MODE暗 0 x辦巴般#俺defin暗e UND搬_MODE按 0 xb愛(ài)半熬#背defin稗e SYS柏TEM_M板ODE 0奧x把f擺骯奧mo傲v r0,靶 sp壩翱辦ld骯r lr,皚 pc,矮 lr, 八lsl #稗2 如百果進(jìn)入中斷哎前是usr擺,則取出P斑C+4*0百的內(nèi)容,即辦_irq柏_u
21、sr般如果進(jìn)入百中斷前是s矮vc,則取胺出PC+4半*3的內(nèi)容叭,即_i般rq_sv背c癌白叭mo鞍vs pc皚, lr 拜 當(dāng)指令八的目標(biāo)寄存佰器是PC,哎且指令以S矮結(jié)束,則它絆會(huì)把 s拌psr的值按恢復(fù)給cp罷sr br辦anch 翱to ha皚ndler隘 in S罷VC mo稗de敖哀芭.e隘ndm挨吧熬.g暗lobl 埃_stu捌bs_st八art疤八_s壩tubs_把start按:扒安/*擺奧* I捌nterr傲upt d班ispat按cher扮*/鞍鞍絆ve愛(ài)ctor_敗stub 捌irq, 挨IRQ_M敖ODE, 把4百半邦.l傲ong _搬_irq_隘usr 啊 0 (U矮
22、SR_26頒 / US熬R_32)頒扮澳.l頒ong _拌_irq_疤inval般id 霸1 (FI柏Q_26 藹/ FIQ絆_32)斑襖礙.l芭ong _昂_irq_疤inval暗id 愛(ài)2 (IR昂Q_26 伴/ IRQ翱_32)奧唉芭.l艾ong _埃_irq_挨svc 敖 3 (S癌VC_26靶 / SV敖C_32)跋i。按用“irq愛(ài), IRQ俺_MODE百, 氨4”埃代替宏ve斑ctor_哀stub中擺的“nam埃e, mo跋de, c氨orrec版tion”壩,找到了我叭們中斷處理佰的入口位置皚為vect般or_ir巴q(宏里面吧的扳vecto傲r_na熬me跋)。 盎從上面代碼
23、哎中的注釋可拌以看出,根瓣據(jù)進(jìn)入中斷耙前的工作模佰式不同,程昂序下一步將奧跳轉(zhuǎn)到_i耙rq_us哀r 、或_鞍_irq_斑svc等位扒置。我們先巴選擇_i笆rq_us拜r作為下一挨步跟蹤的目骯標(biāo)。 拔v。哎3.3 _背_irq_皚usr的實(shí)白現(xiàn) arc擺harm笆kern疤elen版try-armv.S愛(ài)T。熬_irq矮_usr:骯俺稗us拔r_ent捌ry 后八面有解釋 擺敗骯岸kuser般_cmpx哀chg_c埃heck霸辦#if擺def C扒ONFIG昂_TRAC板E_IRQ翱FLAGS盎挨扮半bl tr芭ace_h壩ardir辦qs_of暗f凹阿#en捌dif佰扮襖笆get_t阿hre
24、ad般_info tsk 隘獲取當(dāng)前敖進(jìn)程的進(jìn)程懊描述符中的矮成員變量t俺hread疤_info隘的地址,并吧將該地址保暗存到寄存器挨tsk等于跋r9(在e辦ntry-白heade扮r.S中定扒義)按笆#if般def C按ONFIG靶_PREE巴MPT/霸如果定義了拌搶占,增加礙搶占數(shù)值 扮疤扳ld啊r r8,跋 tsk案, #TI白_PREE笆MPT 罷 get愛(ài) pree鞍mpt c凹o(jì)unt壩頒版ad矮d r7,八 r8, 啊#1 胺incre般ment 傲it安巴案st敗r r7,芭 tsk白, #TI氨_PREE八MPT叭礙#en翱dif柏W。愛(ài)irq_h澳andle柏r 中斷班處理
25、,我們啊最關(guān)心的地絆方,3.4氨節(jié)有實(shí)現(xiàn)過(guò)頒程。 跋稗#ifd懊ef CO礙NFIG霸_PREE唉MPT靶埃白ld辦r r0,矮 tsk耙, #TI拔_PREE埃MPT奧疤耙st藹r r8,扳 tsk瓣, #TI癌_PREE阿MPT氨佰霸te愛(ài)q r0,扮 r7愛(ài)傲八st靶rne r百0, r氨0, -r伴0班敖#end版if唉藹#ifd吧ef CO版NFIG_叭TRACE挨_IRQF搬LAGS隘罷暗bl哎 trac耙e_har皚dirqs昂_on把爸#en傲dif敗g。澳mov w啊hy, #哀0跋b 凹ret_t拜o_use辦r 盎中斷處理完芭成,返回中啊斷產(chǎn)生的位白置,3.7辦節(jié)有實(shí)現(xiàn)過(guò)
26、襖程埃 把t。岸上面代碼中澳的懊usr_e骯ntry叭是一個(gè)宏,笆主要實(shí)現(xiàn)了搬將usr模拔式下的寄存熬器、中斷返板回地址保存霸到堆棧中。跋Y。藹.macr跋o 愛(ài)usr_e艾ntry笆拔sub熬 sp, 扮sp, #昂S_FRA半ME_SI敖ZE 翱S_FRA耙ME_SI叭ZE的值在扳arch扳armk癌ernel百asm-霸offse翱ts.c霸霸 中罷定義 DE凹FINE(白S_FRA耙ME_SI叭ZE, s板izeof邦(stru板ct pt般_regs癌);實(shí)際板上等于72百4。傲八stmib唉 sp,愛(ài) r1 八- r12皚瓣叭皚ld八mia r拌0, r敗1 - r扒3哀稗壩ad把
27、d r0,鞍 sp, 斑#S_PC扮 he懊re fo瓣r int擺erloc氨k avo骯idanc伴e邦頒伴mo背v r4,扒 #-1 壩 伴 扳 按r。敖絆巴st辦r r1,佰 sp柏 sa辦ve th絆e re把a(bǔ)l r佰0 cop哎ied捌罷罷 伴from 頒the e壩xcept唉ion s敗tack巴I。疤辦板扳氨 敖We ar爸e now扒 read柏y to 笆fill 拔in th稗e rem伴ainin罷g bla襖nks o氨n the扳 stac扮k:襖巴霸暗阿埃 八r2 - 斑lr_,板 alre拜ady f阿ixed 跋up fo扒r cor盎rect 擺retu
28、r俺n/res按tart班翱阿 巴r3 - 唉spsr_澳瓣癌斑 擺r4 - 吧orig_辦r0 (s白ee pt昂_regs跋 defi安nitio暗n in 隘ptrac癌e.h)把跋熬俺巴矮 半Also,愛(ài) sepa白ratel啊y sav懊e sp_藹usr a擺nd lr稗_usr拔擺矮版笆鞍st艾mia r艾0, r熬2 - r版4半傲拌st辦mdb r敗0, s礙p, lr凹礙i。百奧唉頒埃 背Enabl叭e the耙 alig啊nment奧 trap隘 whil翱e in 巴kerne翱l mod昂e岸埃霸鞍align罷ment_敗trap 癌r0拌6。哎吧艾阿襖 跋Clear
29、襖 FP t熬o mar拔k the壩 firs安t sta霸ck fr芭ame拜擺哀隘擺跋ze礙ro_fp阿熬唉.e叭ndm啊c。捌上面的這段骯代碼主要在熬填充結(jié)構(gòu)體罷pt_re敗gs ,這癌里提到的s啊truct胺 pt_r矮egs,在愛(ài)inclu敗de/as襖m/ptr捌ace.h捌中定義。此癌時(shí)sp指向扳struc頒t pt_百regs。佰 爸m。絆拜stru扒ct pt阿_regs埃 扳板拜俺邦靶l(wèi)ong拌 ureg爸s18啊;擺霸挨;斑傲#de版fine 半ARM_c邦psr u拌regs笆16佰稗#define ARM_p翱c ure懊gs15啊懊哎#de哀fine 案AR傲M_
30、lr 叭uregs壩14傲八#de礙fine 壩ARM_s氨p ure百gs13壩阿般#de吧fine 壩ARM_i辦p ure絆gs12把百昂#de瓣fine 暗A(chǔ)RM_f礙p ure邦gs11罷澳凹#de阿fine 襖ARM_r澳10 ur爸egs1安0瓣吧#de笆fine 凹ARM_r靶9 ure啊gs9襖癌#de隘fine 板ARM_r安8 ure哎gs8叭翱#de安fine 盎ARM_r阿7 ure斑gs7版白#de罷fine 邦A(yù)RM_r跋6 ure搬gs6敗哀#de壩fine 搬ARM_r壩5 ure凹gs5叭懊#de拜fine 藹ARM_r襖4 ure挨gs4頒霸#de佰fin
31、e 般ARM_r胺3 ure敖gs3胺叭#de哎fine 伴ARM_r哎2 ure胺gs2按邦#de敖fine 扮ARM_r版1 ure懊gs1凹骯#de巴fine 敖ARM_r0 ure昂gs0般爸#de捌fine 捌ARM_O凹RIG_r胺0 ure邦gs17疤爸D。搬3.4 i藹rq_ha胺ndler哎的實(shí)現(xiàn)過(guò)程笆,壩arch拔armk八ernel把entr岸y-arm暗v.S頒y。凹.ma辦cro 百irq_h扮andle芭r稗吧傲g埃et_ir案qnr_p艾reamb靶l(wèi)e r5矮, lr愛(ài)耙柏吧在incl爸ude/a凹sm/ar哎ch-s奧3c胺2410/凹entry扒-macr拔
32、o.s中定拔義了宏ge鞍t_irq版nr_pr敖eambl疤e為空操作班,什么都不搬做靶斑哀1芭: get_irqn白r_and把_base俺 r0, 罷r6, r唉5, lr跋 判斷中昂斷號(hào),通過(guò)凹R0返回,叭3.5節(jié)有辦實(shí)現(xiàn)過(guò)程 凹拔懊m癌ovne 懊r1, s爸p哀耙懊傲柏拔哎 routine c愛(ài)alled扒 with把 r0 =把 irq 扒numbe哀r, r1唉 = st吧ruct 隘pt_re矮gs *把皚啊艾挨百a敗drne 隘lr, 1艾b壩鞍挨頒bne a礙sm_do傲_IRQ 案進(jìn)入中斷白處理。 板靶 壩藹案.柏endm按T。扮3.5 g靶et_ir罷qnr_a骯nd_
33、ba邦se中斷號(hào)板判斷過(guò)程半,incl熬ude/a艾sm/ar柏ch-s唉3c巴2410/壩entry板-macr扒o.s頒3。板.macr哀o get哎_irqn耙r_and拔_base絆, irq皚nr, irqsta辦t, ba扮se, t按mp懊柏m霸ov b柏ase, 翱#S瓣3C版24XX_辦VA_IR傲Q頒耙邦唉 try瓣 the 佰inter扮rupt 叭offse鞍t reg岸ister拜, sin按ce it襖 is t扒here襖鞍熬l版dr i壩rqsta百t, 皚 bas懊e, #I稗NTPND 啊襖傲t傲eq i擺rqsta扳t, #0伴疤辦b傲eq 盎1002f捌
34、暗l澳dr i靶rqnr,搬 b哀ase, 熬#INTO罷FFSET俺 澳 通過(guò)判翱斷INTO皚FFSET哎寄存器得到奧中斷位置氨 扳奧扮m搬ov t隘mp, #哀1安哎熬t昂st i白rqsta跋t, t巴mp, l瓣sl i背rqnr白斑拔b澳ne 耙1001f跋柏挨靶 th伴e num把ber s板pecif安ied i唉s not稗 a va擺lid i皚rq, s骯o try翱般八耙 and鞍 work伴 it o瓣ut fo版r our拔selve矮s壩襖m背ov i吧rqnr,澳 #0 吧 sta礙rt he扳re艾擺靶霸 wor辦k out吧 which irq哀 (if 啊a
35、ny) 哀we go壩t吧絆唉m拔ovs 八tmp, 懊irqs懊tat, 隘lsl#1半6襖靶盎a愛(ài)ddeq 盎irqnr, i皚rqnr,伴 #16柏板骯m百oveq 岸irqs白tat, 礙irqs版tat, 瓣lsr#1暗6絆班藹t骯st i笆rqsta鞍t, #0敗xff捌壩扒a拌ddeq 爸irqn敖r, i敗rqnr,氨 #8奧叭骯m靶oveq 吧irqs拌tat, 伴irqs骯tat, 藹lsr#8翱笆胺t熬st i背rqsta跋t, #0巴xf芭氨班a愛(ài)ddeq 襖irqn凹r, i拌rqnr,伴 #4瓣爸俺m拌oveq 襖irqs阿tat, 哀irqs熬tat, 跋lsr#
36、4哀按岸t百st i盎rqsta藹t, #0挨x3矮鞍捌a鞍ddeq 奧irqn癌r, i傲rqnr,百 #2笆扮伴m敗oveq 佰irqs盎tat, 胺irqs罷tat, 拜lsr#2阿瓣耙t辦st i埃rqsta叭t, #0跋x(chóng)1跋半襖a斑ddeq 白irqn癌r, i懊rqnr,熬 #1絆笆叭爸 we 啊have 罷the v瓣alue頒案1001隘:半x。癌捌add拜s ir案qnr, 哀irqn按r, #I翱RQ_EI背NT0 疤加上中斷號(hào)瓣的基準(zhǔn) 數(shù)澳值,得到最敖終的中斷號(hào)稗,注意:此斑時(shí)沒(méi)有考慮吧子中斷的具暗體情況,(襖子中斷的問(wèn)笆題后面會(huì)有搬講解)。I傲RQ_EI斑NT0在i敗
37、nclud吧e/asm/arch絆- s拜3c拜2410/柏irqs.靶h中定義.礙從這里可以阿看出,中斷辦號(hào)的具體值捌是有平臺(tái)相爸關(guān)的代碼決八定的,和硬俺件中斷掛起壩寄存器中的壩中斷號(hào)是不班等的。柏 阿U。把1002:哀盎疤壩 exi耙t her氨e, Z 凹flag 案unset凹 if I佰RQ安叭笆.endm阿A。皚3.6 叭asm_d藹o_IRQ伴實(shí)現(xiàn)過(guò)程,拜arch/擺arm/k翱ernel按/irq.胺c 拌U。伴asmli搬nkage跋 void埃 _ex傲cepti芭on 盎asm_d半o_IRQ跋(傲unsigned i捌nt ir扳q, st拌ruct 唉pt_re柏gs
38、 *r扮egs)芭敖辦稗矮s扳truct敗 pt_regs *扒old_r版egs =按 set_哀irq_r邦egs(r礙egs);挨傲扒s矮truct伴 irq_般desc 胺*desc把 = ir昂q_des百c + i案rq;/骯根據(jù)中斷號(hào)哎找到對(duì)應(yīng)的般irq_d案esc俺白懊/鞍*八盎爸*爸 Some芭 hard埃ware 擺gives奧 rand骯omly 啊wrong稗 inte埃rrupt俺s. Ra拌ther芭扳拜*挨 than跋 cras叭hing,扮 do s奧ometh斑ing s埃ensib把le.安礙八*礙/骯叭霸i胺f (ir骯q = 版NR_IR耙QS)板礙八d
39、百esc =傲 &bad擺_irq_柏desc;襖凹昂i吧rq_en捌ter()跋;/沒(méi)做背什么特別的靶工作,可以佰跳過(guò)不看 昂百叭d襖esc_h辦andle八_irq(般irq, desc)敗;/藹 根據(jù)中斷矮號(hào)和des啊c進(jìn)入中斷襖處理 藹敖敗/熬* AT9挨1 spe搬cific敖 work斑aroun伴d */氨翱搬i佰rq_fi巴nish(澳irq);氨伴罷i案rq_ex骯it();扮拜壩s挨et_ir按q_reg爸s(old爸_regs吧);骯把把K。安stati啊c inl愛(ài)ine v絆oid 唉desc_傲handl瓣e_irq艾(unsi翱gned 敗int i挨rq, s半
40、truct爸 irq_俺desc 頒*desc矮)襖艾絆稗八隘俺desc哀-han案dle_i拜rq(ir扳q, de隘sc);/癌/中斷處理巴 愛(ài)壩岸背U。安上述asm瓣linka凹ge vo白id _傲excep岸tion 邦asm_d愛(ài)o_IRQ奧(unsi靶g(shù)ned 盎int i骯rq, s爸truct邦 pt_r澳egs *霸regs)岸使用了as叭mlink拔age標(biāo)識(shí)傲。那么這個(gè)襖標(biāo)識(shí)的含義隘如何理解呢瓣? 愛(ài)該符號(hào)定義哎在kern哀el/in扮clude跋/linu盎x/lin案kage.擺h中,如下白所示: 斑S。暗#incl扒ude /各個(gè)具體般處理器在此翱文件中定義爸as
41、mli把nkage耙礙#i扮fdef 矮_cpl凹usplu扒s巴挨#d擺efine昂 CPP_搬ASMLI伴NKAGE敖 exte佰rn C背拔矮#e拜lse把礙#d絆efine巴 CPP_唉ASMLI頒NKAGE按哀#e敗ndif邦T。癌#ifnd敗ef as岸mlink奧age/愛(ài)如果以前沒(méi)氨有定義as阿mlink版age叭瓣#d俺efine鞍 asml頒inkag芭e CPP拔_ASML柏INKAG吧E阿拌#e跋ndif奧X。爸對(duì)于ARM稗處理器的,扳沒(méi)有定義a佰smlin襖kage,罷所以沒(méi)有意扮義(不要以唉為參數(shù)是從疤堆棧傳遞的把,對(duì)于AR矮M平臺(tái)來(lái)說(shuō)瓣還是符合A俺TPCS過(guò)叭程調(diào)
42、用標(biāo)準(zhǔn)凹,通過(guò)寄存辦器傳遞的)伴。 邦s。班但對(duì)于X8搬6處理器的吧翱中是這樣定邦義的:埃l。按#defi盎ne as罷mlink捌age C阿PP_AS爸MLINK絆AGE _爸_attr芭ibute礙_(r佰egpar襖m(0)阿)班T。頒表示函數(shù)的挨參數(shù)傳遞是愛(ài)通過(guò)堆棧完霸成的。藹3.7 描佰述3.3節(jié)昂中的霸ret_t拔o_use辦r 辦中斷返回過(guò)懊程,/ar邦ch/ar叭m/ker翱nel/e艾ntry-翱commo案n.S扒r。安ENTRY熬(ret_凹to_us跋er)拔昂re盎t_slo捌w_sys凹call:奧斑翱d拜isabl扮e_irq隘 di瓣sable靶 inte百r
43、rupts敖耙l礙dr r1皚, ts板k, #T隘I_FLA敖GS班笆安t疤st r1凹, #_T拌IF_WO叭RK_MA癌SK奧八b敗ne wo柏rk_pe阿nding襖擺no笆_work擺_pend拜ing:伴霸霸/奧* per笆form 阿archi昂tectu罷re sp氨ecifi盎c act斑ions 凹befor藹e use昂r ret阿urn *敖/板唉辦a吧rch_r艾et_to爸_user八 r1, 扳lr盎r。壩半 sl哎ow_re罷store搬_user白_regs班襖柏l拔dr r1扮, sp壩, #S_矮PSR 按 get傲 call頒ing c懊psr敖奧按l邦
44、dr lr背, sp藹, #S_暗PC! 霸 get疤 pc耙骯懊m按sr sp哎sr_cx艾sf, r扒1 s埃ave i靶n sps昂r_svc埃案安l阿dmdb 按sp, 霸r0 - 傲lr 班 get敗 call岸ing r把0 - l挨r芭哎版m藹ov r0拔, r0吧佰俺a按dd sp哀, sp,辦 #S_F埃RAME_百SIZE 埃- S_P挨C癌熬壩m伴ovs p佰c, lr案 re板turn 拌& mov骯e sps扒r_svc背 into拜 cpsr百O。版第三章主要把跟蹤了從中斷發(fā)生到調(diào)爸用到對(duì)應(yīng)中奧斷號(hào)的爸desc-扒hand壩le_ir哎q(irq懊, des艾c)耙
45、中斷函數(shù)的壩過(guò)程。后面哎的章節(jié)還會(huì)奧繼續(xù)講解后埃面的內(nèi)容。百C。隘四、中斷處板理模型 氨要想弄清楚desc-佰hand半le_ir笆q(irq埃, des疤c)和我們扒注冊(cè)的中斷暗有什么關(guān)聯(lián)頒,就要了解拌中斷處理模凹型了。 瓣O。暗4.1 中凹斷處理模型鞍結(jié)構(gòu) 骯中斷處理模型如下圖所安示,班其中NR_擺IRQS表胺示最大的中伴斷號(hào),在i傲nclud啊e/asm唉/arch扳/irq.暗h中定義。安 搬L。暗irq_d跋esc板是一個(gè)指向頒irq_d扳esc_t八結(jié)構(gòu)的數(shù)組爸, irq邦_desc哎_t結(jié)構(gòu)是拔各個(gè)設(shè)備中耙斷服務(wù)例程稗的描述符。傲Irq_d唉esc_t扒結(jié)構(gòu)體中的胺成員act霸i
46、on指向盎該中斷號(hào)對(duì)叭應(yīng)的irq耙actio靶n結(jié)構(gòu)體 哀鏈表。Ir拔qacti礙on結(jié)構(gòu)體隘定義在in扳clude案/linu啊x/int版errup班t.h中,辦如下:哀z。骯truct凹 irqa氨ction藹 愛(ài)瓣ir鞍q_han柏dler_佰t han敖dler;伴 /中斷敗處理函數(shù),八注冊(cè)時(shí)提供百澳un案signe頒d lon懊g fla捌gs; /傲/中斷標(biāo)志襖,注冊(cè)時(shí)提柏供啊挨cp愛(ài)umask佰_t ma扒sk; /哀/中斷掩碼氨埃co凹nst c盎har *般name;斑 /中斷佰名稱(chēng)邦啊vo案id *d辦ev_id澳; /設(shè)疤備id,本壩文后面部分伴介紹中斷共岸享時(shí)會(huì)詳細(xì)扳
47、說(shuō)明這個(gè)參背數(shù)的作用骯盎struct 拜irqac凹tion 伴*next佰; /如翱果有中斷共芭享,則繼續(xù)埃執(zhí)行,骯安in奧t irq藹; /中敖斷號(hào),注冊(cè)敗時(shí)提供盎壩st壩ruct 擺proc_佰dir_e般ntry 挨*dir;澳 /指向哎IRQn相隘關(guān)的/pr盎oc/ir鞍q/n目錄斑的描述符板擺;昂m。扮在注冊(cè)中斷唉號(hào)為irq板的中斷服務(wù)擺程序時(shí),系翱統(tǒng)會(huì)根據(jù)注罷冊(cè)參數(shù)封裝般相應(yīng)的ir挨qacti巴on結(jié)構(gòu)體拔。并把中 扮斷號(hào)為ir吧q的irq案action結(jié)構(gòu)體寫(xiě)懊入irq_皚desc 暗irq阿-act八ion。這百樣就把設(shè)備芭的中斷請(qǐng)求笆號(hào)與該設(shè)備背的中斷服務(wù)艾例程irq按ac
48、tio氨n聯(lián)系在一岸起了。樣當(dāng)稗CPU接收扳到中斷請(qǐng)求拔后,就可 頒以根據(jù)中斷瓣號(hào)通過(guò)ir巴q_des骯c 找巴到該設(shè)備的襖中斷服務(wù)程疤序。 白n。笆4.2 中佰斷共享的處八理模型癌共享中斷的襖不同設(shè)備的胺iqrac癌tion結(jié)頒構(gòu)體都會(huì)添盎加進(jìn)該中斷襖號(hào)對(duì)應(yīng)的i伴rq_de壩sc結(jié)構(gòu)體般的 act哎ion成員斑所指向的i瓣rqact骯ion鏈表愛(ài)內(nèi)。當(dāng)內(nèi)核胺發(fā)生中斷時(shí)礙,它會(huì)依次啊調(diào)用該鏈表邦內(nèi)所有的h瓣andle霸r函數(shù)。因伴此,若驅(qū)動(dòng)案程序需要使笆用共享中 扳斷機(jī)制,其把中斷處理函辦數(shù)必須有能稗力識(shí)別是否啊是自己的硬胺件產(chǎn)生了中埃斷。通常是挨通過(guò)讀取該阿硬件設(shè)備提拔供的中斷f邦lag標(biāo)志
49、芭位進(jìn)行判斷懊。也就是說(shuō)胺不是任何設(shè)扳備都 可以吧做為中斷共罷享源的,它罷必須能夠通辦過(guò)的它的中挨斷flag芭判斷出是否笆發(fā)生了中斷哀。矮中斷共享的瓣注冊(cè)方法是邦:板I。罷int r氨equest_irq俺(unsi罷gned 爸int i案rq, i艾rq_ha矮ndler搬_t ha八ndler敗,阿埃拜IRQF_半SHARE柏D捌, con隘st ch礙ar *d絆evnam跋e, vo扒id *d白ev_id笆) 昂j。哀很多權(quán)威資澳料中都提到藹,中斷共享阿注冊(cè)時(shí)的注盎冊(cè)函數(shù)中的跋dev_i笆d參數(shù)是必胺不可少的,傲并且dev昂_id的值搬必須唯一。伴那么這里提按供唯一的d擺ev_id
50、稗值的究竟是耙做什么用的翱? 癌A。骯根據(jù)我們前隘面中斷模型翱的知識(shí),可按以看出發(fā)生澳中斷時(shí),內(nèi)癌核并不判斷敗究竟是共享疤中斷線上的按哪個(gè)設(shè)備產(chǎn)捌生了中斷,罷它會(huì)循環(huán) 按執(zhí)行所有該跋中斷線上注藹冊(cè)的中斷處罷理函數(shù)(即熬irqac搬t(yī)ion-癌hand敗ler函數(shù)佰)。因此i扳rqact佰ion-安handl哎er函數(shù)有藹責(zé) 任識(shí)別板出是否是自礙己的硬件設(shè)氨備產(chǎn)生了中疤斷,然后再胺執(zhí)行該中斷扳處理函數(shù)。疤通常是通過(guò)案讀取該硬件按設(shè)備提供的盎中斷fla柏g標(biāo)志位進(jìn)安行判斷。那頒既然ker白nel循 邦環(huán)執(zhí)行該中百斷線上注冊(cè)拔的所有ir稗qacti板on-h瓣andle胺r函數(shù),把柏識(shí)別究竟是胺哪個(gè)
51、硬件設(shè)爸備產(chǎn)生了中澳斷這件事交皚給中斷處理艾函數(shù)本身去背做,那 r埃eques班t_irq霸的dev_扮id參數(shù)究把竟是做什么哀用的? 矮z。挨很多資料中捌都建議將設(shè)啊備結(jié)構(gòu)指針挨作為dev凹_id參數(shù)扮。在中斷到哎來(lái)時(shí),迅速爸地根據(jù)硬件安寄存器中的埃信息比照傳板入的 de挨v_id參跋數(shù)判斷是否安是本設(shè)備的邦中斷,若不拜是,應(yīng)迅速挨返回。這樣壩的說(shuō)法沒(méi)有版問(wèn)題,也是愛(ài)我們編程時(shí)頒都遵循的方矮法。但事實(shí)芭上并不能夠拌說(shuō)明為什么扳中斷共享必昂 須要設(shè)置懊dev_i敗d。 疤J。背下面解釋一岸下dev_奧id參數(shù)為埃什么必須的爸,而且是必版須唯一的。傲 懊當(dāng)調(diào)用fr皚ee_irq注銷(xiāo)中斷扮處理函數(shù)
52、時(shí)斑(通常卸載背驅(qū)動(dòng)時(shí)其中疤斷處理函數(shù)柏也會(huì)被注銷(xiāo)扮掉),因?yàn)榘}dev_i艾d是唯一 八的,所以可鞍以通過(guò)它來(lái)板判斷從共享扮中斷線上的稗多個(gè)中斷處班理程序中刪氨除指定的一般個(gè)。如果沒(méi)班有這個(gè)參數(shù)唉,那么ke敗rnel不背可能知道給氨定的中斷線扒上到底要?jiǎng)h背除哪 一個(gè)斑處理程序。昂X。安注銷(xiāo)函數(shù)定般義在Ker笆nel/i皚rq/ma背nage.瓣c中定義:按 般v熬oid f哎ree_i搬rq(un伴signed int扒 irq,耙 void把 *dev鞍_id)案J。白五、S3C疤2410子礙中斷的注冊(cè)柏的實(shí)現(xiàn) 案5.1 S襖3C241盎0子中斷注拌冊(cè)問(wèn)題的提艾出案參看3.5擺節(jié)中判斷中哎斷
53、號(hào)的方法耙,可以看到扮只是通過(guò)S半3C241案0中斷控制爸器中的IN辦TOFFS捌ET寄存器芭來(lái)判斷的。擺對(duì)于邦I(lǐng)NTPN板D昂中的EIN礙T4_7、艾EINT8哎_23、I背NT_UA斑RT0、I骯NT_AD跋C 等帶有俺子中斷的向靶量,INT稗OFFSE昂T無(wú)法判斷拌出具體的中安斷號(hào)。平臺(tái)靶留給我們的氨注冊(cè)方法如搬下: 稗B。凹在incl耙ude/a斑sm/ar板ch/irqs.h中艾有類(lèi)似如下百定義:皚2。伴/* in阿terru氨pts g拌enera癌ted f稗r(nóng)om t啊he ex隘terna般l int暗errup叭ts so敗urces啊 */翱#藹defin巴e IRQ鞍_
54、EINT拜4 S3C挨2410_芭IRQ(3斑2) /* 48 *翱/翱#胺defin辦e IRQ哀_EINT壩5 S3C辦2410_暗IRQ(3挨3)芭#扒defin藹e IRQ辦_EINT板6 S3C版2410_罷IRQ(3瓣4)拔#扮defin辦e IRQ霸_EINT藹7 S3C啊2410_俺IRQ(3皚5)班#阿defin癌e IRQ頒_EINT敗8 S3C傲2410_把IRQ(3般6)頒#扮defin哀e IRQ巴_EINT阿9 S3C盎2410_拌IRQ(3矮7)扒#翱defin吧e IRQ背_EINT皚10 S3隘C2410艾_IRQ(爸38)埃#叭defin澳e IRQ哎_EI
55、NT把11 S3頒C2410暗_IRQ(芭39)頒#絆defin傲e IRQ八_EINT唉12 S3佰C2410奧_IRQ(邦40)芭#安defin藹e IRQ啊_EINT八13 S3柏C2410傲_IRQ(阿41)辦#巴defin扒e IRQ翱_EINT捌14 S3唉C2410哎_IRQ(氨42)巴#隘defin拔e IRQ礙_EINT熬15 S3唉C2410哎_IRQ(邦43)扮#把defin按e IRQ懊_EINT凹16 S3頒C2410白_IRQ(絆44)拜#邦defin哎e IRQ礙_EINT翱17 S3柏C2410頒_IRQ(靶45)罷#扳defin矮e IRQ爸_EINT搬18 S3艾C2410唉_IRQ(哀46)襖#拜defin熬e IRQ拜_EINT柏19 S3隘C2410辦_IRQ(吧47)熬#吧defin柏e IRQ翱_EINT案20 S3唉C2410般_IRQ(哀48) /安* 64 案*/笆#八defin礙e IRQ澳_EINT絆21
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026西安市第二十三中學(xué)招聘?jìng)淇碱}庫(kù)及1套參考答案詳解
- 湘中幼兒師范高等專(zhuān)科學(xué)校《新媒體數(shù)據(jù)分析與應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 南寧職業(yè)技術(shù)學(xué)院《機(jī)械精度設(shè)計(jì)基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 新疆第二醫(yī)學(xué)院《人力資源管理應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 蘭考三農(nóng)職業(yè)學(xué)院《表演導(dǎo)演藝術(shù)基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣州涉外經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院《生物化學(xué)雙語(yǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 南京體育學(xué)院《現(xiàn)代功能材料》2023-2024學(xué)年第二學(xué)期期末試卷
- 牡丹江大學(xué)《導(dǎo)演基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京農(nóng)學(xué)院《電競(jìng)解說(shuō)策略》2023-2024學(xué)年第二學(xué)期期末試卷
- 河北工業(yè)大學(xué)《語(yǔ)文教學(xué)設(shè)計(jì)與教學(xué)技能訓(xùn)練》2023-2024學(xué)年第二學(xué)期期末試卷
- 裝修工程施工質(zhì)量檢查標(biāo)準(zhǔn)
- 供銷(xiāo)大集:中國(guó)供銷(xiāo)商貿(mào)流通集團(tuán)有限公司擬對(duì)威海集采集配商貿(mào)物流有限責(zé)任公司增資擴(kuò)股所涉及的威海集采集配商貿(mào)物流有限責(zé)任公司股東全部權(quán)益價(jià)值資產(chǎn)評(píng)估報(bào)告
- 干細(xì)胞臨床研究:知情同意的倫理審查要點(diǎn)
- 檢測(cè)實(shí)驗(yàn)室安全管理與操作規(guī)程
- 2025云南保山電力股份有限公司招聘(100人)筆試歷年參考題庫(kù)附帶答案詳解
- (新教材)2026年人教版八年級(jí)下冊(cè)數(shù)學(xué) 21.1 四邊形及多邊形 課件
- 教師職業(yè)行為規(guī)范手冊(cè)
- 急性胸痛患者的快速識(shí)別與護(hù)理配合
- 現(xiàn)代混凝土試驗(yàn)與檢測(cè) 課件 11混凝土拌合物凝結(jié)時(shí)間檢測(cè)計(jì)算實(shí)例
- 中國(guó)血液透析血管通路超聲介入治療專(zhuān)家共識(shí)(2024 年版)解讀
- GB/T 44828-2024葡萄糖氧化酶活性檢測(cè)方法
評(píng)論
0/150
提交評(píng)論