社区导航

 
快捷导航
  • 首页
  • 论坛
  • 查看新帖
  • 最新回复
  • 社区活动
  • 联系管理员
  • 消灭零回复
  • E金币兑换
  • 干货
搜索
查看: 1093|回复: 12

[求助] fpga不能触发hps中断的问题

[复制链接]

8

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-1-10 16:26:36 | 显示全部楼层 |阅读模式
1芯币
楼主参考的是斑竹chenzhufly 做的fpga触发hps中断的帖子http://bbs.eeworld.com.cn/thread-459615-1-1.html
楼主用的开发板为de10-nano,在arm上插入驱动模块并且显示中断注册成功如下图

cat /proc/interrupt


问题是从Quartus下载计数器(1hz)触发程序(我的arm不知道为啥不支持IRQF_TRIGGER_FALLING我用的IRQF_TRIGGER_RISING,相应的的dts节点也改了上升沿),当下载到板子的瞬间,中断函数触发了

但是中断号137的触发次数也变了,所以断定并不是写的计数器触发的,所以我得到的结论是触发程序压根没起作用,
所以请问做过中断的帮忙看看问题出在了哪里。



回复

使用道具 举报

977

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2018-1-10 16:41:50 | 显示全部楼层
看不到图片


回复

使用道具 举报

8

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2018-1-10 17:03:03 | 显示全部楼层

fpga不能触发hps中断的问题


楼主参考的是斑竹chenzhufly 做的fpga触发hps中断的帖子http://bbs.eeworld.com.cn/thread-459615-1-1.html
楼主用的开发板为de10-nano,在arm上插入驱动模块并且显示中断注册成功如下图

cat /proc/interrupt


问题是从Quartus下载计数器(1hz)触发程序(我的arm不知道为啥不支持IRQF_TRIGGER_FALLING我用的IRQF_TRIGGER_RISING,相应的的dts节点也改了上升沿),当下载到板子的瞬间,中断函数触发了

但是中断号137的触发次数也变了,所以断定并不是写的计数器触发的,所以我得到的结论是触发程序压根没起作用,
所以请问做过中断的帮忙看看问题出在了哪里。



回复

使用道具 举报

8

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2018-1-10 17:10:46 | 显示全部楼层

显示中断注册成功如下图

cat /proc/interrupt

下载完中断触发程序

1.png
2.png
3.png


回复

使用道具 举报

8

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2018-1-10 17:12:23 | 显示全部楼层

不知道咋回事图片显示不出来,劳烦各位下载一下附件看看吧

点评

如果你不在FPGA程序里发送中断,137的中断次数就不会增加了吗?  详情 回复 发表于 2018-1-10 17:19


回复

使用道具 举报

977

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2018-1-10 17:19:22 | 显示全部楼层
redblue 发表于 2018-1-10 17:12
不知道咋回事图片显示不出来,劳烦各位下载一下附件看看吧

如果你不在FPGA程序里发送中断,137的中断次数就不会增加了吗?


回复

使用道具 举报

8

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2018-1-10 17:34:50 | 显示全部楼层
石玉 发表于 2018-1-10 17:19
如果你不在FPGA程序里发送中断,137的中断次数就不会增加了吗?

嗯 刚才试了试 如果不下载程序的话也会变化 我一直观察一个串口的中断,每当我操作一次 它便会加一,所以应该不是程序触发的,那么结论就是触发程序工作了,但是为什么只是触发了一次呢

点评

你可以把触发信号引到一个PIO上,看是不是真的有中断产生  详情 回复 发表于 2018-1-10 19:50


回复

使用道具 举报

977

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2018-1-10 19:50:20 | 显示全部楼层
redblue 发表于 2018-1-10 17:34
嗯 刚才试了试 如果不下载程序的话也会变化 我一直观察一个串口的中断,每当我操作一次 它便会加一,所以 ...

你可以把触发信号引到一个PIO上,看是不是真的有中断产生


回复

使用道具 举报

8

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2018-1-10 20:34:33 | 显示全部楼层
石玉 发表于 2018-1-10 19:50
你可以把触发信号引到一个PIO上,看是不是真的有中断产生

嗯 好的
想问您一个问题,正常的中断触发过程为拿上升沿触发为例,一个上升沿输入到引脚时,触发器置为1触发中断,之后再将触发器置为0,我想知道如何将这个引脚设置为上升沿的,是通过Quartus来设置的吗,此外在dts里面
interrupts = <0x0 0x2e 0x1>;和altr,interrupt-type = <1>;都要设置为1 还有驱动函数里面request_irq()也要设置为上升沿触发对吗。

点评

是的,在Qsys里设置中断类型,DTS里interrupt-type,驱动里request_irq,三个都要设置中断类型  详情 回复 发表于 2018-1-10 21:56


回复

使用道具 举报

977

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2018-1-10 21:56:34 | 显示全部楼层
redblue 发表于 2018-1-10 20:34
嗯 好的
想问您一个问题,正常的中断触发过程为拿上升沿触发为例,一个上升沿输入到引脚时,触发器置为1 ...

是的,在Qsys里设置中断类型,DTS里interrupt-type,驱动里request_irq,三个都要设置中断类型

点评

我今天这么试了一下,我在Qsys里面设置的h2f_lw_axi_master桥的偏移地址为0x00 偏移地址为0x10,所以地址为0xff200000-0xff200010 之前我在dts里面设置的reg=,今天我把dts里面reg设置为reg=并没有改Qsys但是下载程序  详情 回复 发表于 2018-1-11 14:41


回复

使用道具 举报

8

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2018-1-11 14:41:36 | 显示全部楼层
石玉 发表于 2018-1-10 21:56
是的,在Qsys里设置中断类型,DTS里interrupt-type,驱动里request_irq,三个都要设置中断类型

我今天这么试了一下,我在Qsys里面设置的h2f_lw_axi_master桥的偏移地址为0x00 偏移地址为0x10,所以地址为0xff200000-0xff200010 之前我在dts里面设置的reg=<0xff20000,0x10>,今天我把dts里面reg设置为reg=<0xff20010,0x10>并没有改Qsys但是下载程序之后还是触发了一次。。。

点评

这就奇怪了,没遇到这种情况  详情 回复 发表于 2018-1-12 17:20


回复

使用道具 举报

977

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2018-1-12 17:20:01 | 显示全部楼层
redblue 发表于 2018-1-11 14:41
我今天这么试了一下,我在Qsys里面设置的h2f_lw_axi_master桥的偏移地址为0x00 偏移地址为0x10,所以地址 ...

这就奇怪了,没遇到这种情况


回复

使用道具 举报

49

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 前天 16:42 | 显示全部楼层
楼主可能pio中断没清
iowrite32(1, virt_f2h_int + 0xC);


回复

使用道具 举报

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

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2018-1-21 02:31 , Processed in 0.426967 second(s), 23 queries , Redis On.

快速回复 返回顶部 返回列表