ARM裸板 ARM模式 異常與狀態

2021-10-02 09:21:00 字數 1728 閱讀 6688

3.arm的7種模式(mode)

4.arm的2種狀態(state)

5.異常的處理流程

6.程式以thumb指令集執行

2.中斷方式

常見的異常有

system (sys): a privileged user mode for the operating system

irq (irq): used for general-purpose interrupt handling

supervisor (svc): protected mode for the operating system

abort mode (abt): entered after a data or instruction prefetch abort

undefined (und): entered when an undefined instruction is executed

除了使用者模式以外的6中模式 成為特權模式(privileged mode),可以程式設計操作cpsr(當前程式狀態暫存器)直接進入其他模式

不同模式是為了更好的應對所對應的異常(差別在於:暫存器的資源)

banker register 為備份暫存器,可以成為專屬暫存器,r13(sp棧指標)、r14(lr返回位址)

spsr(儲存程式狀態暫存器):用來儲存「被中斷模式的cpsr」,相當於cpsr的備份暫存器,eg:當正處於user mode,發生中斷,進入irq mode,spsr_irq就儲存了user mode那一時刻的cpsr

m0~m4:模式位 mode bit (7種模式)

t:狀態位 state bits(arm or thumb)

/* 從arm state 切換到thumb state*/

adr r0,thumb_func

add r0,r0,#1 /*bit0 = 1時,bx就會切換cpu狀態至thumb state*/

bx r0

.code 16

thumb_func:

/*..............*/

gcc disable built-in memcpy

ARM裸板 軟體中斷分析及示例

2.swi中軟處理過程 3.取出swi指令中的值 如何切換?發生異常即可 異常向量表 start b reset vector 0 reset 0位址對應reset ldr pc,und addr vector 4 und 發生未定義指令異常,則進入 處理未定義異常函式 絕對跳轉,跳轉至sdram中...

ARM的異常與CPSR

1 異常處理流程 異常向量表 當異常產生時,arm core 拷貝 cpsr 到 spsr 設定適當的 cpsr 位 改變處理器狀態進入 arm 態 改變處理器模式進入相應的異常模式 設定中斷禁止位禁止相應中斷 如果需要 儲存返回位址到 lr 設定 pc 為相應的異常向量 返回時,異常處理需要 從 ...

ARM裸板驅動開發之序列通訊協議

最新打算學習基於核心驅動開發方面的知識,在看書的過程中發現,除了要遵循核心的開發規則外,具體實現部分和裸機開發差異不大,由於研究生期間做過微控制器的開發,但畢竟arm裸機開發要比微控制器開發更複雜的多,因此打算從裸機開發開始重新學習一遍。接下來就三星的s3c2440a為平台開始接下來的學習過程,該晶...