嵌入式,ARM掃盲

2021-05-09 20:33:19 字數 1265 閱讀 6647

炮製了一篇,基本是拿來主義,不算技術,只能算雜談。

注: 此處正常模式和普通模式是我生造的術語,沒有確定是否存在,各位請暫且忽略。

arm異常處理過程

arm的異常,包括復位、未定義指令、軟體中斷、資料訪問中止、外部中斷請求、快

速中斷請求。

處理過程:

1) 儲存現場,包括處理器當前狀態、中斷遮蔽位、cpsr暫存器的各條件標誌位(

複製到spsr)

2) 設定cpsr中相應的位

3) 將r14暫存器設定成返回位址,最後將pc設定成該異常的異常向量位址,執行

異常處理。

4) 由異常返回,先恢復處理器狀態(spsr->cpsr),然後返回到發生異常中斷

指令的下一條指令處執行,通過將對應模式下連線暫存器r14中的值裝載到pc

arm暫存器

arm共有37個暫存器,其中31個通用暫存器和6個狀態暫存器,都是32位暫存器,但狀

態暫存器只使用了其中的12位。

arm處理器中當前可見的暫存器組和處理器當前工作模式是有關。每種模式都有一組

對應的暫存器組,各暫存器組中任意時刻可見的暫存器包括程式計數器,15個通用寄

存器(r0-r14)以及乙個或兩個狀態暫存器

通用暫存器分三類:

未備份暫存器r0-r7,所有處理器模式下都只同乙個物理暫存器。

備份暫存器r8-r14

r8-r12每個有兩個不同的物理暫存器

r13,r14每個六個不同的物理暫存器,系統模式和使用者模式共用乙個

r13通常叫做堆疊指標

r14通常被稱為連線暫存器(lr)

程式計數器pc:pc值為當前指令位址加8位元組,即當前指令的下兩條指令的位址。

由於arm每條指令都是32位元組長度,所以是字對齊的,即pc低兩位為0。

程式狀態暫存器

cpsr(當前程式狀態暫存器),任何模式都可訪問。

spsr(備份程式狀態暫存器),各模式專有

arm的儲存系統

arm為單位址空間,大小為2^32個8位位元組,。arm是大小端可配置的,預設為小端。

快速上下文切換技術(fcse)通過修改系統中不同程序的虛擬位址,避免在程序間切

換時造成的虛擬位址到實體地址的重對映,從而提高了效能。通常fcse位於cpu和mmu

之間。arm最小系統

通常包括boot選擇,電源,復位,時鐘,儲存器,jtag介面等電路部分,通常把最小

系統做成多層核心板(先調穩定了),把外圍介面板設計成雙層板,然後將這兩個系

統用乙個介面連線起來。

ARM嵌入式實驗

問題 在startup.s中增加函式,由c程式呼叫,以此取得彙編中相關引數的設定值。獲取pll中m,p值,c程式呼叫彙編函式 在c語言中,要extern 乙個函式宣告即可,然後這個函式在彙編裡面實現。在彙編裡面,用export 把c語言定義的函式名引進來,再開始編寫函式名開始的段 實現 c程式呼叫 ...

嵌入式arm開發學習

今天是學習arm的第二天.感覺又懂了一點.記錄下來,以便以後不時之需.今天先是看了一些linux應用開發的東西,由於之前自己對linux程式設計還算是有過了解,這部分看得很快,基本沒有什麼閱讀障礙.個人建議想學嵌入式linux的人,最好先把unix環境高階程式設計看一遍.你會發現一切都會順其自然.之...

嵌入式ARM彙編複習

嵌入式系統是將先進的計算機技術 半導體技術和電子技術與各個行業的具體應用相結合後的產物。嵌入式系統的特點 形式多樣 面向特定應用,處理器和處理器體系結構型別多,關注成本,實時性和可靠性的要求 嵌入式微處理器的體系結構 可以分為馮 諾依曼 von neumann 結構或哈佛 harvard 結構兩大類...