0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在IP的kernel module里设置并使用IP interrupt

FPGA之家 来源:XILINX 作者:Davis Zhang 2022-06-30 09:48 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

有时我们需要为官方 IP 或者自己创建的 IP 生成 kernel module,然后在 linux kernel space 里使用 kernel module 来控制这个 IP。如果要使用 IP 中断,我们需要在 kernel module 代码里获取设备中断并建立中断服务程序。

在老版本 petalinux,我们可以在 kernelmodule 里直接指定 IP 中断的实际物理中断号,但是新版本内核里我们需要在 kernel module 里获取 IP 的虚拟中断号。可以在 kernelmodule 代码里使用 request_irq 函数来获取中断并指定中断服务程序。

附件是为 axigpio IP 写的一个 kernel module,可以作为参考例子:

首先需要生成一个基于 MPSoC 芯片的 vivado 工程,

在 block design 里加入 MPSoC processing core 和 axi gpiocore,

连接 axi gpio 的中断信号到 MPSoC processing core 的 PL->PS 中断端口

最后生成 bitstream 导出 hdf 或者 xsa,生成 petalinux 工程,

在 petalinux 工程里用下面命令生成并使能名字叫做 gpioirq 的 kernel module,

Petalinux-create-t modules --name gpioirq --enable

然后在petalinux工程目录里会生成这样一个路径 project-spec/meta-user/recipes-modules/gpioirq/files,把里面的 gpioirq.c 用附件里的同名文件覆盖掉。

用附件里的 system-user.dtsi 把 project-spec/meta-user/recipes-bsp/device-tree/files 里的同名文件覆盖掉,这是因为默认生成的 device tree 里 axigpio core 的 driver 是 xilinx driver,我们需要把它替换为我们生成的 kernel module 的 drivername,需要注意 system-user.dtsi 里面的 axigpio core 的名字需要和 petalinux 工程生成的 devicetree 里的 axi gpio core 的名字一样。然后就可以运行 petalinux-build 和 petalinux-package 命令来生成 boot image,然后上板启动。Linux boot 之后可以通过 cat/proc/interrupts 命令看到 qgioirq 中断已经建立起来了,按一下对应 axigpio 的板上 IO 按钮可以看到中断服务程序的打印信息。

88551f32-f80d-11ec-ba43-dac502259ad0.png

886b9096-f80d-11ec-ba43-dac502259ad0.png

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IP
    IP
    +关注

    关注

    5

    文章

    1849

    浏览量

    154898
  • 函数
    +关注

    关注

    3

    文章

    4406

    浏览量

    66819
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73127

