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

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

3天内不再提示

你咋知道怎么在IP的kernel module里设置并使用IP interrupt吗

电子工程师 来源:XILINX 产品应用 作者:Davis Zhang 2021-05-18 11: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 按钮可以看到中断服务程序的打印信息

本文来自 XILINX 产品应用工程师 Davis Zhang

编辑:jq

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

    关注

    5

    文章

    1403

    浏览量

    148268
  • 函数
    +关注

    关注

    3

    文章

    3866

    浏览量

    61308
  • 代码
    +关注

    关注

    30

    文章

    4555

    浏览量

    66739

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

文章出处:【微信号:HXSLH1010101010,微信公众号:FPGA技术江湖】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

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

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

    STM32CubeIDE开发LWIP,IP静态地址的赋值问题求解

    使用STM32Cube,进行开发。lWIP中设定静态地址。自动代码生成时,其中IP_ADDRESS,NETMASK_ADDRESS, GATEWAY_ADDRESS这三个值是什么地方赋值的,这个谁
    发表于 04-12 06:15

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

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

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

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

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

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

    linux图形化界面设置ip

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

    centos7怎么设置静态IP

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

    centos7如何设置静态IP

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

    如何修改网络配置(动态_静态IP)

    使用IPv4地址族配置loopback接口 auto eth0#表示让系统启动时自动识别激活 eth0 接口。 iface eth0 inet static#用于指定需要固定IP的网卡 address
    发表于 11-09 15:40

    ESP32怎么设置静态IP

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

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

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

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

    以启扬IMX8MP开发板为例,给大家分享固定IP地址以及单网口多IP设置的步骤流程。固定IP地址设置20-wired.network重启Ne
    的头像 发表于 06-21 17:41 793次阅读
    技术分享 | 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 5079次阅读

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

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

    如何保证两台设置的通讯IP一个局域网内呢?

      前言:   随着工业以太网的发达,很多设备的之间的通讯都要使用以太网(远程卓桌面、PN通讯、与触摸屏以太网通讯、控制器/触摸屏以太网程序下载),那么我们如何保证两台设置的通讯IP一个局域网
    发表于 05-05 15:24