版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、ARM920T的CP15協(xié)處理器ARM920T的MMU和Cache都集成在 CP15協(xié)處理器中,MMU和Cache的聯(lián)系非常密 切,本節(jié)首先從總體上介紹MMU、Cache和CPU核是如何協(xié)同工作的,后面兩節(jié)分別講解MMU和Cache的細(xì)節(jié)。三星公司的 S3C2410是一種很常見的采用 ARM920T的芯片,涉及 到具體的芯片時(shí)我們以S3C2410為例。以下是CP15協(xié)處理器的寄存器列表(摘自 S3C2410用戶手冊(cè)),和CPU核的r0到r15 寄存器一樣,協(xié)處理器寄存器也是用0到15來編號(hào),在指令中用 4個(gè)bit來表示寄存器編號(hào),有些協(xié)處理器寄存器有影子寄存器,這種情況下對(duì)同一個(gè)編號(hào)的寄存器使
2、用不同的選項(xiàng)讀或者寫實(shí)際上訪問的是不同的寄存器,后文用到某個(gè)寄存器時(shí)會(huì)詳細(xì)說明它的功能。表1. CP15協(xié)處理器的寄存器列表寄存器編號(hào)功能0ID CODE. Cache Tpe (RQ)1Control Egistwr2TransIsticri table baste (TTECi register3CoiHincontrol register4一Reserved-5Faunt status registerBFaull t address reg i ster7Cache operat i onaTLB operationgCache lock down refi&ter10TLB
3、lock down rste11-12 & Userved13Proc ID15Reserved for test purpose對(duì)CP15協(xié)處理器的操作使用 mcr和mrc兩條協(xié)處理器指令,這兩條指令的記法是從后往前看:mcr是把r (CPU核寄存器)中的數(shù)據(jù)傳送到c (協(xié)處理器寄存器)中, mrc則是把c (協(xié)處理器寄存器)中的數(shù)據(jù)傳送到r (CPU核寄存器)中。對(duì) CP15協(xié)處理器的所有操作都是通過CPU核寄存器和CP15寄存器之間交換數(shù)據(jù)來完成的。下圖是協(xié)處理器的指令格式(摘自S3C2410用戶手冊(cè))。MCRMRCfDarid P15jCRm opeode_2找 37 N W5
4、 ¥鼻IE IS 1211 8 7 S 浦 3i U圖8.協(xié)處理器指令格式和其它ARM指令一樣,Cond是條件碼,bit 20是L位,表示該指令是讀還是寫,如果L=1就表示Load,從外面讀到 CPU核中,也就是 mrc指令,如果L=0就表示Store,也就是 mcr指令。11:8這四個(gè)位是協(xié)處理器編號(hào),CP15的編號(hào)是15,因此是4個(gè)1。CRn是CP15寄存器編號(hào),Rd是CPU核寄存器編號(hào),各占 4個(gè)位。對(duì)于 CP15協(xié)處理器,規(guī)定 opcode1 應(yīng)該為0, opcode2和CRm是指令的選項(xiàng),具體含義取決于不同的寄存器。雖然這里介紹了協(xié)處理器的寄存器編號(hào)和相關(guān)指令,但讀者只需了
5、解對(duì)協(xié)處理器是這樣進(jìn)行操作的就可以了,我們的重點(diǎn)是講解 MMU和Cache的基本概念,具體各種操作的指令該怎么寫可以參考S3C2410用戶手冊(cè)?!斑M(jìn)程地址空間是獨(dú)立的”來看,好像是PA實(shí)際上并不是這么簡(jiǎn)單,通常要有MMU是如何把 VA映射成 PA的呢?從圖 4 有一張VA轉(zhuǎn)PA的表,給一個(gè)VA查表就可以查到個(gè)多級(jí)的查表過程,對(duì)于ARM體系結(jié)構(gòu)是兩級(jí)查表,對(duì)于一些64位體系結(jié)構(gòu)則需要更多級(jí)??聪旅娴膱D示。圖 9. Translation Table Walk首先將32位的VA3分成三段,前兩段31:20和19:12作為兩次查表的索引,第三段11:0 作為頁(yè)內(nèi)的偏移。查表的步驟如下:1 CP15協(xié)
6、處理器的TTB寄存器(看看表1 “CP15協(xié)處理器的寄存器列表” 中這是第幾 個(gè)寄存器?)中保存著第一級(jí)頁(yè)表( Translation Table)的基地址,這個(gè)基地址指的是 PA, 也就是說頁(yè)表是直接按這個(gè)地址存在物理內(nèi)存中的。2以TTB中的內(nèi)容為基地址,以VA31:20為索引在表中查出一項(xiàng)(想一下這個(gè)表中一共有多少項(xiàng)?),這個(gè)表項(xiàng)中保存著第二級(jí)頁(yè)表( Coarse Page Table的基地址,同樣是物理 地址,也就是說第二級(jí)頁(yè)表也是直接按這個(gè)地址存在物理內(nèi)存中的。3以VA19:12為索引在第二級(jí)頁(yè)表中查出一項(xiàng)(想一下這個(gè)表中一共有多少項(xiàng)?),這個(gè)表項(xiàng)中就保存著物理頁(yè)面的基地址,先前我們說
7、虛擬內(nèi)存管理是以頁(yè)為單位的,一個(gè)虛擬內(nèi)存的頁(yè)映射到一個(gè)物理內(nèi)存的頁(yè)框,從這里就可以得到印證,因?yàn)椴楸硎且皂?yè)為單位來查的。4有了物理頁(yè)面的基地址之后,加上VA11:0這個(gè)偏移量就可以取出相應(yīng)地址上的數(shù)據(jù)(想一下一個(gè)頁(yè)是多少字節(jié)?)。這個(gè)過程稱為 Translation Table Walk, Walk這個(gè)詞用得非常形象。 從TTB走到一級(jí)頁(yè)表, 又走到二級(jí)頁(yè)表,又走到物理頁(yè)面,一次尋址其實(shí)是三次訪問物理內(nèi)存。注意這個(gè)“走”的過程完全是硬件做的,每次CPU尋址時(shí)MMU就自動(dòng)完成以上四步,不需要編寫指令指示MMU去做,前提是操作系統(tǒng)要維護(hù)頁(yè)表項(xiàng)的正確性,每次分配內(nèi)存時(shí)填寫相應(yīng)的頁(yè)表項(xiàng), 每次釋放內(nèi)存
8、時(shí)清除相應(yīng)的頁(yè)表項(xiàng),在必要的時(shí)候分配或釋放整個(gè)頁(yè)表。有了以上基本概念,我們來看CPU訪問內(nèi)存時(shí)的硬件操作順序(摘自ARM參考手冊(cè))。Acc«5 conkroi24IIP2ARM12C.Bbi4Virkdl addixru <VAjnd wtile bufferPliysicai adidirwi(Wmemory圖10. CPU訪問內(nèi)存時(shí)的硬件操作順序我們以CPU讀內(nèi)存為例解釋一下圖中的步驟,各步驟在圖中有對(duì)應(yīng)的標(biāo)號(hào)。1 CPU核(圖中的 “ ARM” 框)發(fā)出 VA請(qǐng)求讀數(shù)據(jù),TLB (Translation Lookaside Buffer) 接收到該地址。TLB是MMU中的
9、一塊高速緩存 (也是一種Cache),它緩存最近查找過的 VA 對(duì)應(yīng)的頁(yè)表項(xiàng),如果 TLB里緩存了當(dāng)前 VA的頁(yè)表項(xiàng)就不必做 Translation Table Walk 了,否 則去物理內(nèi)存中讀出頁(yè)表項(xiàng)保存在TLB中,TLB緩存可以減少訪問物理內(nèi)存的次數(shù)。2頁(yè)表項(xiàng)中不僅保存著物理頁(yè)面的基地址,還保存著權(quán)限位和是否允許Cache的標(biāo)志。MMU首先檢查權(quán)限位,如果沒有訪問權(quán)限,就引發(fā)一個(gè)異常給 CPU核。然后檢查是否允許 Cache,如果允許 Cache就啟用Cache和CPU核互操作,圖中的"C, B bits”可以理解為選通 線,后面再詳細(xì)解釋這兩個(gè)位的作用。3如果不允許Cache
10、,則直接發(fā)出PA從物理內(nèi)存中讀取數(shù)據(jù)到CPU核。4如果允許Cache,則以VA為索引到Cache中查找是否緩存了要讀取的數(shù)據(jù),如果Cache中已經(jīng)緩存了該數(shù)據(jù)(稱為Cache Hit)則直接返回給 CPU核,如果Cache中沒有緩存該數(shù)據(jù)(稱為Cache Miss),則發(fā)出PA從物理內(nèi)存中讀取數(shù)據(jù)并緩存到Cache中,同時(shí)返回給CPU核。然而Cache并不是只取CPU核所要的數(shù)據(jù),而是把相鄰的數(shù)據(jù)都取上來緩存,這 稱為一個(gè) Cache Line。ARM920T的Cache Line是32字節(jié),例如CPU核要讀取地址 0x134-0x137 的4字節(jié)數(shù)據(jù),Cache會(huì)把地址0x120-0x13f
11、 (對(duì)齊到32字節(jié)地址邊界) 的32字節(jié)都取上來 緩存。ARM926EJ-S/ARM920TU 處理器 CP14, CP15羊解ARM微處理器可支持多達(dá) 16個(gè)協(xié)處理器,用于各種協(xié)處理操作,在程序執(zhí)行的過程中, 每個(gè)協(xié)處理器只執(zhí)行針對(duì)自身的協(xié)處理指令,忽略ARM處理器和其他協(xié)處理器的指令。ARM的協(xié)處理器指令主要用于ARM處理器初始化 ARM協(xié)處理器的數(shù)據(jù)處理操作,以及在ARM處理器的寄存器和協(xié)處理器的寄存器之間傳送數(shù)據(jù),和在ARM協(xié)處理器的寄存器和存儲(chǔ)器之間傳送數(shù)據(jù)。ARM協(xié)處理器指令包括以下 5條:CDP協(xié)處理器數(shù)操作指令LDC協(xié)處理器數(shù)據(jù)加載指令STC協(xié)處理器數(shù)據(jù)存儲(chǔ)指令MCR ARM處
12、理器寄存器到協(xié)處理器寄存器的數(shù)據(jù)傳送指令MRC協(xié)處理器寄存器到 ARM處理器寄存器的數(shù)據(jù)傳送指令 1、CDP指令CDP指令的格式為:CDP徐件協(xié)處理器編碼,協(xié)處理器操作碼1,目的寄存器,源寄存器 1,源寄存器2,協(xié)處理器操作碼 2。 CDP指令用于ARM處理器通知 ARM協(xié)處理器執(zhí)行特定的操作,若協(xié)處 理器不能成功完成特定的操作,則產(chǎn)生未定義指令異常。其中協(xié)處理器操作碼1和協(xié)處理器操作碼2為協(xié)處理器將要執(zhí)行的操作,目的寄存器和源寄存器均為協(xié)處理器的寄存器, 指令不涉及ARM處理器的寄存器和存儲(chǔ)器。指令示例:CDP P3 , 2 , C12 , C10 , C3 , 4 ;該指令完成協(xié)處理器P3
13、的初始化 2、LDC指令LDC指令的格式為:LDC采件L協(xié)處理器編碼,目的寄存器,源寄存器LDC指令用于將源寄存器所指向的存儲(chǔ)器中的字?jǐn)?shù)據(jù)傳送到目的寄存器中,若協(xié)處理器不能成功完成傳送操作,則產(chǎn)生未定義指令異常。 其中,L選項(xiàng)表示指令為長(zhǎng)讀取操作,如用于雙精度數(shù)據(jù)的傳輸。指令示例:LDC P3 , C4 , R0;將ARM處理器的寄存器 R0所指向的存儲(chǔ)器中的字?jǐn)?shù)據(jù)傳送到協(xié) 處理器P3的寄存器 C4中。3、STC指令STC指令的格式為:STC條件L協(xié)處理器編碼,源寄存器,目的寄存器STC指令用于將源寄存器中的字?jǐn)?shù)據(jù)傳送到目的寄存器所指向的存儲(chǔ)器中,若協(xié)處理器不能成功完成傳送操作,則產(chǎn)生未定義指
14、令異常。其中,L選項(xiàng)表示指令為長(zhǎng)讀取操作,如用于 雙精度數(shù)據(jù)的傳輸。指令示例:STC P3 , C4 , R0;將協(xié)處理器 P3的寄存器 C4中的字?jǐn)?shù)據(jù)傳送到 ARM處理器的寄 存器R0所指向的存儲(chǔ)器中。4、MCR指令MCR指令的格式為:MCR條件協(xié)處理器編碼,協(xié)處理器操作碼1,源寄存器,目的寄存器 1,目的寄存器2,協(xié)處理器操作碼2。MCR指令用于將ARM處理器寄存器中的數(shù)據(jù)傳送到協(xié)處理器寄存器中,若協(xié)處理器不能成功完成操作,則產(chǎn)生未定義指令異常。其中協(xié)處理器操作碼1和協(xié)處理器操作碼 2為協(xié)處理器將要執(zhí)行的操作,源寄存器為ARM處理器的寄存器,目的寄存器1和目的寄存器2均 為協(xié)處理器的寄存器
15、。指令示例:MCR P3, 3, R0, 04, C5, 6;該指令將 ARM處理器寄存器 R0中的數(shù)據(jù)傳送到協(xié)處理器P3的寄存器04和C5中。5、MRC指令MRC指令的格式為:MRC條件協(xié)處理器編碼,協(xié)處理器操作碼1,目的寄存器,源寄存器 1,源寄存器2,協(xié)處理器操作碼2。MRC指令用于將協(xié)處理器寄存器中的數(shù)據(jù)傳送到ARM處理器寄存器中,若協(xié)處理器不能成功完成操作,則產(chǎn)生未定義指令異常。其中協(xié)處理器操作碼1和協(xié)處理器操作碼 2為協(xié)處理器將要執(zhí)行的操作,目的寄存器為ARM處理器的寄存器,源寄存器1和源寄存器2均為協(xié)處理器的寄存器。指令示例:MRC P3, 3, R0, C4, C5, 6;該指
16、令將協(xié)處理器 P3的寄存器中的數(shù)據(jù)傳送到ARM處理器寄存器中.The ARM920T有兩個(gè)具體協(xié)處理器CP14調(diào)試通信通道協(xié)處理器 調(diào)試通信通道協(xié)處理器 DCC(the Debug Communications Channel)提供了兩個(gè)32bits寄存器用于傳送數(shù)據(jù),還提供了6bits通信數(shù)據(jù)控制寄存器控制寄存器中的兩個(gè)位提供目標(biāo)和主機(jī)調(diào)試器之間的同步握手。通信數(shù)據(jù)控制寄存器以下指令在Rd中返回控制寄存器的值:31 30 29 28 272 1 00010,;VRMRC p14, 0, Rd, c0, c0此控制寄存器中的兩個(gè)位提供目標(biāo)和主機(jī)調(diào)試器之間的同步握手:位1 (W位) 從目標(biāo)的角度
17、表示通信數(shù)據(jù)寫入寄存器是否空閑:W = 0目標(biāo)應(yīng)用程序可以寫入新數(shù)據(jù)。W =1主機(jī)調(diào)試器可以從寫入寄存器中掃描出新數(shù)據(jù)。位0 (R位) 從目標(biāo)的角度表示通信數(shù)據(jù)讀取寄存器中是否有新數(shù)據(jù):R = 1有新數(shù)據(jù),目標(biāo)應(yīng)用程序可以讀取。R = 0主機(jī)調(diào)試器可以將新數(shù)據(jù)掃描到讀取寄存器中。注啟、調(diào)試器不能利用協(xié)處理器14直接訪問調(diào)試通信通道,因?yàn)檫@對(duì)調(diào)試器無(wú)意義。但調(diào)試器可使用掃描鏈讀寫 DCC寄存器。DCC數(shù)據(jù)和控制寄存器可映射到EmbeddedICE邏輯單元中的地址。若要查看 EmbeddedICE邏輯寄存器,請(qǐng)參閱您的調(diào)試器和調(diào)試目標(biāo)的相關(guān)文檔。通信數(shù)據(jù)讀取寄存器用于接收來自調(diào)試器的數(shù)據(jù)的32位寬
18、寄存器。以下指令在 Rd中返回讀取寄存器的值:MRC p14, 0, Rd, c1, c0通信數(shù)據(jù)寫入寄存器用于向調(diào)試器發(fā)送數(shù)據(jù)的32位寬寄存器。以下指令將 Rn中的值寫到寫入寄存器中:MCR p14, 0, Rn, c1, c0注啟、有關(guān)訪問 ARM10和ARM11內(nèi)核DCC寄存器的信息,請(qǐng)參閱相應(yīng)的技術(shù)參考手冊(cè)。ARM9之后的各處理器中,所用指令、狀態(tài)位位置以及對(duì)狀態(tài)位的解釋都有所不同。目標(biāo)到調(diào)試器的通信這是運(yùn)行于 ARM內(nèi)核上的應(yīng)用程序與運(yùn)行于主機(jī)上的調(diào)試器之間的通信事件順序:1. 目標(biāo)應(yīng)用程序檢查 DCC寫入寄存器是否空閑可用。為此,目標(biāo)應(yīng)用程序使用MRC指令讀取調(diào)試通信通道控制寄存器
19、,以檢查W位是否已清除。2. 如果 W位已清除,則通信數(shù)據(jù)寫入寄存器已清空,應(yīng)用程序?qū)f(xié)處理器14使用MCR指令將字寫入通信數(shù)據(jù)寫入寄存器。寫入寄存器操作會(huì)自動(dòng)設(shè)置W位。如果 W位已設(shè)置,則表明調(diào)試器尚未清空通信數(shù)據(jù)寫入寄存器。此時(shí),如果應(yīng)用程序需要發(fā)送另一個(gè)字,它必須輪詢W位,直到它已清除。3. 調(diào)試器通過掃描鏈 2輪詢通信數(shù)據(jù)控制寄存器。如果調(diào)試器發(fā)現(xiàn) W位已設(shè)置,則它可以讀 DCC數(shù)據(jù)寄存器,以讀取應(yīng)用程序發(fā)送的信息。讀取數(shù)據(jù)的進(jìn)程會(huì)自動(dòng)清除通信數(shù)據(jù)控制寄存器中的W位。以下代碼顯示了這一過程AREA OutChannel, CODE, READONLYENTRYMOVr1,#3;Numb
20、er of words to sendADRr2, outdata; Address of data to sendpolloutMRCp14,0,r0,c0,c0 :Read control registerTSTr0, #2BNEpollout;if W set, register still fullwriteLDRr3,r2,#4; Read word from outdata; into r3 and update the pointerMCRp14,0,r3,c1,c0 :Write word from r3SUBSr1,r1,#1; Update counterBNEpollou
21、t; Loop if more words to be writtenMOVr0, #0x18;Angel_SWIreason_ReportExceptionLDRr1, =0x20026;ADP_Stopped_ApplicationExitSVC0x123456;ARM semihosting (formerly SWI)outdataDCB "Hello there!"END調(diào)試器到目標(biāo)的通信這是運(yùn)行于主機(jī)上的調(diào)試器向運(yùn)行于內(nèi)核上的應(yīng)用程序傳輸消息的事件順序:1. 調(diào)試器輪詢通信數(shù)據(jù)控制寄存器的R位。如果R位已清除,則通信數(shù)據(jù)讀取寄存器已清空,可將數(shù)據(jù)寫入此寄存器,以
22、供目標(biāo)應(yīng)用程序讀取。2. 調(diào)試器通過掃描鏈2將數(shù)據(jù)掃描到通信數(shù)據(jù)讀取寄存器中。此操作會(huì)自動(dòng)設(shè)置通信數(shù)據(jù)控制寄存器中的R位。3. 目標(biāo)應(yīng)用程序輪詢通信數(shù)據(jù)控制寄存器中的R位。如果該位已經(jīng)設(shè)置,則通信數(shù)據(jù)讀取寄存器中已經(jīng)有數(shù)據(jù),應(yīng)用程序可使用MRC指令從協(xié)處理器14讀取該數(shù)據(jù)。同時(shí),讀取指令還會(huì)清除R位。以下顯示的目標(biāo)應(yīng)用程序代碼演示了這一過程AREA InChannel, CODE, READONLYENTRYMOV r1,#3; Number of words to readLDR r2, =indata ; Address to store data readpollinMRC p14,0,
23、r0,c0,c0 ; Read control registerTST r0, #1BEQ pollin; If R bit clear then loopreadMRC p14,0,r3,c1,c0 ; read word into r3STRr3,r2,#4; Store to memory and; update pointerSUBSr1,r1,#1; Update counterBNEpollin;Loop if more words to readMOVr0, #0x18;Angel_SWIreason_ReportExceptionLDR r1, =0x20026; ADP_St
24、opped_ApplicationExitSVC 0x123456;ARM semihosting (formerly SWI)AREA Storage, DATA, READWRITEindataDCB "Duffmessage#"ENDCP15系統(tǒng)控制協(xié)處理器CP15 系統(tǒng)控制協(xié)處理器(the system control coprocessor)他通過協(xié)處理器指令MCR和MRC提供具體的寄存器來配置和控制caches、MMU、保護(hù)系統(tǒng)、配置時(shí)鐘模式(在bootloader時(shí)鐘初始化用到)CP15的寄存器只能被 MRC和 MCR (Move to Coprocessor
25、 from ARM Register )指令訪問28 57 26 25 24 2321 20 1&16 151211 10 & & 75 4 30Cond1110Opcode1LCRrtRd1111Opcode_21CRmMCRcond p15,<Opcode_1>,<Rd>,<CRn>,<CRm>,<Opcode_2>MRCcond p15,<Opcode_1>,<Rd>,<CRn>,<CRm>,<Opcode_2>其中L位用來區(qū)分 MCR(L=1加
26、MRC(L=0操作.CP15包括15個(gè)具體的寄存器如下RegisterReadWrite0ID codeJL npredicuble0Cache type 2Unpredictable1ControlCon Lrol2Translation table baseTranslation table base3Domain access contrnlDomain access control4U n pre die i ableUnpre 也 CLihkFault statushfault status b6Fault addressHuh address7U n predictableCach
27、e operations8UnpredictaNeTLB operations9Cache lockdown bCache Jockdown h10TLB lockdown 卜TLB lockdown b11UnpredictableLnpredictahk2UnpredicLihleUnpredictabk)3FCSEP1DFCSE P1D14Un pre die I a hieUnpredictable15Teal conncurationJTest conilgurationll Revisit er location U pro'i'idcsi access tn mo
28、re than de2 regi ster. The regiskr uccesd depends i>n the of the Gfcode.Z ticl(J. Sn tkz l'ceistjr djscripiion r'ordjtil.h Separate regixten for instruction and data. See (he register-R0: ID號(hào)寄存器-R0:緩存類型寄存器-R1:控制寄存器-R2:轉(zhuǎn)換表基址寄存器(Translation Table Base -TTB -R3:域訪問控制寄存器( Domain access contro
29、l )-R4:保留 -R5:異常狀態(tài)寄存器(fault status -FSR)-R6:異常地址寄存器(fault address -FAR)-R7:緩存操作寄存器-R8: TLB操作寄存器-R9:緩存鎖定寄存器-R10: TLB鎖定寄存器-R11-12&14:保留-R13:處理器ID-R15:測(cè)試配置寄存器2-24要注意有2個(gè)R0,根據(jù)MCR操作數(shù)的不同傳送不同的值,這也一個(gè)只讀寄存器-R0: ID號(hào)寄存器 這是一個(gè)只讀寄存器,返回一個(gè)32位的設(shè)備ID號(hào),具體功能參考 ARM各個(gè)系列型號(hào)的的 CP15 Register 0說明.MRC p15, 0, <Rd>, c0,
30、c0, 0, 3-7 ;returns ID以下為 ID Code詳細(xì)描敘(ARM926EJ-S); ARM920T Part Number為 0x920,Architecture (ARMv4T) 為0x2具體可參照 ARM各型號(hào).Register bits FunctionValue|3 :24ASCH code of impleinenier irademark0x4123:20Variant0X019; 16Architecture (ARMv5TEJl0x615:4Parc number0x9263:0Revision0x05aa* The revision value can be
31、 in the range 0x0 to 0x5, depending on the layout revision you are using,.-R0:緩存類型寄存器(CACHE TYPE REGISTER 包含了 caches的信息。讀這個(gè)寄存器的方 式是通過設(shè)置協(xié)處理操作碼為 1.MRC p15, 0, <Rd>, c0, c0, 1; returns cache details以下為CP15的一些應(yīng)用示例U32 ARM_CP15_DeviceIDRead(void)U32 id;_asm MRC P15, 0, id, c0, c0; return id;void ARM_CP15_SetPageTableBase(P_U32 TableAddress)_asm MCR P15, 0, TableAddress, c2, c0, 0; void ARM_CP15_SetDomainAccessControl(U32 flags)_asm MCRP15, 0, flags, c3, c0, 0; void ARM_CP15_ICacheF
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 眼化學(xué)傷的急救和治療原則
- 腦血栓的溶栓治療
- 肛腸疾病的中醫(yī)治療
- 課件字體標(biāo)準(zhǔn)教學(xué)課件
- 高三化學(xué)一輪復(fù)習(xí) 離子反應(yīng) 課件
- 1.1.1原子結(jié)構(gòu)和原子光譜 課件 高二上學(xué)期化學(xué)人教版(2019)選擇性必修2
- 日光性皮膚病
- 初中生網(wǎng)絡(luò)安全教育
- 物業(yè)主管半年述職報(bào)告
- 踩高蹺教案反思大班
- 心肺復(fù)蘇術(shù)課件2024新版
- 行政復(fù)議法-形考作業(yè)2-國(guó)開(ZJ)-參考資料
- 會(huì)議·宴會(huì)預(yù)訂單
- 個(gè)人醫(yī)德醫(yī)風(fēng)檔案
- 局組會(huì)議議題提報(bào)單模板
- 檢驗(yàn)科標(biāo)本拒收記錄
- 地下水池施工方案
- 世界氣溫和降水的分布
- 申請(qǐng)一年或多年多次往返申根簽證信
- 實(shí)踐與認(rèn)識(shí)的關(guān)系PPT課件
- 新人教版八年級(jí)英語(yǔ)上冊(cè)第六單元.ppt
評(píng)論
0/150
提交評(píng)論