当前位置: 首页 > article >正文

zynq PS端跑Linux响应中断

这篇文章主要是讲述如何在Zynq的PS上跑Linux启动IRQ,环境为vivado2019.1,petalinux2019.1 ubuntu20.04,本人初学者,欢迎批评指正

1. Vivado硬件设计

确保自定义IP的中断信号通过 IRQ_F2P 连接到PS端。在开始Petalinux配置之前,请确保您的IP已经正确设置为向PS发送中断信号,所有的时钟、AXI和复位连接都已正确配置。

  1. 在Vivado中,选择 File > Export > Export Hardware
  2. 勾选 Include Bitstream(如果设计已完成并生成了比特流文件)。
  3. 将硬件描述文件(HDF或XSA文件)保存到一个已知目录,我们将在Petalinux配置中使用该文件。

2. 设置Petalinux工程

2.1 创建Petalinux工程

  1. 打开中断,加载Petalinux环境:

    source /opt/petalinux/2019.1/settings.sh
    
  2. 创建一个新的Petalinux工程,适用于Zynq平台:

    petalinux-create --type project --template zynq --name irq_prj
    
  3. 进入到项目目录:

    cd irq_prj
    

2.2 配置Petalinux工程

  1. 配置 Petalinux 工程的硬件信息 :

    petalinux-config --get-hw-description ../top_hw_platform_0/
    
  2. 一个配置菜单将会打开,选取自己需要的配置

  3. 配置内核:

    petalinux-config -c kernel
    
  4. 在内核配置中,导航到:

    • Device Drivers > IRQ chip support > 确保 Xilinx Interrupt Controller(IP core) (Xilinx 已启用。
    • 完成后退出并保存。
  5. 设备树配置:

    1. device-tree 目录中查找其他设备树文件,如 system-top.dtszynq-7000.dtsi,查找中断节点

      grep -i "interrupt-controller" device-tree/*.dtsi
      

      在这里插入图片描述

      得到节点名为intc

    2. 修改 system-user.dtsi 文件

      #include "system-conf.dtsi"
      
      / {
          my_ip: my_ip@43C00000 {
              compatible = "vendor,my_ip";
              reg = <0x43C00000 0x10000>;
              interrupts = <0 61 4>;
              interrupt-parent = <&intc>;  // 使用 intc 作为中断控制器引用
              status = "okay";
          };
      };
      
  6. 配置根文件系统:

    petalinux-config -c rootfs
    
  7. 编译

    petalinux-build
    

http://www.kler.cn/a/374141.html

相关文章:

  • 精度论文:【Coordinate Attention for Efficient Mobile Network Design】
  • 【Ubuntu】 Ubuntu22.04搭建NFS服务
  • 【Linux】shell脚本编程
  • QPS和TPS 的区别是什么?QPS 大了会有什么问题,怎么解决?
  • (二十八)Flask之wtforms库【上手使用篇】
  • 009:传统计算机视觉之边缘检测
  • windows下安装python库wordCloud报错
  • 【PGCCC】Postgresql BgWriter 原理
  • Java实现数据去重的几种方案及其去重原理
  • 【skywalking】监控 Spring Cloud Gateway 数据
  • flask框架用法介绍(一)
  • 从零学习大模型(十)-----剪枝基本概念
  • 【SSE】前端vue3使用SSE,EventSource携带请求头
  • H2 Database IDEA 源码 DEBUG 环境搭建
  • VuePress文档初始化请求过多问题探讨
  • 设计模式07-结构型模式(装饰模式/外观模式/代理模式/Java)
  • HTB:Cicada[WriteUP]
  • 【Linux-进程间通信】匿名管道的应用-进程池实现+命名管道的应用ClientServer通信
  • 手机收银云进销存管理软件,商品档案Excel格式批量导入导出,一键导入Excel的商品档案
  • 跨可用区的集群k8s的基本操作和配置理解
  • 【开源免费】基于SpringBoot+Vue.JS网上订餐系统(JAVA毕业设计)
  • SQL 通用数据类型
  • 【数据库设计】规范设计理论之数据依赖的公理系统(1)
  • 百数功能更新——表单提交支持跳转到外部链接并支持传参
  • ssm基于WEB的人事档案管理系统的设计与实现+jsp
  • 【c++ gtest】使用谷歌提供的gtest和抖音豆包提供的AI大模型来对代码中的函数进行测试