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

    文章

    1404

    浏览量

    148272
  • 函数
    +关注

    关注

    3

    文章

    3868

    浏览量

    61308
  • 代码
    +关注

    关注

    30

    文章

    4555

    浏览量

    66751

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

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

收藏 人收藏

    评论

    相关推荐

    选择合适的海外IP代理?#全球ip代理 #海外代理ip排行榜

    IP
    jf_62215197
    发布于 :2024年04月25日 06:44:36

    NAS教程丨如何将NAS设置为固定IP

    对网络接口逐一进行设置。 1、登录铁威马TOS系统,打开控制面板,选择网络; 2、打开网络,选择接口,点击LAN1,选择编辑; 3、输入IP地址,点击确认,即设置完成; 自动获取网络配置(DHCP:Automatically o
    的头像 发表于 12-27 17:52 2099次阅读
    NAS教程丨如何将NAS<b class='flag-5'>设置</b>为固定<b class='flag-5'>IP</b>?

    发生IP冲突的原因是什么呢?如何解决IP冲突的问题呢?

    决该问题。 一、IP冲突的原因: 1. 手动设置相同IP地址:管理员在配置设备时,不小心给多个设备分配了相同的IP地址。这是最常见的IP冲突
    的头像 发表于 12-07 09:32 3514次阅读

    Nginx的配置文件如何设置头信息保留真实IP不丢失

    在 Nginx 配置中设置头信息以保留客户端的真实 IP 地址通常是在使用反向代理的场景中需要的。当 Nginx 作为反向代理时,客户端的真实 IP 地址可能会在转发请求时丢失,因为到达应用服务器
    的头像 发表于 11-30 10:54 913次阅读

    linux图形化界面设置ip

    在Linux系统中,可以使用图形化界面来设置IP地址。下面是一个详实而细致的文章,将指导您如何通过图形界面设置IP地址。 第一部分:进入网络设置
    的头像 发表于 11-27 15:19 1208次阅读

    静态IP与动态IP的区别

    静态IP和动态IP是计算机网络中常用的两种IP地址分配方式,它们在分配方式、使用范围、安全性和适用场景等方面存在一些区别。 一、静态IP的定义与特点 静态
    的头像 发表于 11-27 14:44 607次阅读

    centos7怎么设置静态IP

    在CentOS 7中,要设置静态IP,您可以遵循以下步骤: 查看网络接口 在终端中输入 ip addr 命令,找到您想要设置静态IP的网络接
    的头像 发表于 11-27 14:27 607次阅读

    centos7如何设置静态IP

    在CentOS 7上设置静态IP是一个简单而重要的任务,尤其对于服务器管理员来说。在本文中,我们将详细介绍如何在CentOS 7上设置静态IP
    的头像 发表于 11-17 11:06 657次阅读

    ESP32怎么设置静态IP

    有什么办法可以设置ESP32为静态IP
    发表于 10-11 08:10

    如何利用云服务器设置外网IP

    都拥有自己的外网IP,作为连接全球互联网的桥梁。 当我们购买国外云服务器时,遇到的第一个问题就是如何搭建IP。 在本文中,小编将指导大家如何利用云服务器设置外网IP? 如果我们想在同一
    的头像 发表于 08-07 17:33 936次阅读

    何在Vivado中配置FIFO IP

    Vivado IP核提供了强大的FIFO生成器,可以通过图形化配置快速生成FIFO IP核。
    的头像 发表于 08-07 15:36 1926次阅读
    如<b class='flag-5'>何在</b>Vivado中配置FIFO <b class='flag-5'>IP</b>核

    何在STM32H5上通过Secure manager实现软件IP保护

    电子发烧友网站提供《如何在STM32H5上通过Secure manager实现软件IP保护.pdf》资料免费下载
    发表于 07-29 11:41 0次下载
    如<b class='flag-5'>何在</b>STM32H5上通过Secure manager实现软件<b class='flag-5'>IP</b>保护

    技术分享 | i.MX8M Plus开发板 固定IP地址以及单网口多IP设置

    以启扬IMX8MP开发板为例,给大家分享固定IP地址以及单网口多IP设置的步骤流程。固定IP地址设置20-wired.network重启Ne
    的头像 发表于 06-21 17:41 801次阅读
    技术分享 | i.MX8M Plus开发板 固定<b class='flag-5'>IP</b>地址以及单网口多<b class='flag-5'>IP</b><b class='flag-5'>设置</b>

    什么是辅助WLAN wlan怎么设置有效的ip

    在WLAN连接设备时,请多次测试IP地址是否有效,确保您可以稳定地访问因特网。 总之,设置有效的IP地址需要仔细检查,保证其唯一性,同时还要考虑到子网掩码、网关地址和DNS服务器地址等因素。
    发表于 06-14 17:16 5093次阅读

    如何使用esp12通过静态IP连接到路由器?

    我正在使用 esp12 通过静态 IP 连接到路由器。我在路由器的 wifi 列表中找到但在 DHCP 列表中找不到,因为它不是 DHCP 客户端。但是我可以连接无限时间吗?固定IP连接有租期吗?是否需要任何 DHCP 租用时
    发表于 06-07 09:00