真相Onlyone 2017-08-18 07:15 采纳率: 0%
浏览 3330
已结题

基于zynq zc706板子的按键中断驱动,无法触发中断

本人最近在做一个关于zynq zc706的按键中断驱动,驱动中使用相应API获取设备树中的设备地址和中断号,然后申请中断,最后编译、加载驱动模、申请中断号块均能够成功,但无论怎样就是不能够触发中断,在这里希望能够得到有经验的前辈指教!详细信息如下:

硬件平台:zynq zc706
软件开发:vivado 2015.2和petalinux 2015.2

本人首先使用vivado搭建硬件环境,如下图:
整体环境
GPIO相关
vivado生成的地址

然后使用petalinux生成设备树,并更改其中的pl.dtsi相关信息,更改完毕如下图:
pl.dtsi内容

再然后编写驱动代码,如下图:
probe函数
设备树的compatible与platform_driver

最后petalinux-build,将生成的BOOT.bin和image.ub放入SD卡,启动板子,insmod button.ko,串口打印信息如下图:
图片说明
上图中,显示驱动正确加载成功,红线部分标注的是驱动中自动获取设备树相关设备信息,得到的地址和中断号
图片说明
输入命令cat /proc/interrupt,也能看到相应的中断号,但是无论怎么按下按键都不能够触发中断,也就是上图中的触发次数始终为0,请问这是什么原因呢?

  • 写回答

3条回答 默认 最新

  • devmiao 2017-08-19 01:51
    关注
    评论

报告相同问题?