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

正文內容

[信息與通信]嵌入式系統(tǒng)-chapter2-嵌入式硬件系統(tǒng)基礎g-資料下載頁

2025-04-14 00:35本頁面
  

【正文】 3:0] 被一些 SIMD指令使用 – E 位控制讀取 /存儲的大小端 – A 位關閉不準確的數(shù)據異常中斷 – IT [abcde] 用于 Thumb2指令組的條件執(zhí)行 10 8 9 19 GE[3:0] E A IT cond_abcde 電子科技大學嵌入式軟件工程中心 ARM微處理器:程序狀態(tài)寄存器 ? 模式控制位 M0M4 電子科技大學嵌入式軟件工程中心 ARM指令集 ? 所有的指令長度都是 32位 / 許多指令都在一個單獨周期內執(zhí)行 ? 指令是條件執(zhí)行的 ? Load(加載 ) / store(存儲 )架構 – 數(shù)據處理指令示例 SUB r0,r1,5 ADD r2,r3,r3,LSL 2 ANDS r4,r4,0x20 ADDEQ r5,r5,r6 – 分支指令示例 B Label – 內存訪問指令示例 LDR r0,[r1] STRNEB r2,[r3,r4] STMFD sp!,{r4r8,lr} r0 = r1 5 r2 = r3 + (r3 * 4) r4 = r4 AND 0x20 (set flags) IF EQ condition true r5 = r5 + r6 Branch forwards or backwards relative to current PC (+/ 32MB range) Load word at address r1 into r0 IF NE condition true, store bottom byte of r2 to address r3+r4 Store registers r4 to r8 and lr on stack. Then update stack pointer 電子科技大學嵌入式軟件工程中心 Thumb指令集 ? Thumb是一個 16位的指令集 – 對 C代碼的緊密度做了優(yōu)化 (大約是 ARM代碼大小的 65%) – 對窄內存的性能進行了提高 – 是 ARM指令集的功能子集 ? 對大多數(shù)的 Thumb指令而言 – 沒有使用條件執(zhí)行 ? 標志一直都是置位的 – 源寄存器和目標寄存器是相同的 – 只使用了低端寄存器 – 常量有大小的限制 – 沒有使用內嵌桶型移位器 (inline barrel shifter) ? 通過使用 BX指令來切換 ARM態(tài)和 Thumb態(tài) ? Thumb不是一個 “ 常規(guī) ” 的指令集 ! – 對指令的約束有時是不一致的 – 一般由編譯器生成,而不是手動編寫代碼 電子科技大學嵌入式軟件工程中心 ARM和 Thumb的性能對比 0 5000 10000 15000 20220 25000 30000 35000 Dhrystone / sec @20MHz on ARM7TDMI ARM Thumb 32 bit 16 bit 16 bit with 32 bit stack 內存寬度 (0等待狀態(tài) ) 電子科技大學嵌入式軟件工程中心 Thumb2 指令集 ? Thumb2 主要是對 Thumb指令集架構 (ISA)的擴展指令 – 增加了 32位指令實現(xiàn)了幾乎所有的 ARM指令集架構的功能 – 保留了完整的 16位 Thumb指令集 – ARM1156T2S和 Cortex 系列支持 Thumb2 – CortexM3只支持 Thumb2! ? 設計目標 :以 Thumb的指令密度達到 ARM的性能 – 不需要手動選擇指令集 ? 減少了剖析代碼和理解執(zhí)行方式的需求 ? 編譯器可以自動地選擇 16位和 32位指令的混合 – 可以訪問 ARM態(tài)的行為 ? 異常可以直接處理 ? 可以訪問協(xié)處理器 ? 可以完成 v5TE的高級數(shù)據處理 – 條件執(zhí)行可以通過 IfThen (IT) 指令 ? 14條緊接指令可以條件性地執(zhí)行 電子科技大學嵌入式軟件工程中心 Thumb 2的性能 /密集度 性能 代碼密度 100% ARM code 100% Thumb code Random mix ?Profiled? mix Thumb2 電子科技大學嵌入式軟件工程中心 指令流 執(zhí)行單元 ARM Thumb 譯碼階段 執(zhí)行階段 取指階段 Jazelle ? Jazelle使得 ARM核可以執(zhí)行 8位的 Java字節(jié)碼 – 95%的字節(jié)碼可以用硬件執(zhí)行 (典型 ) ? 普通 JVM: Caffeinemarks/MHz ? ARM9EJ: Caffeinemarks/MHz – 功耗效率顯著提高 – 相比 ARM9E, ARM9EJS多了大約 12K個額外的門電路 – ARM JTEK (Java Technology Enabling Kit)提供了支持代碼 ? 當處理器在 Jazelle態(tài)執(zhí)行時 : – 所有的指令都是 8位寬 – 處理器進行字訪問一次讀 4條指令 Jazelle 電子科技大學嵌入式軟件工程中心 ARM微處理器:異常 ? 異常是由內部或者外部原因引起的 , 當異常發(fā)生時 CPU將暫停執(zhí)行當前指令自動到指定的向量地址讀取指令并且執(zhí)行 。 – 在 X86上 , 當有異常發(fā)生時 CPU是 到指定的向量地址讀取要 執(zhí)行的程序的地址 – 而 ARM是 到向量地址的地方 讀取指令 , 也就是ARM的向量地址處存放的是一條指令 ( 一般是一條跳轉指令 ) 電子科技大學嵌入式軟件工程中心 ARM微處理器:異常 ? X86體系的中斷跳轉 內存地址 IDT表 0x0000 0x0004 0x0008 0x000c 0x0010 中斷服務程序入口地址ISR_addr . . . . . 0x003f4 0x003f8 0x003fc ISR() { 保存現(xiàn)場 中斷處理 恢復現(xiàn)場 } 中斷到來,傳入中斷號。 CPU根據 (中斷號 4)找尋內存地址 將相應內存地址中的isr_addr加載到 PC,實現(xiàn)程序跳轉 電子科技大學嵌入式軟件工程中心 ARM微處理器:異常 ? ARM中斷的跳轉 0x00000000 LDR PC, Reset_Addr 0x00000004 LDR PC, Undefined_Addr 0x00000008 LDR PC, SWI_Addr 0x0000000c LDR PC, Prefetch_Addr 0x00000010 LDR PC, Abort_Addr 0x00000014 NOP 0x00000018 LDR PC, IRQ_ISR_Addr 0x0000001c LDR PC, FIQ_ISR_Addr 內存地址 異常向量表 IRQ_ISR() { ….. 判斷中斷源 ……. } 觸發(fā) IRQ的設備處理程序 Device() { …….. } 在 X86中,根據中斷號得出的中斷處理程序已經判斷了中斷源,而在 ARM中, IRQ只是一類中斷的總稱,還需要具體判斷觸發(fā) IRQ的是哪個設備! 電子科技大學嵌入式軟件工程中心 ARM微處理器:異常 ? ARM CPU將引起異常的類型分為 7種 電子科技大學嵌入式軟件工程中心 ARM微處理器:異常 ? 當異常出現(xiàn)時,異常模式分組的 R14和 SPSR用于保存狀態(tài),即: R14_exception_mode=return link SPSR_exception_mode=CPSR CPSR[4:0]=exception mode number CPSR[5]=0 /*在 ARM狀態(tài)執(zhí)行 */ ifexception_mode==Reset or FIQ then CPSR[6]=1 /*禁止快速中斷 */ CPSR[7]=1 /*禁止正常中斷 */ PC=exception vector address ? 當處理異常返回時,將 SPSR傳送到 CPSR, R14傳送到 PC 電子科技大學嵌入式軟件工程中心 ARM微處理器:異常 ? Reset: CPU被復位后,進入 Supervisor Mode并且禁止 FIQ和 IRQ。 ? Undefined Instructions: CPU執(zhí)行一條未被定義的指令時就會觸發(fā)該異常。這種機制可以用于通過軟件仿真的方式擴展THUMB or ARM指令集 。 ? SWI:軟中斷( SWI)是執(zhí)行 SWI指令 時觸發(fā)的,該異常主要用于 OS的系統(tǒng)調用。 電子科技大學嵌入式軟件工程中心 ARM微處理器:異常 ? Prefetch Abort: CPU在 讀取指令時發(fā)生讀內存錯誤 并且 該指令又要被執(zhí)行 則觸發(fā)該異常;如果只是在讀取指令時發(fā)生了內存錯誤而該指令又未被執(zhí)行則不會觸發(fā)該異常。 ? Data Abort:當 CPU在 讀寫數(shù)據 時,如果發(fā)生錯誤則觸發(fā)該異常。 電子科技大學嵌入式軟件工程中心 ARM微處理器:異常 ? IRQ:當外部 IRQ輸入請求發(fā)生時( IRQ中斷已經被使能),觸發(fā)該異常。 ? FIQ: FIQ通常被用于 快速傳輸數(shù)據 。當外部 FIQ輸入請求發(fā)生時( FIQ中斷已經被使能),觸發(fā)該異常。 電子科技大學嵌入式軟件工程中心 ARM微處理器:異常 ? 異常的優(yōu)先級 電子科技大學嵌入式軟件工程中心 ARM微處理器:內存和 I/O ? ARM 的尋址空間是線性的地址空間 , 為 232=4G ? Bytes 0 to 3 存儲第一個 word, bytes 4 to 7存儲第二個 word ? 大小端決定了寄存器的內容和內存內容的格式關聯(lián) – ARM寄存器是字 (4字節(jié) )寬 – ARM是按照字節(jié)順序來尋址內存的 ? ARM支持大端( Bigendian)和小端( Littleendian)的內存數(shù)據方式,可以通過硬件的方式設置端模式,也可以通過軟件的方式來設置( V6版本以上) 電子科技大學嵌入式軟件工程中心 大端的數(shù)據存放格式 低地址 高地址 地址 A 地址 A+1 地址 A+2 地址 A+3 最高有效字節(jié)的地址就是該 word的地址 最高有效字節(jié) 位于最低地址 word a=0x f6 73 4b cd f6 73 4b cd ARM微處理器:內存和 I/O 最高有效字節(jié): Most significant byte 最低有效字節(jié): Least significant byte 電子科技大學嵌入式軟件工程中心 小端的數(shù)據格式 低地址 高地址 地址 A 地址 A+1 地址 A+2 地址 A+3 最低有效字節(jié)的地址就是該 word的地址 最低有效字節(jié)位于最低地址 word a=0x f6 73 4b cd f6 73 4b cd 最高有效字節(jié): Most significant byte 最低有效字節(jié): Least significant byte ARM微處理器:內存和 I/O 電子科技大學嵌入式軟件工程中心 ARM微處理器:內存和 I/O 大端 : 小端 : 0xb3204500 0xddddddd0 0xb3204500 0xddddddd0 f6 f6 73 73 4b 4b cd cd da da 00 00 ? 實例 – 變量 A: word A=0x f6 73 4b cd,在內存中的起始地址為 0x b3 20 45 00 – 變量 B: half word B=218,在內存中的起始地址為0x dd dd dd d0 問題: half word B=218與 word C=218在內存中的存放方式有何不同?請分大端和小端兩種情況說明。 電子科技大學嵌入式軟件工程中心 ARM微處理器:內存和 I/O 數(shù)據信息 狀態(tài)信息 控制信息 數(shù)字量 模擬量 開關量 連續(xù)幾位二進制形式表示的數(shù)或字符。如鍵盤輸入的信息以及打印機、顯示器輸出的信息等 時間上連續(xù)變化的量,如溫度、壓力、流量等 只有兩個狀態(tài)的量,如閥門的合與斷、電路的開與關等 CPU與I/O設備之間的接口信息 反映外設當前工作狀態(tài)的信息 READY信號:輸入設備是否準備好 BUSY信號:輸出設備是否忙 …… CPU向外部設備發(fā)送的控制命令信息 ?讀寫控制信號 ?時序控制信號
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1