[X]关闭

PL如何产生逻辑中断到PS?

文档创建者:leehowal
浏览次数:8266
最后更新:2019-08-12
悬赏1积分已解决
在教程第十三章中使用了PL中断,但都是靠GPIO口产生的。如何使用逻辑产生中断呢?


最佳答案

查看完整内容

大概就這幾個步驟: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) ...

发表评论已发布 3

bioak

发表于 2016-9-1 22:49:11 | 显示全部楼层




大概就這幾個步驟: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一下,不然系統可能抓不到.



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

uisrc

发表于 2016-9-11 19:53:28 | 显示全部楼层


越努力越幸运!加油!
回复

使用道具 举报

jenny

发表于 2019-8-12 11:27:25 | 显示全部楼层

bioak 发表于 2016-9-1 22:49
大概就這幾個步驟:1. 在vivado 下使用create and package IP 做一個PL的IP.
     -->這個IP不用勾選in ...

你好,请问能给个联系方式吗,或者分享一下自定义IP带中断的linux驱动是怎么写的。我自己做的驱动程序在request_irq的时候一直都有错误。
谢谢。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则