版權聲明:本文為部落客原創文章,如需轉載,請注明出處 https://blog.csdn.net/qq_36554582/article/details/81267844 </div>
<div id="content_views" class="markdown_views prism-atom-one-dark">
<!-- flowchart 箭頭圖示 勿删 -->
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path></svg>
<ul>
- 嵌入式系統的體系結構按指令集可以分為兩大類:複雜指令集結構(CISC)和精簡指令集結構(RISC)
- 嵌入式體系結構按存儲機制分為馮諾依曼結構和哈佛結構
- 馮諾依曼結構中程式和指令并存,共用一條總線;而哈佛結構中資料和指令使用兩條獨立的總線,不允許資料和指令共存
- ARM全部采用RISC結構,且多為哈佛結構
- ARM處理器分為五類:
-
- 經典ARM處理器(ARM7、ARM9、ARM11)
- ARM Cortex嵌入式處理器(Cortex—A)
- ARM Cortex實時嵌入式處理器(Cortex—R)
- ARM Cortex應用處理器(Cortex—M)
- ARM共有三種工作狀态:ARM狀态、Thumb狀态及Thumb-2狀态、調試狀态
-
- ARM狀态的指令全都是32位的
- Thumb狀态就是運作Thumb-2指令的狀态,它是執行16指令的狀态,但是他同時也相容32位指令,因為在有些情況下如異常處理時必須由Thumb狀态切換到ARM狀态,然後處理完畢後重新傳回到Thumb狀态
- 處理器停機調試時進入調試狀态
- 所有ARM複位之後均處于ARM狀态
- 通過BX指令,将操作數寄存器的最低位設定為1即可将ARM狀态切換到Thumb狀态;将操作數寄存器的最低位設定為0即可将Thumb狀态切換到ARM狀态;當處理器進行異常處理時,則從異常向量位址開始執行,将自動進入ARM狀态
- ARM體系結構(除Cortex外)支援7中工作模式,取決于目前程式狀态寄存器低5位的值
- 使用者模式(User):程式正常執行工作模式
- 快速中斷模式(FIQ):處理高速中斷,用于高速資料傳輸或通道處理
- 外部中斷模式(IRQ):用于普通中斷管理
- 管理模式(SVC):作業系統的保護模式,處理軟體中斷SWI
- 中止模式(ABT):處理存儲器故障,實作虛拟存儲器和存儲器保護
- 未定義指令模式(UND):處理未定義的指令陷阱,用于支援硬體協處理器仿真
- 系統模式(SYS):運作特權級的作業系統任務
- ARM狀态下的寄存器組織
- R7~R0為通用的寄存器
- CPSR為目前程式狀态寄存器(包括運算标志位、條件碼标志等)
- SPSR為備份的程式狀态寄存器
- R0~R15均為32位的寄存器
- R13為堆棧指針寄存器,R14為程式連結寄存器,R15均為PC(程式計數器)
- Thumb狀态下的寄存器組織
- 高位寄存器R8~R12在Thumb狀态下不可見,即不能直接作為通用寄存器使用,而在Thumb-2下可以使用,即R8~R12隻有在32位指令下才可當做通用寄存器使用
- ARM體系結構有兩種方法存儲資料字:大端模式和小端模式
- 大端模式:32位資料字的高位元組存儲在低位址中,低位元組存儲在高位址中
- 小端模式:32位資料字的高位元組存儲在高位址中,低位元組存儲在低位址中
- 系統複位時一般自動預設為小端模式
- 外部中斷請求(IRQ)
- 快速中斷請求(FIQ)
- MMU:存儲器管理單元
- MPU:存儲器保護單元