ZYNQ LINUX 下 PL中断PS记录

2023-11-18

最近ZYNQ的项目需要,调试了PL中断PS的部分,下面将其中了解到信息记录下来,以防遗忘,如图一,图二所示,PL到PS的中断分为16个共享中断(SPI)和4个私有中断(PPI)。本文用到了共享中断,着重介绍SPI中断。
在这里插入图片描述
图一
在这里插入图片描述
图二
PL 侧16个SPI中断硬件中断号为6168,8491.支持高电平触发和上升沿触发两种触发方式。以下内容摘抄自
https://blog.csdn.net/weixin_40640020/article/details/92159687
PL中断PS触发方式可以在PS端编程控制对应寄存器设置为高电平触发和上升边缘触发。在这个我们认为中断源的满足中断和不满足中断分别用1和0表示。高电平就是中断的条件满足了,表现为逻辑1。上升边缘触发表示之前从中断没有发生到中断发生的这个跳变,也就是从逻辑0到逻辑1的跳变。在Z7系统中允许设置PL的中断触发方式。
当设置电平触发时候,只要中断条件一直满足,也就是中断请求线上电平是高,则触发处理器产生中断。当设置上升边缘触发时候,当且仅当中断条件从不满足到满足的跳变上,也就是中断请求线表现成了一个上升边缘,并且保持高电平至少2个CPU_2X3X周期(也就是说4个以上处理器的时钟周期)。就会产生触发处理器产生中断。边缘触发方式下高电平最少保持处理器时钟周期的两倍,一般建议时间长一些,20NS。
这两种中断触发方式强调的侧重点不一样,电平触发强调的是 特定中断事件之要没有撤销就要反复进行处理。比方说在具体应用中一个来自外界的报警信号,只要报警信号存在说明危险没有被消除,需要继续中断处理器,继续处理。上升缘触发方式强调特定中断事件发生了,对于这个此次特定发生的中断事件,处理器只要做一次处理就可以。如果外设还要再次请求中断处理器,则需要将中断再次产生一个上升边缘进行进行请求。
摘抄完毕,继续写自己遇到的问题,在Linux下调试PL到PS侧的中断,在整个系统中,对于一个PL中断源,存在三个中断号,拿PL侧的第一个SPI中断为例,ZYNQ的硬件中断号为61,在设备树里面,此中断的中断号记录为61-32=29,在linux系统内的逻辑中断号则又不同,在linux下调用int request_irq(unsigned int irq, irq_handler_t handler,unsigned long irqflags, const char *devname, void *dev_id)时,第一个输入参数irq为何值,经过测试,此irq应为Linux分配的逻辑中断号。那么问题来了,在linux下,如何获得61硬件中断号对应的逻辑中断号呢,此时就要用到设备树和驱动的配合来获得。
设备树里面对中断的主要描述如下:

