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

正文內(nèi)容

《異常中斷處理》ppt課件-全文預(yù)覽

2025-06-02 07:55 上一頁面

下一頁面
  

【正文】 ] MRS r14, CPSR BIC r14, r14, 0x9F ORR r14, r14, 0x1F MSR CPSR_c, r14 STMFD sp!, {r0r3, lr} MOV r0,r12 BL C_irq_handler LDMFD sp!, {r0r3, lr} MRS r12, CPSR BIC r12, r12, 0x1F ORR r12, r12, 0x92 MSR CPSR_c, r12 LDMFD sp!, {r12, r14} MSR SPSR_csxf, r14 LDMFD sp!, {PC}^ 切換到 IRQ 模式同時(shí)禁止 IRQ. LR_irq , SPSR_irq 和工作寄存器 (r12) 壓棧保護(hù)來避免下一次中斷發(fā)生使它們被沖掉 } 保存 R03, LR_user 到 user 棧中 , 然后調(diào)用 C 子程序 ,中斷源 (R0)作為一個(gè)參數(shù)傳入 C 處理函數(shù)。 從讀數(shù)據(jù)流得到下一個(gè)字符 ? SWI WriteI+”k” 。 超級(jí)用戶程序入口 ? DCD ZeroRtn ? DCD ReadCRtn ? DCD WriteIRtn ? . . . ? Zero EQU 0 ? ReadC EQU 256 ? WriteI EQU 512 ? 超級(jí)用戶 ? SWI has routine required in bits 823 and data (if any) in bits 07. ? 假設(shè) R13_svc指向一個(gè)相應(yīng)的堆棧 ? STMFD R13,{R0R2,R14} 。 得到程序偏移量 ? ADR R2,EntryTable 。 恢復(fù)工作環(huán)境并返回 ? 恢復(fù)處理器模式和標(biāo)志位 Assemble Language of ARM 48 小結(jié) ?掌握處理器對(duì)各種異常中斷響應(yīng)的過程以及從中斷處理程序的返回 ?掌握異常中斷類型及其含義 ?掌握中斷優(yōu)先級(jí)和中斷向量 。 分支到適當(dāng)?shù)某绦? ? WriteIRtn 。 得到 SWI指令 ? BIC R0,R0,0xFF000000 。 條件調(diào)用用戶模式,注釋區(qū)域?yàn)?0 ? 上面的例子加頂相應(yīng)的超級(jí)用戶代碼存在,例 ? 0x08 B Supervisor 。“!” 將更新 R1 ? 如果異常是數(shù)據(jù)異常, 對(duì)基址寄存器的影響取決于使用的是哪種 ARM core. ? “Base Restored Abort Model” ? StrongARM, ARM9 and ARM10 系列支持 ? 基址寄存器由 ARM core 自動(dòng)恢復(fù) . ? “Base Updated Abort Model” ? ARM7TDMI 系列支持 ? 在異常指令重新執(zhí)行之前基址寄存器必須由處理程序進(jìn)行恢復(fù) ? 兩種模式的例子程序包含在 ADS examples 目錄下。 // process the interrupt // insert checks for other interrupt sources here *(source+1) = 0。 if (*source == 1) // which interrupt was it int_handler_1()。 ? Note: 通常中斷處理程序總是應(yīng)該包含清除中斷源的代碼。 ? FIQ比 IRQ優(yōu)先級(jí)高,表現(xiàn)在: ? 當(dāng) FIQ和 IRQ異常中斷同時(shí)產(chǎn)生時(shí), CPU先處理 FIQ異常中斷。 break。 r1 now contains pointer to parameters on stack BL C_SWI_Handler ;根據(jù)中斷號(hào)跳轉(zhuǎn)到相應(yīng)的功能程序 LDMFD sp!, {r1} MSR spsr_csxf, r1 LDMFD sp!, {r0r3,r12,pc}^ 提取 SWI 指令的常量域 (24bits: 如果從 ARM中調(diào)用 , 8bits: 如果從 Thumb 中調(diào)用 ) 恢復(fù)寄存器并返回 取出 spsr 并壓棧保存 寄存器壓棧,設(shè)置堆棧指針 調(diào)用 C SWI 處理程序 { } } { Assemble Language of ARM 28 C SWI 處理程序示例 // Memory mapped registers volatile unsigned parallel_output, parallel_input。 ? 函數(shù)調(diào)用 Semihosting(0x4, “ARM”)。 } foo STMFD sp!,{lr} SWI 0x24 LDMFD sp!,{pc} Assemble Language of ARM 24 傳遞參數(shù)到 SWIs ? 參數(shù)傳遞使用 : ? SWI 號(hào) (. semihosting, 使用 0x123456 (ARM) or 0xAB (Thumb) ? 內(nèi)核寄存器 ? 匯編中,簡(jiǎn)單設(shè)置需要的寄存器,然后調(diào)用 SWI 即可 : LDR r1, =Text 。 Assemble Language of ARM 21 軟中斷 SWI 0x01 向量表 用戶程序 (C/ASM) SWI 處理程序 (ASM) (可選) SWI 處理程序 (C) ? 用戶程序調(diào)用 SWI ? SWI 中斷處理程序包含匯編部分和可選用的 C 部分 Assemble Language of ARM 22 ? SWI異常中斷調(diào)用 ? 執(zhí)行 SWI指令后,系統(tǒng)將會(huì)把 CPSR寄存器的內(nèi)容保存到寄存器 SPSR_svc中,將返回地址保存到LR_svc中。 ? 復(fù)位異常中斷處理程序不需要返回,整個(gè)應(yīng)用系統(tǒng)是從復(fù)位異常中斷處理程序開始執(zhí)行的。 未定義指令中止模式( und) 當(dāng)未定義的指令執(zhí)行時(shí)進(jìn)入該模式,可用于支持通過軟件仿真硬件的協(xié)處理器。 ? 異常中斷向量表及異常中斷優(yōu)先級(jí) Assemble Language of ARM 5 ? 各異常中斷的中斷向量地址及其異常中斷處理優(yōu)先級(jí)表 中斷向量地址 異常中斷類型 異常中斷模式 優(yōu)先級(jí) * 0x0 復(fù)位 特權(quán)模式( SVC) 1 0x4 未定義的指令 未定義指令中止模式( Undef) 6 0x8 軟件中斷( SWI) 特權(quán)模式( SVC) 6 0x0c 指令預(yù)取中止 中止模式 5 0x10 數(shù)據(jù)訪問中止 中止模式 2 0x14 保留 未使用 未使用 0x18 外部中斷請(qǐng)求( IRQ) 外部中斷( IRQ)模式 4 0x1c 快速中斷請(qǐng)求( FIQ) 快速中斷( FIQ)模式 3 *注: 1最高; 6最低 Assemble Language of ARM 6 ? 異常中斷使用的寄存器 ? 各異常中斷對(duì)應(yīng)著一定的處理器模式。 快速中斷請(qǐng)求( FIQ ) 當(dāng)處理器的快速中斷請(qǐng)求引腳有效,且 CPSR中的 F位為 0時(shí),產(chǎn)生 FIQ異常。 指令預(yù)取中止 若處理器預(yù)取指令的地址不存在,或該地址不允許當(dāng)前指令訪問,存儲(chǔ)器會(huì)向處理器發(fā)出中止信號(hào),但當(dāng)預(yù)取的指令被執(zhí)行時(shí),才會(huì)產(chǎn)生
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1