取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
pp
Adventurer
Adventurer
924 次查看
注册日期: ‎09-04-2020

ZYNQ的PL端设备树检测不到外部引脚是中断的问题

跳至解决方案

我使用的软件版本是vivado 2019.1

我的block design 设计如下图

pp_0-1615468094197.png

 

我设置了两个外部的引脚作为输入,一个是key1,一个是key2,这两个外接的实际物理引脚是两个按键,然后我对key1和key2端口做了下面的属性设置

pp_1-1615468167539.png

pp_2-1615468192387.png

 

可以看到,我把key1和key2两个端口设置成了中断引脚,目的是为了让按键成为中断,并且呢,想在后面用xilinx sdk 生成的PL端设备树文件pl.dtsi的时候,能识别出这两个是中断引脚,但是我生成设备树后,设备树文件如下

pp_3-1615468271712.png

 

就完全没有关于key1 和key2的中断信息,我想知道这是为什么呢?   这样ARM端就没办法识别中断做中断驱动了呀

这个对我来说非常重要,请前辈们为我解答,不甚感激

 

0 项奖励
1 解答

已接受的解答
chaoz
Xilinx Employee
Xilinx Employee
813 次查看
注册日期: ‎09-14-2018

可以参考下这个,

https://www.kernel.org/doc/Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
主要就几个:

interrupt-parents指向了中断控制器。在 MPSoC 中有多个外设都有中断控制器属性,分别是 GIC, GPIO, PCIe。

interrupts 后的参数指定了中断号和中断属性。

Device tree bindings interrupts.txt 中定义了 interrupts 后参数的意义。

 

----------------------------------------------------------------------------------------------
如果帖子有帮助,别忘“接受为解决方案”或“奖励”。谢谢!
Don't forget to "Accept as solution" or "Kudo" if it helps. Thanks!
----------------------------------------------------------------------------------------------

在原帖中查看解决方案

7 回复数
chaoz
Xilinx Employee
Xilinx Employee
863 次查看
注册日期: ‎09-14-2018

关于PL侧加入的自动义IP或者用户逻辑,需要用户自己来编辑dt node. 你需要自己添加key相关节点以及定义用到的interrupt。

工具无法知道用户的自定义逻辑该调用什么driver.

----------------------------------------------------------------------------------------------
如果帖子有帮助,别忘“接受为解决方案”或“奖励”。谢谢!
Don't forget to "Accept as solution" or "Kudo" if it helps. Thanks!
----------------------------------------------------------------------------------------------

 

0 项奖励
chaoz
Xilinx Employee
Xilinx Employee
861 次查看
注册日期: ‎09-14-2018

你是想知道中断号吗?这个查询ug585中断相关章节就能知道,PL-PS中断按照顺序排列。

0 项奖励
pp
Adventurer
Adventurer
858 次查看
注册日期: ‎09-04-2020

pp_0-1615537884332.png

我想知道的是关于图中红框 框出来的信息,软件不会给我生成

0 项奖励
pp
Adventurer
Adventurer
858 次查看
注册日期: ‎09-04-2020

可以给我一个代码参考一下吗?

0 项奖励
chaoz
Xilinx Employee
Xilinx Employee
837 次查看
注册日期: ‎09-14-2018

@pp 

以你截图的adc_top节点为例,注释中写明了这是工具生成的place holder. 实际内容应该用户在此基础上修改。比如其中的compatible属性对应使用的driver,其实是不存在的。

按你的测试,我推测因为没有IP只是连线,工具不会生成place holder.

----------------------------------------------------------------------------------------------
如果帖子有帮助,别忘“接受为解决方案”或“奖励”。谢谢!
Don't forget to "Accept as solution" or "Kudo" if it helps. Thanks!
----------------------------------------------------------------------------------------------

pp
Adventurer
Adventurer
835 次查看
注册日期: ‎09-04-2020

那我应该具体要怎么写呢?  现在虽然知道是要我自己添加中断的信息了, 但我现在毫无头绪,不知道怎么写,请问有代码参考吗

0 项奖励
chaoz
Xilinx Employee
Xilinx Employee
814 次查看
注册日期: ‎09-14-2018

可以参考下这个,

https://www.kernel.org/doc/Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
主要就几个:

interrupt-parents指向了中断控制器。在 MPSoC 中有多个外设都有中断控制器属性,分别是 GIC, GPIO, PCIe。

interrupts 后的参数指定了中断号和中断属性。

Device tree bindings interrupts.txt 中定义了 interrupts 后参数的意义。

 

----------------------------------------------------------------------------------------------
如果帖子有帮助,别忘“接受为解决方案”或“奖励”。谢谢!
Don't forget to "Accept as solution" or "Kudo" if it helps. Thanks!
----------------------------------------------------------------------------------------------

在原帖中查看解决方案