ZYNQ7000 学习(三十一)PL 中断 PS 的原理和实现

实现步骤
1 PL 与 PS 交互方式
(1)PS配置 PL.
(2)PS通过 AXI总线读写 总线读写 PL的寄存器或者储。( 的寄存器或者储。( 的寄存器或者储。( AXI LITE 读写外设的寄 读写外设的寄 存器, AXI FULL 读写 PL部分的片内或者外存储器)。 部分的片内或者外存储器)。 部分的片内或者外存储器)。
(3)PL中断 PS。
(4)PL主动读写 PS部分的 DDR3存储器。
2 中断原理介绍
中断是一种外设通过打正在进行 CPU处理的程序, 而立即执行中断服务处理的程序, 而立即执行中断服务来实现外设与处理器之间的深度耦合方式。 下图为 UG585 介绍的 ZYNQ 的中 断处理器框图
在这里插入图片描述
这里看到虚框内的 PL部分可以通过 SPI 这部分,产生中断最终可以通过 这部分,产生中断最终可以通过 这部分,产生中断最终可以通过 这部分,产生中断最终可以通过 ICD灵活分配到两个处理器上。
每一个中断 源或者组都对应ID,处理器运行程序通过 ,处理器运行程序通过 ,处理器运行程序通过 ID号来 区分是哪个具体中断 源产生的,UG585列出了中断源与中断号的对应关系。
在这里插入图片描述
另外我们也可以在 VIVADO的配置里面找到这种对应关系。用中断号起来 的配置里面找到这种对应关系。用中断号起来 之后,在处理器 看来就是和其他中断(比如我们之前将的 GPIO中断和 中断和 私有定 时器的中断)同样对待了,注册程序和处理框架也就基本一。 时器的中断)同样对待了,注册程序和处理框架也就基本一。 时器的中断)同样对待了,注册程序和处理框架也就基本一。 PS端程序 的编写是类似。
一, 关于触发方式以及边缘模下保持时间。
PL中断 PS触发方式可以在 PS端编程控制对应寄存器设置为高电平触发和上升 端编程控制对应寄存器设置为高电平触发和上升 边缘触发。在这个我们认为中断源的满足和不分别用 1和 0表示。 高电平就是中断的条件满足了,表现为逻辑 高电平就是中断的条件满足了,表现为逻辑 1。上升边缘触发表示之前从中断没 。上升边缘触发表示之前从中断没 有发生到中断的这个跳变,也就是从逻辑 0到逻辑 1的跳变。在 的跳变。在 Z7系统中 允许设置 PL的中断触发方式。 的中断触发方式。
当设置电 当设置电 平触发时候, 只要中断条件一直满足也就是请求线上电高平触发时候, 只要中断条件一直满足也就是请求线上电高平触发时候, 只要中断条件一直满足也就是请求线上电高平触发时候, 只要中断条件一直满足也就是请求线上电高平触发时候, 只要中断条件一直满足也就是请求线上电高平触发时候, 只要中断条件一直满足也就是请求线上电高平触发时候, 只要中断条件一直满足也就是请求线上电高平触发时候, 只要中断条件一直满足也就是请求线上电高平触发时候, 只要中断条件一直满足也就是请求线上电高平触发时候, 只要中断条件一直满足也就是请求线上电高平触发时候, 只要中断条件一直满足也就是请求线上电高平触发时候, 只要中断条件一直满足也就是请求线上电高平触发时候, 只要中断条件一直满足也就是请求线上电高则触发处理器产生中断。
当设置上升边缘触发时候,且仅中断条件从不满足到的跳变也就是 当设置上升边缘触发时候,且仅中断条件从不满足到的跳变也就是 当设置上升边缘触发时候,且仅中断条件从不满足到的跳变也就是 中断请求线表现成了一个上升边缘,并且保持高电平至少 2个 CPU_2X3X周期 (也就是说 4个以上处理器的时钟周期)。 就会产生触发处理器产生中断。

这两种中断触发方式强调的侧重点不一样,电平触发强调的是特定中断事件之要没有撤销就要反复进行处理。比方说在具体应用中一个来自外界的报警信号,只要报警信号存在说明危险没有被消除,需要继续中断处理器,继续处理。上升,缘触发方式强调特定中断事件发生了,对于这个此次特定发生的中断事件,处理器只要做一次处理就可以。如果外设还要再次请求中断处理器,则需要将中断再次产生一个上升边缘进行进行请求。
这里我们将做结合例子来加深一下认识。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 6
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Zynq-7000系列是Xilinx推出的一款SoC(System on Chip),其中包含了可编程逻辑(Programmable Logic,PL)和嵌入式处理器系统(Processing System,PS)。PS是基于ARM架构的处理器系统,主要由处理器核(ARM Cortex-A9)和一些外设组成。 Zynq-7000 PS的工作原理如下: 1. 引导加载:当系统上电时,PS从配置存储器中读取引导代码,并将其加载到内部RAM中执行。引导代码通常用于初始化系统环境和配置外设。 2. 处理器核运行:一旦引导加载完成,处理器核开始执行操作系统和用户应用程序。它可以运行Linux或其他实时操作系统,并且可以通过外部存储器加载和执行应用程序。 3. 外设控制:PS包含多个外设,如UART、SPI、I2C、GPIO等。处理器核可以通过读写寄存器来控制和配置这些外设,实现与外部设备的通信和控制。 4. 内存管理:PS具有独立的内存管理单元(MMU),用于管理虚拟内存和物理内存的映射关系。它可以确保不同的应用程序访问自己的内存空间,提供内存保护和隔离。 5. 中断处理:PS支持中断机制,当外部设备发生中断事件时,处理器核可以响应中断请求并执行相应的中断服务程序。这样可以实现实时响应和处理外设事件。 6. 系统调试和调优:PS支持调试接口,可以通过调试工具对系统进行调试和性能优化。这些工具可以监视处理器状态、访问内存、跟踪指令执行等,帮助开发人员诊断和解决问题。 总的来说,Zynq-7000 PS作为一款嵌入式处理器系统,负责运行操作系统、控制外设、管理内存和处理中断等任务。它与可编程逻辑(PL)相结合,可以实现高度灵活的硬件加速和定制化功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值