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

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

    关注

    452

    文章

    50142

    浏览量

    420462
  • IP
    IP
    +关注

    关注

    5

    文章

    1598

    浏览量

    149219

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

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

收藏 人收藏

    评论

    相关推荐

    爬虫代理IP提升爬虫效率方面扮演着至关重要的角色#代理IP

    IP
    jf_62215197
    发布于 :2024年08月28日 07:52:49

    动态住宅IP的奥秘与科技魅力# IP代理

    IP
    jf_62215197
    发布于 :2024年08月14日 07:22:06

    TCP IP协议属性设置中的IP配置

    现代网络中,TCP/IP协议是基础架构的重要组成部分。掌握TCP/IP协议属性设置中的IP配置对于确保网络的稳定性、性能和安全至关重要。本
    的头像 发表于 07-23 10:10 414次阅读

    如何使用代理IP转换国外IP

    IP
    jf_62215197
    发布于 :2024年07月17日 07:33:17

    ESP32外挂W5500以太网,如何设置静态IP地址呢?

    ; int8_t phy_reset_gpio; uint8_t phy_addr; } spi_eth_module_config_t; esp_ip4_addr_t ip
    发表于 06-13 06:51

    wifi模式设置静态IP地址失败的原因?

    wifi模式进入连接注册事件回调函数调用设置静态IP函数,函数如下: static void wifi_connected_handler(void *arg
    发表于 06-12 08:08

    介绍如何切换动静态IP方法 # 全球ip代理#静态IP

    IP
    jf_62215197
    发布于 :2024年06月06日 08:45:01

    如何在OpenHarmony设置静态IP

    介绍本文适用于所有RK3566/RK3568/RK3588平台产品OpenHarmony系统上设置静态IP。本文以PurplePiOH开发板为例,OpenHarmony系统上进行
    的头像 发表于 05-12 08:32 577次阅读
    如何在OpenHarmony<b class='flag-5'>设置</b>静态<b class='flag-5'>IP</b>?

    如何设置静态IP代理

    静态IP
    jf_60146132
    发布于 :2024年04月29日 07:46:31

    linux图形化界面设置ip

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

    centos7如何设置静态IP

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