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

正文內(nèi)容

嵌入式處理器體系結(jié)構(gòu)(參考版)

2025-05-01 19:46本頁(yè)面
  

【正文】 FIQ 快速中斷請(qǐng)求引腳有效,且 CPSR中的 F位為 0時(shí),產(chǎn)生FIQ異常。 數(shù)據(jù)中止 處理器數(shù)據(jù)訪問(wèn)指令的地址不存在,或該地址不允許當(dāng)前指令訪問(wèn)時(shí),產(chǎn)生數(shù)據(jù)中止異常。 軟件中斷 執(zhí)行 SWI指令產(chǎn)生,用于用戶模式下的程序調(diào)用特權(quán)操作指令。 ARM體系結(jié)構(gòu)所支持的異常類型 異常類型 具體含義 復(fù)位 復(fù)位電平有效時(shí),產(chǎn)生復(fù)位異常,程序跳轉(zhuǎn)到復(fù)位處理程序處執(zhí)行。在處理異常之前,當(dāng)前處理器的狀態(tài)必須保留,這樣當(dāng)異常處理完成之后,當(dāng)前程序可以繼續(xù)執(zhí)行。 異常( Exceptions) ? ARM體系結(jié)構(gòu)中的異常,與 8位 /16位體系結(jié)構(gòu)的中斷有很大的相似之處,但異常與中斷的概念并不完全等同。 ?運(yùn)行模式位 M[4: 0]是模式位,決定處理器的運(yùn)行模式 ARM處理器的寄存器組織 ?中斷禁止位 I、 F: ? I=1 禁止 IRQ中斷 。 ?T標(biāo)志位:該位反映處理器的運(yùn)行狀態(tài) ? ARM體系結(jié)構(gòu) v5及以上的版本的 T系列處理器,當(dāng)該位為 1時(shí),程序運(yùn)行于 Thumb狀態(tài),否則運(yùn)行于 ARM狀態(tài)。它們的內(nèi)容可被算術(shù)或邏輯運(yùn)算的結(jié)果所改變,并且可以決定某條指令是否被執(zhí)行 程序狀態(tài)寄存器的 控制位 ?狀態(tài)寄存器的低 8位( I、 F、 T和 M[4: 0])稱為控制位,發(fā)生異常時(shí)這些位可以被改變。 ? 在 Thumb狀態(tài)下,僅有分支指令是有條件執(zhí)行的。 ARM處理器的寄存器組織 當(dāng)前程序狀態(tài)寄存器 ? ARM體系結(jié)構(gòu)包含一個(gè)當(dāng)前程序狀態(tài)寄存器( CPSR)和五個(gè)備份的程序狀態(tài)寄存器( SPSRs)。匯編語(yǔ)言程序員對(duì)它們的訪問(wèn)受到限制。 ? 同樣,每一種特權(quán)模式下都有一組 SP、 LR和 SPSR。每種異常都有自己的 SPSR,在進(jìn)入異常時(shí)它保存CPSR的當(dāng)前值,異常退出時(shí)可通過(guò)它恢復(fù)CPSR。具體的規(guī)則取決于內(nèi)核結(jié)構(gòu)的版本: ?在 ARM結(jié)構(gòu) V3版及以下版本中,寫入 R15的值的最低兩位被忽略,因此跳轉(zhuǎn)地址由指令的實(shí)際目標(biāo)地址(寫入 R15的值)和 0xFFFFFFFC相與得到; ?在 ARM結(jié)構(gòu) V4版及以上版本中,寫入 R15的值的最低兩位為 0,如果不是,結(jié)果將不可預(yù)測(cè)。計(jì)算偏移量 0 4 8 12 ARM狀態(tài) 程序計(jì)數(shù)器 R15( PC) ? 讀 R15的限制 ARM處理器的寄存器組織 ? 寫 R15的限制 正常操作時(shí),寫入 R15 的值被當(dāng)作一個(gè)指令地址,程序從這個(gè)地址處繼續(xù)執(zhí)行(相當(dāng)于執(zhí)行一次無(wú)條件跳轉(zhuǎn))。保存 STR指令地址 +偏移量 LDR R0,[R0] 。 ? 讀 R15的限制 程序計(jì)數(shù)器 R15( PC) ARM處理器的寄存器組織 計(jì)算偏移量 (PC值和當(dāng)前指令地址的差 )程序代碼: SUB R1,PC,4 。偏移量是 8還是 12取決于具體的 ARM芯片,但是對(duì)于一個(gè)確定的芯片,這個(gè)值是一個(gè)常量。 LDR R0,PC ??? ??? PC PC4 PC8 正在執(zhí)行 正在譯碼 正在取指 流水線狀態(tài) 地址 程序代碼 程序計(jì)數(shù)器 R15( PC) ARM處理器的寄存器組織 當(dāng)使用 STR或 STM指令保存 R15時(shí),會(huì)有一個(gè)例外。 ? 讀 R15的限制 正常操作時(shí),從 R15讀取的值是處理器正在取指的地址,即當(dāng)前正在執(zhí)行指令的地址加上 8個(gè)字節(jié)(兩條 ARM指令的長(zhǎng)度)。可以認(rèn)為它是一個(gè)通用寄存器,但是對(duì)于它的使用有許多與指令相關(guān)的限制或特殊情況。 Lable 程序 A 程序 B R14 R14( LR)寄存器與子程序調(diào)用 BL Lable 地址 A ??? MOV PC,LR R14(地址 A) ??? A執(zhí)行過(guò)程中調(diào)用程序 B; 操作流程 Lable,執(zhí)行程序 B。但是在 Thumb指令集中存在使用R13的指令。 fi i t i t 寄存器類別 寄存器在匯編中的名稱 各模式下實(shí)際訪問(wèn)的寄存器 用戶 系統(tǒng) 管理 中止 未定義 中斷 快中斷 通用寄存器和程序計(jì)數(shù)器 R0(a1) R0 R1(a2) R1 R2(a3) R2 R3(a4) R3 R4(v1) R4 R5(v2) R5 R6(v3) R6 R7(v4) R7 R8(v5) R8 R8_fiq R9(SB,v6) R9 R9_fiq R10(SL,v7) R10 R10_fiq R11(FP,v8) R11 R11_fiq R12(IP) R12 R12_fiq R13(SP) R13 R13_svc R13_abt R13_und R13_irq R13_fiq R14(LR) R14 R14_svc R14_abt R14_und R14_irq R14_fiq R15(PC) R15 狀態(tài)寄存器 CPSR CPSR SPSR 無(wú) SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiq 堆棧指針寄存器 R13( SP) 寄存器 R13常作為 堆棧指針( SP)。 寄存器類別 寄存器在匯編中的名稱 各模式下實(shí)際訪問(wèn)的寄存器 用戶 系統(tǒng) 管理 中止 未定義 中斷 快中斷 通用寄存器和程序計(jì)數(shù)器 R0(a1) R0 R1(a2) R1 R2(a3) R2 R3(a4) R3 R4(v1) R4 R5(v2) R5 R6(v3) R6 R7(v4) R7 R8(v5) R8 R8_fiq R9(SB,v6) R9 R9_fiq R10(SL,v7) R10 R10_fiq R11(FP,v8) R11 R11_fiq R12(IP) R12 R12_fiq R13(SP) R13 R13_svc R13_abt R13_und R13_irq R13_fiq R14(LR) R14 R14_svc R14_abt R14_und R14_irq R14_fiq R15(PC) R15 狀態(tài)寄存器 CPSR CPSR SPSR 無(wú) SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiq 一般的通用寄存器 寄存器 R1 R14分別有 6個(gè)分組的物理寄存器。一個(gè)用于除 FIQ模式之外的所有寄存器模式,另一個(gè)用于 FIQ模式。 寄存器類別 寄存器在匯編中的名稱 各模式下實(shí)際訪問(wèn)的寄存器 用戶 系統(tǒng) 管理 中止 未定義 中斷 快中斷 通用寄存器和程序計(jì)數(shù)器 R0(a1) R0 R1(a2) R1 R2(a3) R2 R3(a4) R3 R4(v1) R4 R5(v2) R5 R6(v3) R6 R7(v4) R7 R8(v5) R8 R8_fiq R9(SB,v6) R9 R9_fiq R10(SL,v7) R10 R10_fiq R11(FP,v8) R11 R11_fiq R12(IP) R12 R12_fiq R13(SP) R13 R13_svc R13_abt R13_und R13_irq R13_fiq R14(LR) R14 R14_svc R14_abt R14_und R14_irq R14_fiq R15(PC) R15 狀態(tài)寄存器 CPSR CPSR SPSR 無(wú) SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiq 一般的通用寄存器 4_fiq 4_irq 4_und 4_abt 4_svc 4 fi irq abt s c fi fi fi fi fi 寄存器 R8~ R14為 分組寄存器 。它們是完全通用的寄存器,不會(huì)被體系結(jié)構(gòu)作為特殊用途,并且可用于任何使用通用寄存器的指令。 ARM狀態(tài)下的寄存器組織 寄存器類別 寄存器在匯編中的名稱 各模式下實(shí)際訪問(wèn)的寄存器 用戶 系統(tǒng) 管理 中止 未定義 中斷 快中斷 通用寄存器和程序計(jì)數(shù)器 R0(a1) R0 R1(a2) R1 R2(a3) R2 R3(a4) R3 R4(v1) R4 R5(v2) R5 R6(v3) R6 R7(v4) R7 R8(v5) R8 R8_fiq * R9(SB,v6) R9 R9_fiq * R10(SL,v7) R10 R10_fiq * R11(FP,v8) R11 R11_fiq * R12(IP) R12 R12_fiq * R13(SP) R13 R13_svc* R13_abt * R13_und * R13_irq * R13_fiq * R14(LR) R14 R14_svc * R14_abt * R14_und * R14_irq * R14_fiq * R15(PC) R15 狀態(tài)寄存器 R16(CPSR) CPSR SPSR 無(wú) SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiq 寄存器類別 寄存器在匯編中的名稱 各模式下實(shí)際訪問(wèn)的寄存器 用戶 系統(tǒng) 管理 中止 未定義 中斷 快中斷 通用寄存器和程序計(jì)數(shù)器 R0(a1) R0 R1(a2) R1 R2(a3) R2 R3(a4) R3 R4(v1) R4 R5(v2) R5 R6(v3) R6 R7(v4) R7 R8(v5) R8 R8_fiq R9(SB,v6) R9 R9_fiq R10(SL,v7) R10 R10_fiq R11(FP,v8) R11 R11_fiq R12(IP) R12 R12_fiq R13(SP) R13 R13_svc R13_abt R13_und R13_irq R13_fiq R14(LR) R14 R14_svc R14_abt R14_und R14_irq R14_fiq R15(PC) R15 狀態(tài)寄存器 CPSR CPSR SPSR 無(wú) SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiq ARM狀態(tài)各模式下的寄存器 SPSR_fiq SPSR_irq nd bt bt fi i t fi i t fi 所有的 37個(gè)寄存器,分成兩大類: ?31個(gè)通用 32位寄存器; ?6個(gè)狀態(tài)寄存器。 ? 由于用戶模式和系統(tǒng)模式不屬于異常模式,他們沒(méi)有 SPSR,當(dāng)在這兩種模式下訪問(wèn) SPSR,結(jié)果是未知的。 ? 由于 ARM體系結(jié)構(gòu)采用了多級(jí)流水線技術(shù) , 對(duì)于 ARM指令集而言 , PC總是指向當(dāng)前指令的下兩條指令的地址 ,即 PC的值為當(dāng)前指令的地址值加 8個(gè)字節(jié) 。 ? 在每一種運(yùn)行模式下,都可用 R14保存子程序的返回地址,當(dāng)用 BL或 BLX指令調(diào)用子程序時(shí),將 PC的當(dāng)前值拷貝給R14,執(zhí)行完子程序后,又將 R14的值拷貝回 PC,即可完成子程序的調(diào)用返回。當(dāng)執(zhí)行BL子程序調(diào)用指令時(shí),可以從 R14中得到 R15(程序計(jì)數(shù)器 PC)的備份。 ? 由于處理器的每種運(yùn)行模式均有自己獨(dú)立的物理寄存器R13,在初始化部分,都要初始化每種模式下的 R13,這樣,當(dāng)程序的運(yùn)行進(jìn)入異常模式時(shí),可以將需要保護(hù)的寄存器放入 R13所指向的堆棧,而當(dāng)程序從異常模式返回時(shí),則從對(duì)應(yīng)的堆棧中恢復(fù) 。 ARM處理器的寄存器組織 堆棧指針 — R13 ? R13在 ARM指令中常用作堆棧指針,但這只是一種習(xí)慣用法,用戶也可使用其他的寄存器作為堆棧指針。 ARM處理器的寄存器組織 分組寄存器 R8~ R12 ?每次所訪問(wèn)的物理寄存器與處理器當(dāng)前的運(yùn)行模式有關(guān) ?R8~ R12:每個(gè)寄存器對(duì)應(yīng)兩個(gè)不同的物理寄存器 ? 當(dāng)使用 fiq模式時(shí),訪問(wèn)寄存器 R8_fiq~ R12_fiq; ? 當(dāng)使用除 fiq模式以外的其他模式時(shí),訪問(wèn)寄存器R8_usr~ R12_usr。但在任何時(shí)候,通用寄存器 R14~ R0、程序計(jì)數(shù)器 PC、一個(gè)或兩個(gè)狀態(tài)寄存器都是可訪問(wèn)的。 系統(tǒng) (sys) 用戶 (usr) 寄存器組織 ? ARM微處理器共有 37個(gè) 32位寄存器,其中31個(gè)為通用寄存器, 6個(gè)為狀態(tài)寄存器 。 系統(tǒng)模式是特權(quán)模式,不受用戶模式的限制。每種異常模式都有一些獨(dú)立的寄存器,以避免異常退出時(shí)用戶模式的狀態(tài)不可靠。它們除了可以通過(guò)程序切換進(jìn)入外,也可以由特定的異常進(jìn)入。此外,特權(quán)模式可以自由的切換處理器模式,而用戶模式不能直接切換到別的模式。 ARM處理器的工作模式 ARM處理器的工作模式 ? 特權(quán)模式 處理器
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1