Zynq的中斷號在dts中的表示

2021-08-25 16:39:06 字數 2402 閱讀 3015

轉至

關於zynq的中斷述,在網上和datesheet中已經有詳細的說明,但是在3.x的核心中,開始用dts來詳細所有device的infor和source,這裡就有關於中斷號的指定,但是在關於zynq的dts檔案中,我們看到指定的中斷號不是datesheet上說所的id,但是在proc下,我們可以看到每個裝置的中斷號對應關係:

zynq> more /proc/interrupts 

cpu0 cpu1

27: 0 0 gic 27 gt

29: 233 282 gic 29 twd

35: 0 0 gic 35 f800c000.ps7-ocmc

39: 2 0 gic 39 f8007100.ps7-xadc

40: 0 0 gic 40 f8007000.ps7-dev-cfg

43: 530 0 gic 43 ttc_clockevent

45: 0 0 gic 45 f8003000.ps7-dma

46: 0 0 gic 46 f8003000.ps7-dma

47: 0 0 gic 47 f8003000.ps7-dma

48: 0 0 gic 48 f8003000.ps7-dma

49: 0 0 gic 49 f8003000.ps7-dma

51: 10 0 gic 51 e000d000.ps7-qspi

53: 0 0 gic 53 ehci_hcd:usb1

54: 0 0 gic 54 eth0

56: 35 0 gic 56 mmc0

72: 0 0 gic 72 f8003000.ps7-dma

73: 0 0 gic 73 f8003000.ps7-dma

74: 0 0 gic 74 f8003000.ps7-dma

75: 0 0 gic 75 f8003000.ps7-dma

82: 68 0 gic 82 xuartps

ipi1: 0 495 timer broadcast interrupts

ipi2: 1187 1239 rescheduling interrupts

ipi3: 0 0 function call interrupts

ipi4: 16 80 single function call interrupts

ipi5: 0 0 cpu stop interrupts

ipi6: 42 23 irq work interrupts

ipi7: 0 0 completion interrupts

err: 0

zynq>

在datesheet中,我們可以看到與上面的表述是相對應的:

這裡是相對應的,如eth0的中斷號為54,但是在dts中關於interrupte的指定如下,如關於eth0的表述:

ps7_ethernet_0: ps7-ethernet@e000b000  ;

} ;} ;

這裡指定中斷的型別為spi,中斷號為22,中斷是高電平觸發。這裡指定的中斷號22,其實不是datesheet上指定的中斷號,而是用的對應在spi_status暫存器中的序號,eth0是在spi_status_0中的bit22,所以這裡就指定為中斷號為22,如果是在spi_status_1中的22,這中斷號就是32+22=54.

Linux下ZYNQ中GPIO中斷號獲取

使用提供的gpio to irq是最佳的選擇,裝置樹配置起來也比較方便,都不需要將中斷父結點設定為gpio0。key 驅動程式申請一下對映後的終端號key test.irq int key test.irq gpio to irq key test.key gpio 使用key test.irq就可...

常見的中斷號

最近工作需要用dos系統開發,以前一直搞linux,還容得下其他的系統 下面將pc機常用的中斷號貼出來,都怪自己大學的微機原理與接 術沒學好啊!int 00h 0 作為除數 int 01h 單步中斷 int 02h 非遮蔽中斷 int 03h 斷點中斷 int 04h 算數溢位錯誤 int 05h ...

zynq 的定時器中斷實驗

本文通過定時器中斷實驗,介紹zynq 的中斷和定時器的基本使用方法。本文是在helloworld 實驗的基礎上完成的,所以必須先完成了helloworld 的實驗。這個可以學習本部落格的helloworld 實驗,或者開發板提供的helloworld 實驗。1 中斷和定時器介紹 中斷對於保證任務的實...