ZYNQ 異常與中斷原理

2021-08-15 05:50:54 字數 1300 閱讀 3969

異常:cpu停止正常工作,執行專用的特權的一段軟體程式,使系統恢復正常。

coretex-a9的異常包括:

1.中斷、

fiq優先於irq:

irq(interrupt request):指中斷模式。

fiq(fast interrupt request):指快速中斷模式。

irqfiq是arm處理器的兩種不同程式設計模式(arm有7種處理模式)。在arm的cpsr中,有乙個i位和乙個f位,分別用來禁止irq和fiq的。

一般的中斷控制器裡我們可以配置與控制器相連的某個中斷輸入是

fiq還是

irq,

所以乙個中斷是可以指定為

fiq或者

irq的,為了合理,要求系統更快響應,自身處理所耗時間也很短的中斷設定為

fiq,否則就設定了

irq。

進入irq中斷後,cpsr的i位被置1,禁止新的irq中斷,但是可以通過清零i位人為開啟irq中斷,允許新的irq中斷被響應。

不過i位清零的時機要把握好,而且要綜合考慮中斷的觸發頻率和優先順序。

一般是在進入中斷後,先清除中斷源,然後清零cpsr暫存器的i位,執行中斷服務**,再次置位cpsr暫存器的i位,退出中斷服務**。

2.異常終止

3.復位

復位是最高優先順序異常而且不能被遮蔽。

4.異常生成指令

工作模式有:

(1)使用者模式(usr , user mode)。arm處理器正常的程式執行狀態。

(2)快速中斷模式(fiq , fast interrupt request mode)。用於高速資料傳輸或通道處理。當觸發快速中斷時進入此模式。

(3)外部中斷模式 ( irq , interrupt request mode )。用於通用的中斷處理。當觸發外部中斷時進入此模式。

(4)管理模式 ( svc , supervisor mode )。作業系統使用的保護模式。在系統復位或者執行軟體中斷指令swi時進入。

(5)資料訪問終止模式 ( abt , abort mode )。當資料或指令預取終止時進入該模式,可用於虛擬儲存及儲存保護。

(6)系統模式(sys , system mode )。執行具有特權的作業系統任務。

(7)未定義指令中止模式 ( und , undefined mode )。當未定義的指令執行時進入該模式,可用於支援硬體協處理器的軟體**。

在arm和thumb指令集中,都有svc指令,svc用於使用者**想要訪問系統特級部分。

ZYNQ中斷實驗

程式中編寫了 3 個函式,乙個是 main 主函式,乙個是中斷建立函式,另乙個是中斷呼叫 函式。首先在 main 函式中初始化定時器 timer,指定 timer 的裝置號為 xpar xscutimer 0 device id,此裝置號在 xparameters.h 的標頭檔案中定義了的。再設定定...

zynq中斷入門

zynq的ps是基於arm架構,使用兩個arm cortex a9處理器和gic pl390中斷控制器。系統中斷框圖如下 interrupt controller 中斷控制器 框圖如下 中斷詳細分為sgi software generated interrupts 軟體中斷,ppi private ...

zynq中mgtx應用 ZYNQ中斷體系

arm中斷體系 01 arm體系中,在儲存位址的低位,固化了乙個32位元組的硬體中斷向量表。異常中斷發生時,程式計數器pc所指的位置不同,異常中斷就不同。中斷結束後,中斷不同,返回位址也不同。但是,對於系統復位中斷,不需要返回,因為整個應用系統就是從復位中斷中開始的。快速中斷請求 外部引腳的快速中斷...