原文标题:开发者分享 | 如何在 IP 的 kernel module 里设置并使用 IP interrupt

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    网段隔离器解决IP冲突问题,实现跨网段通信

    在互联网的世界,每一台设备都如同拥有一个独特的“家庭住址”——IP地址。设备之间的通信,就如同人与人之间交流需要知道对方的住址一样,必须明确知晓目标设备的IP地址,才能将数据准确无误地发送
    的头像 发表于 11-19 14:32 127次阅读
    网段隔离器解决<b class='flag-5'>IP</b>冲突问题,实现跨网段通信

    lwip如何实现运行中修改ip地址使新的地址生效?

    (),但客户端仍然能通过原来的ip连接上服务器正常通讯,通过新的ip则连接不上服务器,也就是说似乎set_if()丝毫没有作用一样,调用set_if()的代码如下: [list=1] [*]void
    发表于 10-14 07:57

    CNC的IP地址相同冲突如何解决?

    IP地址,这就极易引发IP地址冲突问题。当这些设备接入车间网络时,IP冲突会导致数据采集不上来,物联网平台缺乏数据来源,严重影响数字化车间的建设。 通常,设备被设置相同
    的头像 发表于 07-23 14:13 439次阅读
    CNC的<b class='flag-5'>IP</b>地址相同冲突如何解决?

    Altera FPGA 的PIO IP当中bidir和inout选项的区别

      PIO IP是FPGA 设计中比较简单常用的IP, 当设置PIO IP的Direction的时候,可以看到有如下4个选项: Input代表这组IO是输入引脚,Output代表这组I
    的头像 发表于 07-07 11:55 2139次阅读
    Altera FPGA 的PIO <b class='flag-5'>IP</b>当中bidir和inout选项的区别

    开疆智能Ethernet/IP转Modbus网关连接变频器配置案例

    : 首先我们开始配置Ethernet/IP主站(如罗克韦尔,欧姆龙PLC等) 首先打开主站组态软件“Sysmac Studio”新建项目。 设置PLC的IP地址(ethernet主站
    的头像 发表于 06-09 10:07 611次阅读
    开疆智能Ethernet/<b class='flag-5'>IP</b>转Modbus网关连接变频器配置案例

    开疆智能Ethernet/IP转Modbus网关连接西门子BW500积算仪配置案例

    Modbus网关的EDS 文件: 2,新建工程添加PLC 3,New Module添加网关: 4,在“Name”中填入网关的名称,在“IP Address”中填入网关的 IP 地址
    的头像 发表于 06-08 10:34 1394次阅读
    开疆智能Ethernet/<b class='flag-5'>IP</b>转Modbus网关连接西门子BW500积算仪配置案例

    开疆智能Ethernet/IP转Modbus网关连接MAG8000电池流量计配置案例

    配置方法: 首先我们开始配置Ethernet/IP主站(如罗克韦尔,欧姆龙PLC等) 首先打开主站组态软件“Sysmac Studio”新建项目。 设置PLC的IP地址 点击工具-E
    的头像 发表于 06-07 11:19 533次阅读
    开疆智能Ethernet/<b class='flag-5'>IP</b>转Modbus网关连接MAG8000电池流量计配置案例

    树莓派“定居”完全指南:一键设置静态IP,稳定又高效!

    当你为树莓派设置静态IP地址时,实际上是为它分配了一个固定地址,该地址不会改变,而动态IP地址则会在设备每次连接到网络时发生变化。在树莓派上设置静态
    的头像 发表于 05-25 08:32 1242次阅读
    树莓派“定居”完全指南:一键<b class='flag-5'>设置</b>静态<b class='flag-5'>IP</b>,稳定又高效!

    JESD204B IP核的配置与使用

    物理层的位置,一种是物理层在JESD204 IP;另外一种是物理层在JESD204 IP外部,需要再配置JESD204 phy IP核进行使用。
    的头像 发表于 05-24 15:05 1540次阅读
    JESD204B <b class='flag-5'>IP</b>核的配置与使用

    内网穿透和公网ip什么区别

    原理:设备通过路由器获取独立的公网IP地址,直接暴露在互联网中。 典型配置: 向运营商申请固定公网IP(或动态公网IP+DDNS) 在路由器设置端口转发(如将公网
    的头像 发表于 05-14 14:18 504次阅读
    内网穿透和公网<b class='flag-5'>ip</b>什么区别

    sdwan组网需要固定ip吗?

    景中,动态IP地址可以正常支持SD-WAN的组网需求,尤其是在对网络稳定性和安全性要求不极端的情况下。 私有IP结合NAT技术:在某些SD-WAN部署中,可以使用私有IP地址通过网络
    的头像 发表于 02-08 12:37 919次阅读

    新加坡共享主机怎么设置ip

    在新加坡设置共享主机的IP地址,通常涉及多个步骤,包括评估需求、选择服务商、配置网络等。以下是一个详细的设置指南,主机推荐小编为您整理发布新加坡共享主机怎么设置
    的头像 发表于 01-24 11:47 734次阅读

    通过安卓手机查找IP地址步骤

    —找到设置—点击双卡与移动网络 ②点击双卡与移动网络中的高级设置 ③查看IP地址 在最下方就可以看到IP地址 方法二 打开手机浏览器—输入my ip
    的头像 发表于 12-12 13:53 4492次阅读
    通过安卓手机查找<b class='flag-5'>IP</b>地址步骤

    何在Linux系统上设置站群服务器IP地址

    在Linux系统上设置站群服务器的IP地址,可以通过以下步骤进行,主机推荐小编为您整理发布如何在Linux系统上设置站群服务器IP地址。
    的头像 发表于 12-11 10:05 859次阅读

    无需修改设备IP实现跨网段访问的解决方案

    在制造业工厂中,受到生产工艺的影响往往存在多种设备、多种型号。这些设备往往分布在不同车间,但却有着相同的IP地址。这是由于厂家在出厂测试时设置了相同的固定IP,方便进行标准化的编程测试,却对企业实现
    的头像 发表于 12-09 17:16 1110次阅读
    无需修改设备<b class='flag-5'>IP</b>实现跨网段访问的解决方案