大概就這幾個步驟:1. 在vivado 下使用create and package IP 做一個PL的IP.
-->這個IP不用勾選interrupt.
-->這個IP需拉一條訊號(估記取名為irq_out)到ZYNQ上的IRQ_F2P.
**接著有一個很重要的地方,一定要這樣做(我的是VIVADO 2015.4)
就是在IP EDITOR 裡面這個訊號類別要設為 interrupt
這樣你的SDK出來的xparameters.h中的GIC中断號才會出現.
之後你在device tree中添加這個ip的address以及中断號(記的減32)
然後需要自己寫platform driver
以上完成並且都沒問題的話,你可以在linux下安裝自製driver,並且
用cat指令看 /proc/interrupts 裡面你自製ip的中断次數.
在整理一下:
1.利用vivado 做一個axi PL的IP,並拉一根中断給ZYNQ IRQ_F2P
2.記的給這根中断選成是INTERRUPT類型,這樣SDK才會把這個中断編號出來.
3.在DEVICE TREE中添加你這個IP的中断號以及位置.
4.自製PLATFORM DRIVER,完成後用insmod指令掛載制系統.
5.處發你的IP並觀察 /proc/interrupts 中是否有中断產生.
註:irq中断不要太短,需要hold一下,不然系統可能抓不到.
|