zynq中斷入門

2021-09-24 03:49:25 字數 1753 閱讀 9426

zynq的ps是基於arm架構,使用兩個arm cortex a9處理器和gic pl390中斷控制器。

系統中斷框圖如下:

interrupt controller(中斷控制器)框圖如下:

中斷詳細分為sgi(software generated interrupts)軟體中斷,ppi(private peripheral interrupts)私有外設中斷,spi(shared peripheral interrupts)共享外設中斷。

1.      sgi軟體中斷

存在16個軟體產生的中斷,通過向icdsgir暫存器寫入sgi中斷號,以及指定目標cpu,來產生乙個軟體中斷,通過讀icciar暫存器或者向icdicpr暫存器相應的位元位寫1,可以清楚中斷。所有的sgi為邊沿觸發。

2.      ppi私有外設中斷

每個cpu連線乙個私有的共享5個外設中斷,素有中斷的敏感型別是固定的,不能改變,upi全域性定時器,nfiq,cpu私有定時器,awdt,nirq。

3.      spi共享外設中斷。

由ps和pl上的各種i/o控制器和儲存器控制器產生,這些中斷訊號會被路由到cpu。ps的外設產生的spi中斷也會路由到pl上。預設地,所有共享外設中斷型別在復位時是高電平,然後軟體使用的icdicfr2和icdicfr5暫存器程式設計中斷32,33和92為上公升沿敏感。

暫存器表

主要用到的中斷函式有:

xscugic_lookupconfig               中斷設定查詢

xscugic_cfginitialize                gic初始化

xscugic_setprioritytriggertype       設定中斷優先順序及中斷觸發方式

xscugic_connect                  設定中斷服務程式入口位址

xscugic_enable                   gic允許

xgpio_interruptglobalenable             gpio全域性中斷允許

xgpio_interruptenable                相應gpio中斷允許

xil_exceptioninit                    異常處理函式

xil_exceptionregisterhandler

xil_exceptionenable

ZYNQ中斷實驗

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

zynq中mgtx應用 ZYNQ中斷體系

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

32 配置引腳中斷 ZYNQ中斷體系

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