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

正文內(nèi)容

arm7體系結(jié)構(gòu)-資料下載頁

2025-01-12 23:59本頁面
  

【正文】 數(shù)據(jù)中止的裝載或保存指令的地址。 復(fù)位 無 — — 復(fù)位時(shí)保存在R14_svc中的值不可預(yù)知。 注意 : “MOVS PC,R14_svc” 是指在管理模式執(zhí)行 MOVS PC,R14指令。“MOVS PC,R14_und” 、 “SUBS PC,R14_abt,4” 等指令也是類似的。異常n 異常的入口和出口處理 如果異常處理程序已經(jīng)把返回地址拷貝到堆棧,那么可以使用一條多寄存器傳送指令來恢復(fù)用戶寄存器并實(shí)現(xiàn)返回。SUB LR,LR,4 。計(jì)算返回地址STMFD SP!,{R0R3,LR} 。保存使用到的寄存器. . .LDMFD SP!,{R0R3,PC}^。中斷返回中斷處理代碼的開始部分和退出部分 如果異常處理程序已經(jīng)把返回地址拷貝到堆棧,那么可以使用一條多寄存器傳送指令來恢復(fù)用戶寄存器并實(shí)現(xiàn)返回。中斷處理代碼的開始部分和退出部分異常n 異常的入口和出口處理SUB LR,LR,4 。計(jì)算返回地址STMFD SP!,{R0R3,LR} 。保存使用到的寄存器. . .LDMFD SP!,{R0R3,PC}^。中斷返回注意 :中斷返回指令的寄存器列表(其中必須包括PC)后的 “ ^ ” 符號(hào)表示這是一條特殊形式的指令。這條指令在從存儲(chǔ)器中裝載 PC的同時(shí)( PC是最后恢復(fù)的), CPSR也得到恢復(fù)。這里使用的堆棧指針 SP( R13)是屬于異常模式的寄存器,每個(gè)異常模式有自己的堆棧指針。這個(gè)堆棧指針應(yīng)必須在系統(tǒng)啟動(dòng)時(shí)初始化。 異常n 進(jìn)入異常在異常發(fā)生后, ARM7TDMI內(nèi)核會(huì)作以下工作: LR中保存下一條指令的地址,當(dāng)異常入口來自:167。ARM狀態(tài),那么 ARM7TDMI將當(dāng)前指令地址加 4或加 8復(fù)制(取決于異常的類型)到 LR中;167。為 Thumb狀態(tài),那么 ARM7TDMI將當(dāng)前指令地址加 4或加 8 (取決于異常的類型)復(fù)制到 LR中;異常處理器程序不必確定狀態(tài)。異常n 進(jìn)入異常在異常發(fā)生后, ARM7TDMI內(nèi)核會(huì)作以下工作: CPSR復(fù)制到適當(dāng)?shù)?SPSR中;3. 將 CPSR模式位強(qiáng)制設(shè)置為與異常類型相對(duì)應(yīng)的值; PC從相關(guān)的異常向量處取指。 ARM7TDMI內(nèi)核在中斷異常時(shí)置位中斷禁止標(biāo)志,這樣可以防止不受控制的異常嵌套。注 :異常總是在 ARM狀態(tài)中進(jìn)行處理。當(dāng)處理器處于 Thumb狀態(tài)時(shí)發(fā)生了異常,在異常向量地址裝入PC時(shí),會(huì)自動(dòng)切換到 ARM狀態(tài)。異常n 進(jìn)入異常當(dāng)異常結(jié)束時(shí),異常處理程序必須: LR( R14 )中的值減去偏移量后存入 PC,偏移量根據(jù)異常的類型而有所不同; SPSR的值復(fù)制回 CPSR;。注 :恢復(fù) CPSR的動(dòng)作會(huì)將 T、 F和 I位自動(dòng)恢復(fù)為異常發(fā)生前的值。異常n 退出異常程序 A IRQ服務(wù)程序系統(tǒng)模式 IRQ模式程序寄存器組圖示進(jìn)入異常過程1. 程序在系統(tǒng)模式下運(yùn)行用戶程序,假定當(dāng)前處理器狀態(tài)為 Thumb狀態(tài)、允許 IRQ中斷;2. 用戶程序運(yùn)行時(shí)發(fā)生IRQ中斷,硬件完成以下動(dòng)作:LR_sysSPSR_irqLR_irqLRPCCPSRSPSRSYS1?0...? ? ? ?MODTFI...N Z C V167。置位 I位(禁止 IRQ中斷)167。清零 T位(進(jìn)入 ARM狀態(tài))167。設(shè)置 MOD位,切換處理器模式至 IRQ模式167。將下一條指令的地址存入IRQ模式的 LR寄存器167。將 CPSR寄存器內(nèi)容存入IRQ模式的 SPSR寄存器167。將跳轉(zhuǎn)地址存入 PC,實(shí)現(xiàn)跳轉(zhuǎn)IRQ01BackAddrJumpAddrJumpSYS1?0...????“?”表示對(duì)該位不關(guān)心在異常處理結(jié)束后,異常處理程序完成以下動(dòng)作: 程序 A IRQ服務(wù)程序系統(tǒng)模式 IRQ模式程序寄存器組圖示退出異常過程LR_sysSPSR_irqLR_irqLRPCCPSRSPSRSYS1?0...? ? ? ?MODTFI...N Z C V167。將 SPSR寄存器的值復(fù)制回CPSR寄存器;167。將 LR寄存的值減去一個(gè)常量后復(fù)制到 PC寄存器,跳轉(zhuǎn)到被中斷的用戶程序。IRQ01BackAddrJumpAddrreturnSYS1?0...????BackAddr4Jump“?”表示對(duì)該位不關(guān)心 快速中斷請(qǐng)求 (FIQ)適用于對(duì)一個(gè)突發(fā)事件的快速響應(yīng),這得益于在 ARM狀態(tài)中,快中斷模式有 8個(gè)專用的寄存器可用來滿足寄存器保護(hù)的需要(這可以加速上下文切換的速度)。 不管異常入口是來自 ARM狀態(tài)還是 Thumb狀態(tài),F(xiàn)IQ處理程序都會(huì)通過執(zhí)行下面的指令從中斷返回:SUBS PC,R14_fiq,4 在一個(gè)特權(quán)模式中,可以通過置位 CPSR中的 F位來禁止 FIQ異常。異常n 快速中斷請(qǐng)求 中斷請(qǐng)求( IRQ)異常是一個(gè)由 nIRQ輸入端的低電平所產(chǎn)生的正常中斷(在具體的芯片中, nIRQ由片內(nèi)外設(shè)拉低, nIRQ是內(nèi)核的一個(gè)信號(hào),對(duì)用戶不可見)。 IRQ的優(yōu)先級(jí)低于 FIQ。對(duì)于 FIQ序列它是被屏蔽的。任何時(shí)候在一個(gè)特權(quán)模式下,都可通過置位 CPSR中的 I 位來禁止 IRQ。 不管異常入口是來自 ARM狀態(tài)還是 Thumb狀態(tài),IRQ處理程序都會(huì)通過執(zhí)行下面的指令從中斷返回:SUBS PC,R14_irq,4異常n 中斷請(qǐng)求 中止發(fā)生在對(duì)存儲(chǔ)器的訪問不能完成時(shí),中止包含兩種類型:167。預(yù)取中止 發(fā)生在指令預(yù)取過程中167。數(shù)據(jù)中止 發(fā)生在對(duì)數(shù)據(jù)訪問時(shí)異常n 中止 當(dāng)發(fā)生預(yù)取中止時(shí), ARM7TDMI內(nèi)核將預(yù)取的指令標(biāo)記為無效,但在指令到達(dá)流水線的執(zhí)行階段時(shí)才進(jìn)入異常。如果指令在流水線中因?yàn)榘l(fā)生分支而沒有被執(zhí)行,中止將不會(huì)發(fā)生。 在處理中止的原因之后,不管處于哪種處理器操作狀態(tài),處理程序都會(huì)執(zhí)行下面的指令恢復(fù) PC和CPSR并重試被中止的指令: SUBS PC,R14_abt,4異常n 中止 —— 預(yù)取指中止 當(dāng)發(fā)生數(shù)據(jù)中止后,根據(jù)產(chǎn)生數(shù)據(jù)中止的指令類型作出不同的處理:異常n 中止 —— 數(shù)據(jù)中止167。數(shù)據(jù)轉(zhuǎn)移指令( LDR、 STR)回寫到被修改的基址寄存器。中止處理程序必須注意這一點(diǎn);167。交換指令( SWP)中止好像沒有被執(zhí)行過一樣(中止必須發(fā)生在 SWP指令進(jìn)行讀訪問時(shí)) ; 在修復(fù)產(chǎn)生中止的原因后,不管處于哪種處理器操作狀態(tài),處理程序都必須執(zhí)行下面的返回指令,重試被中止的指令 : SUBS PC,R14_abt,8異常n 中止 —— 數(shù)據(jù)中止 使用軟件中斷 (SWI)指令可以進(jìn)入管理模式,通常用于請(qǐng)求一個(gè)特定的管理函數(shù)。 SWI處理程序通過執(zhí)行下面的指令返回:MOVS PC,R14_svc 這個(gè)動(dòng)作恢復(fù)了 PC并返回到 SWI之后的指令。SWI處理程序讀取操作碼以提取 SWI函數(shù)編號(hào)。 異常n 軟件中斷指令 當(dāng) ARM7TDMI處理器遇到一條自己和系統(tǒng)內(nèi)任何協(xié)處理器都無法處理的指令時(shí), ARM7TDMI內(nèi)核執(zhí)行未定義指令陷阱。軟件可使用這一機(jī)制通過模擬未定義的協(xié)處理器指令來擴(kuò)展 ARM指令集。注 : ARM7TDMI處理器完全遵循 ARM結(jié)構(gòu) v4T,可以捕獲所有分類未被定義的指令位格式。異常n 未定義的指令 在模擬處理了失敗的指令后,陷阱程序執(zhí)行下面的指令:MOVS PC,R14_svc 這個(gè)動(dòng)作恢復(fù)了 PC并返回到未定義指令之后的指令。 異常n 未定義的指令 當(dāng)多個(gè)異常同時(shí)發(fā)生時(shí),一個(gè)固定的優(yōu)先級(jí)系統(tǒng)決定它們被處理的順序:異常n 異常優(yōu)先級(jí)異常類型 優(yōu)先級(jí)復(fù)位 1(最高優(yōu)先級(jí))數(shù)據(jù)中止 2FIQ 3IRQ 4預(yù)取中止 5未定義指令 6SWI 7(最低優(yōu)先級(jí))優(yōu)先級(jí)降低第 3章 目錄內(nèi)部框圖數(shù)據(jù)類型q8.程序狀態(tài)寄存器I/O復(fù)位n 復(fù)位 當(dāng) nRESET信號(hào)被拉低時(shí)(一般外部復(fù)位引腳電平的變化和芯片的其它復(fù)位源會(huì)改變這個(gè)內(nèi)核信號(hào)), ARM7TDMI處理器放棄正在執(zhí)行的指令 。 在復(fù)位后,除 PC和 CPSR之外的所有寄存器的值都不確定。復(fù)位n 復(fù)位 當(dāng) nRESET信號(hào)再次變?yōu)楦唠娖綍r(shí), ARM處理器執(zhí)行下列操作: CPSR中的 M[4:0]變?yōu)?b10011(管理模式); CPSR中的 I和 F位; CPSR中的 T位; PC從地址 0x00開始對(duì)下一條指令進(jìn)行取指; ARM狀態(tài)并恢復(fù)執(zhí)行 。 第 3章 目錄內(nèi)部框圖數(shù)據(jù)類型q8.程序狀態(tài)寄存器I/O存儲(chǔ)器及存儲(chǔ)器映射 I/On 簡(jiǎn)介 ARM7TDMI處理器采用馮 諾依曼( Von Neumann)結(jié)構(gòu),指令和數(shù)據(jù)共用一條 32位數(shù)據(jù)總線。只有裝載、保存和交換指令可訪問存儲(chǔ)器中的數(shù)據(jù)。存儲(chǔ)器及存儲(chǔ)器映射 I/On 簡(jiǎn)介 ARM7TDMI處理器將存儲(chǔ)器看作是一個(gè)從 0開始的線性遞增的字節(jié)集合:167。字節(jié) 0到 3保存第 1個(gè)存儲(chǔ)的字167。字節(jié) 4到 7保存第 2個(gè)存儲(chǔ)的字167。字節(jié) 8到 11保存第 3個(gè)存儲(chǔ)的字167。依此類推 …字節(jié) 字節(jié) 字節(jié) 字節(jié)地址 A A+1 A+2 A+3字節(jié) 字節(jié) 字節(jié) 字節(jié)字節(jié) 字節(jié) 字節(jié) 字節(jié)字節(jié) 字節(jié) 字節(jié) 字節(jié)04……8存儲(chǔ)器及存儲(chǔ)器映射 I/On 簡(jiǎn)介 ARM7TDMI處理器可以將存儲(chǔ)器中的字以下列格式存儲(chǔ):167。大端格式( Bigendian)167。小端格式( Littleendian)存儲(chǔ)器及存儲(chǔ)器映射 I/On 存儲(chǔ)器格式地址空間的規(guī)則:167。位于地址 A的字包含的字節(jié)位于地址 A,A+1,A+2和A+3;167。位于地址 A的半字包含的字節(jié)位于地址 A和 A+1;167。位于地址 A+2的半字包含的字節(jié)位于地址 A+2和A+3;167。位于地址 A的字包含的半字位于地址 A和 A+2; 字節(jié) 字節(jié) 字節(jié) 字節(jié)地址 A A+1 A+2 A+3半字 半字字存儲(chǔ)器系統(tǒng)有兩種映射機(jī)制:167。小端存儲(chǔ)器系統(tǒng): 在小端格式中,高位數(shù)字存放在高位字節(jié)中。因此存儲(chǔ)器系統(tǒng)字節(jié) 0連接到數(shù)據(jù)線 7~ 0(低位對(duì)齊)。 167。大端存儲(chǔ)器系統(tǒng): 在大端格式中,高位數(shù)字存放在低位字節(jié)中。因此存儲(chǔ)器系統(tǒng)字節(jié) 0連接到數(shù)據(jù)線 31~ 24(高位對(duì)齊 ) 。 0x12345678字?jǐn)?shù)據(jù)的大小端存儲(chǔ)方式存儲(chǔ)器及存儲(chǔ)器映射 I/On 存儲(chǔ)器格式0x12 高位地址低位地址 0x34 0x56 0x78大端模式0x78 高位地址低位地址 0x56 0x34 0x12小端模式 一個(gè)基于 ARM內(nèi)核的芯片可以只支持大端模式或小端模式,也可以兩者都支持。通常,小端模式是 ARM處理器的默認(rèn)形式。 在 ARM指令集中不包含任何直接選擇大小端的指令,但是一個(gè)同時(shí)支持大小端模式的 ARM芯片可以通過硬件配置(一般使用芯片的引腳來配置)來匹配存儲(chǔ)器系統(tǒng)所使用的規(guī)則。存儲(chǔ)器及存儲(chǔ)器映射 I/On 存儲(chǔ)器格式注意 :如果實(shí)際的存儲(chǔ)器格式與芯片的存儲(chǔ)器格式不符時(shí),只有以字為單位的數(shù)據(jù)存取才正確,否則將出現(xiàn)不可預(yù)期的結(jié)果。存儲(chǔ)器及存儲(chǔ)器映射 I/On 地址空間 ARM結(jié)構(gòu)使用單個(gè)平面的 232個(gè) 8位字節(jié)地址空間。字節(jié)地址按照無符號(hào)數(shù)排列,從 0到 232- 1。地址空間可以看作是包含 230個(gè) 32位字,或 231個(gè) 16位半字。如果地址向上或向下溢出地址空間,通常會(huì)發(fā)生翻轉(zhuǎn)。注意 :如果在取指操作時(shí)地址發(fā)生溢出,只要沒有執(zhí)行預(yù)取的無效指令,就不會(huì)導(dǎo)致異常。 ARM結(jié)構(gòu)通常希望所有的存儲(chǔ)器訪問都合理的對(duì)齊。具體來說就是字訪問的地址通常是字對(duì)齊的,而半字訪問使用的地址是半字對(duì)齊的。不按這種方式對(duì)齊的存儲(chǔ)器訪問稱為 非對(duì)齊的存儲(chǔ)器訪問 。167。將一個(gè)非字(半字)對(duì)齊的地址寫入 ARM(Thumb)狀態(tài)的 PC(R15)寄存器,將引起非對(duì)齊的指令取指。167。在一個(gè)非字(半字)對(duì)齊的地址讀寫一個(gè)字(半字),將引起非對(duì)齊的數(shù)據(jù)訪問: 存儲(chǔ)器及存儲(chǔ)器映射 I/On 未對(duì)齊的存儲(chǔ)器訪問演講完畢,謝謝觀看!
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1