irq: irq@0{
compatible = “hello,irq”;
interrupt-parent = <&intc>;
interrupts = <0 29 2>;
};
compatible = “hello,irq”;这条语句在驱动里面与platform架构的驱动匹配时需要用到,interrupt-parent = <&intc>;指明父节点,interrupts = <0 29 2>;第一个参数0代表是SPI中断还是PPI中断,0代表SPI中断,1代表PPI中断。29代表中断号,经过观察发现,这个地方所填的数值与硬件中断号的关系为:当中断为SPI中断时,为硬件中断号-32;当为PPI中断时,为硬件中断号-16。第三个参数2代表触发方式,2代表高电平触发,1代表上升沿触发。Linux读取设备树的信息,然后为此中断分配一个逻辑中断号,以前注册中断号是通过手工在 C 代码中填入中断号,现在这种方法不可行了,请使用虚拟中断号的方法。
另外,在https://blog.csdn.net/u013457167/article/details/80682926 这篇文章里看到这段话,如图三所示,经过查看,应该是写反了,SPI中断加32,非SPI中断加16。
在这里插入图片描述
图三
设备树里描述好中断的信息后,再涉及到修改自己的Linux驱动了。Linux驱动要改为platform架构方式,具体的platform架构方式,网上查资料有很多,时间太紧,我也没完全搞清楚,按照架构自己套了一个,
参照https://blog.csdn.net/h244259402/article/details/83993524这篇文章,
在这里插入图片描述
图四
如图四所示,这里一定要与设备树里面中端部分的.compatible属性对应起来,驱动就是通过设备树的这个属性来进行匹配并获得Linux分配的逻辑中断号的,通过irq=platform_get_irq函数获得逻辑中断号后,就可以将逻辑中断号代入rquest_irq函数申请中断了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ZYNQ LINUX 下 PL中断PS记录 的相关文章

  • 听说Zynq - 手把手教你建立第一个工程

    概述 ZYNQ 是赛灵思公司 Xilinx 推出的新一代全可编程片上系统 APSoC 它将处理器的软件可编程性与FPGA的硬件可编程性进行完美整合 注意 1 ZYNQ 是由两个主要部分组成的 一个由双核 ARM Cortex A9 为核心构
  • 听说Zynq-Zynq7 Processing System配置导入导出

    概述 zynq开发中 我们如何才能将一个工程的Zynq Process System快速准确的配置到另一个工程 这里就需要我们对Zynq7 Processing System ip核的配置导入导出 注意 开发环境 vivado2018 2
  • ZYNQ移植vxworks系统

    版本 xff1a ZYNQ7010 xff0c VxWorks 6 9 ZYNQ PL端有灵活性好 xff0c 资源丰富 xff0c 可反复编程速度快的优势 xff0c 通过 PS的外设并行 AXI总线外挂 PL接口 xff0c 使用 FP
  • ZYNQ 安装ubuntu文件系统

    ZYNQ 7020 Ubuntu16 04文件系统安装 在关于zynq openamp的章节我们已经完成了zynq 的u boot 内核 xff0c 设备树的制作 xff0c 通过XSDK完成了启动文件的创建 同样道理制作zynq7020的
  • ZYNQ UltraScale+ MPSoC Linux + ThreadX AMP玩法

    ZYNQ UltraScale 43 MPSoC Linux 43 ThreadX AMP玩法 ZYNQ UltraScale 43 MPSoC与ZYNQ 7000架构比较目标 一 创建Linux1 修改kernel2 修改设备树编译 am
  • xilinx zynq-7000 linux下rs422串口通信测试步骤

    这几天使用xilinx的zynq 7000系列调试rs422串口 xff0c 期间遇到不少问题 xff0c 好在最终调试完成 xff0c 在这里记录一下调试步骤 我用的soc型号是xc7z100 xff0c 板载了2个rs422外设 xff
  • ZYNQ有两个CPU?(一)——AMP搭建

    ZYNQ有两个CPU xff1f xff08 一 xff09 AMP搭建 罗宾老师 嵌入式教师 码峰社QQ群541931432
  • ZCU102 Zynq MPSoC IP设置与说明

    目录 1 前言2 设置与说明2 1 PS UltraScale 43 Block Design2 2 I O Configuration2 2 1 Bank0 3电压 xff1a 2 2 2 Low SpeedQSPISD卡CANI2CPM
  • ZYNQ下驱动ADF5355试验成功

    前两个集BLOG分别给出了ADF5355接口的VERILOG设计实现以及设置频率的C语言算法 xff0c 我今天试验了以 xff0c 试验成功了 首先很重要的是ADF5355寄存器配置的设置 xff1a 可以在这个基础上修改输入以及输入频率
  • ZYNQ系列(十二)linux的DMA使用

    ZYNQ系列 xff08 十二 xff09 linux的DMA使用 文章目录 ZYNQ系列 xff08 十二 xff09 linux的DMA使用前言开发环境准备工作petalinux工程建立建立工程配置内核1 配置DMA2 配置CMA 修改
  • 解决Xilinx Vitis 2020.1版本启动之后进入主页面无响应的结果

    一 问题描述 在启动 Xilinx Vitis 2021 1 时 无论是从 Xilinx Vivado 界面的 Launch Vitis 启动还是直接启动都会在启动后显示出主界面后未响应 其原因是 Windows 系统的 PATH 环境变量
  • ZYNQ无SD卡配置Linux系统到QSPI Flash和eMMC

    硬件 黑金AX7450开发板 zynq7100 QSPI Flash eMMC Flash 软件 Vivado 2017 4 Petalinux 2017 我用了一台Windows主机 用于设计Vivado和烧写QSPI Flash 一台U
  • IP核之FIFO实验

    FIFO 的英文全称是 First In First Out 即先进先出 FPGA 使用的 FIFO 一般指的是对数据的存储具有先进先出特性的一个缓存器 常被用于数据的缓存 或者高速异步数据的交互也即所谓的跨时钟域信号传递 它与 FPGA
  • 几种linux内核文件的区别(vmlinux、zImage、bzImage、uImage、vmlinuz、initrd )

    对于Linux内核 编译可以生成不同格式的映像文件 例如 make zImage make uImage zImage是ARM Linux常用的一种压缩映像文件 uImage是U boot专用的映像文件 它是在zImage之前加上一个长度为
  • 超过飞飞系列-ZYNQ之FPGA学习2.1Verilog语法

    一 VHDL Verilog C语言区别 VHDL 硬件描述语言 美军开发 相对难 不直观 需要专业培训 欧洲发展较好 Verilog 硬件描述语言 设计群体广泛 资源成熟 中国多采用 并行处理运行 C 软件语言 经过C的单片机程序需取码
  • 如何添加PYNQ-Z2板文件到Vivado

    添加板文件到vivado 先下载pynq z2板文件 PYNQZ2板文件 含约束文件 原理图 zip 下载后将文件复制到 Vivado安装目录 2018 3 data boards board files 重启vivado 完成
  • ZYNQ产品生产拷机问题思考

    目前设计的ZYNQ产品支持QSPIFLASH SDka EMMC启动 主要启动方式主要有以下几种 全部启动文件存放在QSPIFLASH ZYNQ支持的QSPIFLASH为16MB大小 如果UBOOT 内核 设备树 文件系统全部存放在QSPI
  • 教程:在ZYBO板卡实现PL-PS交互

    目的 学会vivado PL PS协同开发流程 平台 ZYBO开发板 zynq 7010 clg400芯片 工具 Vivado 2014 4 功能 实现PL PS协同通信 PS通过AXI总线读取PL部分的GPIO状态 对应zybo的四个开关
  • [ZYNQ随笔] uboot移植中bitstream比特流加载问题:zynq_validate_bitstream: Bitstream is not validated yet

    问题介绍 由于项目设计需要 需要频繁的更换比特流文件 之前使用petalinux生成的boot bin每次都需要合并比特流 比较麻烦 遂换了一个uboot版本 米联客默认的u boot 将bitstream放到了独立于boot bin的文件
  • 从零开始zynq linux AXI DMA传输

    本文从0开始叙述过程 使用的工具为vivado2016 4 sdk也是2016 4 准备工作 首先下载如下的目标文件 1 下载xilinx官方的bootloader文件 git clone https github com Xilinx u

