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

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

3天内不再提示

怎么在IP的kernel module里设置IP interrupt?

电子工程师 来源:XILINX开发者社区 作者:Davis Zhang 2021-05-12 09:35 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

有时我们需要为官方 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 按钮可以看到中断服务程序的打印信息。

098ab4f0-b286-11eb-bf61-12bb97331649.png

09a3ceea-b286-11eb-bf61-12bb97331649.png

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

文章出处:【微信公众号:XILINX技术社区】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

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

    关注

    462

    文章

    53537

    浏览量

    459148
  • IP
    IP
    +关注

    关注

    5

    文章

    1849

    浏览量

    154919

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

文章出处:【微信号:gh_2d1c7e2d540e,微信公众号:XILINX开发者社区】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

    Vivado浮点数IP核的一些设置注意点

    Vivado浮点数IP核的一些设置注意点 我们vivado2018.3中使用了Floating-point(7.1)IP核,可以自定义其计算种类及多模式选择。有时多种计算可以用同一
    发表于 10-24 06:25

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

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

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

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

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

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

    JESD204B IP核的配置与使用

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

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

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

    Linux ip命令常用操作

    Linux ip命令常用操作 Linux系统中,ip命令是用于管理网络接口和路由的强大工具。相比于旧的 ifconfig命令,ip命令提供了更多的功能和更细粒度的控制。本文将详细介绍
    的头像 发表于 02-19 10:23 1073次阅读

    sdwan组网需要固定ip吗?

    SD-WAN组网并不一定需要固定IP地址。以下是具体说明: 1、不需要固定IP的情况 动态IP可满足基本需求:SD-WAN技术本身具有灵活性,能够基于动态IP地址进行网络连接和流量管理
    的头像 发表于 02-08 12:37 924次阅读

    如何理解芯片设计中的IP

    本文主要介绍如何理解芯片设计中的IP 芯片设计中,IP(知识产权核心,Intellectual Property Core)是指在芯片设计中采用的、已经开发好的功能模块、设计或技术,它可以是硬件
    的头像 发表于 02-08 10:43 2083次阅读

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

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

    ISP与IP地址池

    ISP可以为用户提供互联网接入、信息内容、应用服务以及其他增值业务。 要知道,ISP的网络中,IP地址池几乎可以说不可或缺。IP地址池是指一定范围内可供分配的IP地址的集合。通过分配
    的头像 发表于 12-27 10:41 918次阅读

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

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

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

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

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

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