随机推荐

  • mybatis(19)——choose标签,when标签和otherwise标签

    代码
  • JMeter简单使用

    一 下载安装 1 在官网下载或者在 share 192 168 1 201 share 开发工具 java apache jmeter 5 5 zip 2 解压 执行文件在bin目录中 二 常用测试组件 1 线程组 线程组是JMeter 中
  • 服务配置宝塔面板搭建环境及部署项目

    服务配置宝塔面板搭建环境及部署项目 1 登录你所购买阿里云服务器的账号 2 点击控制台 云服务器ecs 3 开通安全组开启端口 把需要访问的端口进行配置 选入方向 如 6379 8080 3306 80 21 22 443 4 获取服务器公
  • FOC和SVPWM的C语言代码实现   

    FOC和SVPWM的C语言代码实现 SVPWM的原理讲解在这儿 https blog csdn net qlexcel article details 74787619 comments 现在开始分析C语言的代码 代码建议复制到notepa
  • 【UE4】DataTable - 数据表

    本文使用 UE 4 26 引擎自带 ARPG 项目 从代码和编辑器两个方面记录一下 UE4 中的 DataTable 也就是数据表的用法 一 DataTable 是什么 DataTable 就是数据表 以下简称 DT 也就是二维的 M 行
  • OLED透明屏轻量化设计:提升便携性与用户体验的新方向

    随着科技的不断进步 OLED透明屏作为一种新兴的显示技术正逐渐走入人们的视野 除了在视觉效果上的优势 OLED透明屏在重量方面的设计也备受关注 对此 尼伽将深入探讨OLED透明屏轻量化设计的重要性 策略以及应用案例 希望看后对您有所启发 一
  • 面试机试题目,使用Spring + SpringMVC +Mybatis + html + css实现员工管理系统

    文章目录 机试挑战 需求分析 简介 访问地址 http 39 99 237 90 8080 employee http 39 99 237 90 8080 employee 源码 https github com Listen Y Java
  • Visual C++中函数的覆盖和函数的隐藏

    我是荔园微风 作为一名在IT界整整25年的老兵 今天来聊聊Visual C 中函数的覆盖和函数的隐藏 Visual C 中函数的覆盖和函数的隐藏与JAVA有很大不同 有些容易搞错的点和概念 我们要特别注意 首先 先满足一下急性子的同学 因为
  • 思科模拟器:nat地址转换-静态转换-动态转换-pat转换

    我么需要的环境 sw1为公司出口 192开头的网段为内网也就是公司内部 1动态 缺点 只能外网访问内网 内网无法访问外网 2静态 缺点 比如有两个公网ip如果在有两个人上网的时候 第三个人无法上网 由于使用设备不固定所以 外网无法访问内网
  • https证书过期处理方案及相关问题

    证书过期处理 1 替换证书操作 2 问题及处理 1 替换证书操作 证书由甲方提供 也可以去阿里云进行申请 前往nginx安装目录下的 conf cert替换旧的证书 目录 nginx conf cert 重启nginx操作 https bl
  • Android 开发中的权限申请

    一 权限动态申请 我们都知道 从 Android 6 0 开始 部分危险权限在 xml 注册的同时 还需要动态申请 1 需要动态申请的权限 Manifest permission CONTACTS 联系人 Manifest permissi
  • Pytorch 学习(三)sigmoid 逻辑回归预测

    1 数据预处理 处理多特征样本 import pandas as pd data pd read csv csv 划分数据 iloc 第一个参数 行 第二个参数 列 X data iloc 1 标签为 1 1 讲 1 替换为 0 Y dat
  • Shell中的幽灵王者—JAVAWEB 内存马 【认知篇】

    Goby社区第 21 篇技术分享文章 全文共 6700 字 预计阅读时间 17 分钟 自我介绍 大家好 我是 su18 无论是个人博客还是社区 已经很久没写技术文章了 原因有很多 时间 精力 心态等等 但在开源社区也算比较活跃 由于工作需要
  • JSONUtil.toJsonStr 时间变成了时间戳

    问题描述 我的接口是以Date来接收日期的 然后我在拿到这个对象参数后 通过hutool当中的JSONUtil toJsonStr将其序列化成json字符串 然后存储到数据库 然后存储到数据库当中发现这个字段是时间戳 DateTimeFor
  • 在Spring Boot使用Undertow服务

    1 undertow简介 Undertow是RedHAT红帽公司开源的产品 采用JAVA开发 是一款灵活 高性能的web服务器 提供了NIO的阻塞 非阻塞API 也是Wildfly的默认Web容器 在javaweb容器的世界里 Tomcat
  • mysql数据库三大引擎优缺点

    1 MyISAM 特性 不支持事务 表级锁定 并发性能大大降低 读写互相阻塞 适用场景 不支持事务 并发相对较低 表锁定 执行大量select语句操作的表 count 操作较快 不支持外键 注 查询速度快的原因 a MyISAM存储的直接是
  • sqlserver自动定时备份数据库并按日期命名

    sqlserver自动定时备份数据库并按日期命名 备份数据库是很有必要的 在维护软件和站点的时候关系到我们数据的安全和完整性 数据库为我们提供了自动备份功能 定时自动备份 SqlServerde 的维护计划中自带了备份数据库任务 并不是自动
  • Python 各种画图

    文章目录 Part I 基础知识 Chap I 快应用 Chap II 常用语句 Part II 画图样例 Chap I 散点图 Chap II 柱状图 Chap III 折线图 Chap IV 概率分布直方图 Chap V 累计概率分布曲
  • 用Python自动化处理Excel表格详解

    Excel表格基础知识 Excel表格可以帮助用户创建 编辑 格式化和计算数据 并生成各种图表和报表 Excel表格通常用于商业 金融 科学 教育等领域 Excel表格的常用操作 Excel表格的常用操作包括插入 删除 移动 复制 粘贴 排
  • ZYNQ LINUX 下 PL中断PS记录

    最近ZYNQ的项目需要 调试了PL中断PS的部分 下面将其中了解到信息记录下来 以防遗忘 如图一 图二所示 PL到PS的中断分为16个共享中断 SPI 和4个私有中断 PPI 本文用到了共享中断 着重介绍SPI中断 图一 图二 PL 侧16