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

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

3天内不再提示

ARM中断体系和ZYNQ中断体系详解

电子设计 来源:FPGA技术联盟 作者:FPGA技术联盟 2020-11-27 11:01 次阅读

01、ARM中断体系

① ARM体系中,在存储地址的低位,固化了一个32字节的硬件中断向量表。

② 异常中断发生时,程序计数器PC所指的位置不同,异常中断就不同。中断结束后,中断不同,返回地址也不同。但是,对于系统复位中断,不需要返回,因为整个应用系统就是从复位中断中开始的。

数据访问终止:数据访问的地址不存在,或者当前地址不允许访问。

快速中断请求:外部引脚的快速中断请求,比外部中断请求等级高,但是一般外设的中断请求使用外部中断请求。

指令预取终止:预取指令的地址不存在,或者当前地址不允许访问。

未定义的指令:ARM或协处理器认为当前指令未定义。

ARM中断流程:

首先在主程序中发生IRQ中断请求,程序跳到中断向量表找IRQ中断对应的解析程序地址,然后再跳到中断解析程序,进而执行中断程序。

02、ZYNQ中断体系

ZYNQ包括三种中断:私有中断,软件中断和共享中断。

1)私有中断:每个CPU连接5个私有中断,中断ID27—31。

2)软件中断:16个,中断号:0—15。通过CPU私有总线向ICDSGIR寄存器写中断号,并且制定CPU。

3)共享中断:接收来自如GPIO、DMA定时器等模块的中断信号。中断号32-95。

它们之间的关系:

03、PL端的一个按键,点亮PS端LED

首先还是硬件配置,加入ZYNQ的软核,配置一下DDRUART

然后,因为要用到PL端的按键,所以要建立PL与PS之间的联系,通过EMIO或者AXI总线,EMIO能不能中断还没有研究,这里用的AXI。

① 加AXI_GPIO IP核,设置GPIO端口中断使能,GPIO宽度为1(只用了一个按键),设置方向为全输入。

(如果想控制PL端LED,就再加一个AXI_GPIO核),设置输出就可以了。

② 打开中断

IRQ_F2P是PL与PS的共享中断,下面的是两个ARM核的快速中断和外部中断(都来自PL属于CPU私有中断),私有中断如何点亮LED还没有测试。

③ PS端LED,设置I/O外设,GPIO里勾选MIO,点亮的LED管脚为MIO0。

然后自动连接,(手动连接AXI_GPIO ip2intc_irpt),绑定gpio_rtl的管脚为T17(按键),3.3V,然后输出,生成HDL Wrapper,导出硬件(包含比特流文件),载入SDK。

04、各种初始化:

① 初始化按键:

设置单通道,方向为输入。

② 初始化LED:

设置MIO0为输出,使能引脚(不使能不能点亮,与AXI接PL端LED有点区别,后者不需要使能)。然后引脚写高电平,使LED初始状态为灭。

③ 初始化中断:

中断初始化写成一个函数,传入参数是中断的ID,另外以上各种初始化,需要实例化XGpio、XGpioPs、XScuGic类型的变量,直接定义为全局变量,这样会比较方便。

④中断函数:

A. 函数首先是中断初始化,与先前的按键初始化与LED初始化差不多。

B. 接着是定义了一个InterruptSystemSetup函数,定义为:

C.连接,我理解的就是,将这个中断与按键的行为,连接起来。XScuGic_Connect(&gpio_intr, INTR_GPIO, (Xil_ExceptionHandler)BTN_Intr_Handler, (void*)&key),这个函数中参数的意思,第一个参数就是实例化的XScuGic对象了,第二个参数,是对应的XPAR_FABRIC_AXI_GPIO_0_IP2INTC_IRPT_INTR,也就是定义的那个中断IRQ_F2P,定义在xparameters.h里。

定义为61,这也就是IRQ_F2P的中断号为61-68和84-91,共同组成了IRQ_F2P[15:0]。

第三个参数,调用的中断处理函数,发生的中断操作写在里面。第四个参数,连接的对象,这里是按键,即将中断行为与按键行为连接起来。

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

    关注

    134

    文章

    8651

    浏览量

    361777
  • 计数器
    +关注

    关注

    32

    文章

    2121

    浏览量

    92973
收藏 人收藏

    评论

    相关推荐

    arm中断是怎么实现的

    ARM中断的实现是通过中断控制器和异常模式实现的。ARM处理器通过中断控制器来接收和处理外部的中断
    的头像 发表于 01-05 15:18 262次阅读

    中断ARM体系中对中断的处理

    今天来看一下中断ARM体系中对中断的处理,直接进入正题。 中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的
    的头像 发表于 11-07 17:11 265次阅读
    <b class='flag-5'>中断</b>及<b class='flag-5'>ARM</b><b class='flag-5'>体系</b>中对<b class='flag-5'>中断</b>的处理

    中断与硬中断介绍

    • 硬中断是由外部事件引起的因此具有随机性和突发性;硬中断是否可以嵌套的,是否有优先级(由硬件设计体系决定)。 • 软中断是执行中断指令产生
    的头像 发表于 11-07 17:02 384次阅读

    ARM处理器中断向量表

    ARM处理器中,当一个中断信号被触发时,中断控制器会发出一个中断请求,并将该请求传递给CPU。 CPU接收到中断请求后,会根据
    的头像 发表于 10-30 17:19 873次阅读

    如何在特权模式下用arm汇编指令使能和禁止irq中断

    如何在特权模式下用arm汇编指令使能和禁止irq中断? 在 ARM 系统中,中断是非常常见的一种事件。在特权模式下,可以使用 ARM 汇编指
    的头像 发表于 10-19 16:42 788次阅读

    ARM中的异常中断是如何实现进入中断程序的?如何进入呢?

    ARM中的异常中断是如何实现进入中断程序的?如何进入呢? 在计算机系统中,异常和中断是两个常见的概念。 在ARM中,异常和
    的头像 发表于 10-19 16:36 562次阅读

    arm处理器有哪些中断源?arm处理器对异常中断的响应过程

    arm处理器有哪些中断源?arm处理器对异常中断的响应过程  ARM处理器是一种广泛使用的嵌入式处理器,运行着各种不同类型的应用程序。为了保
    的头像 发表于 10-19 16:35 817次阅读

    Cortex-M 内核中断/异常系统、中断优先级/嵌套 详解

    Cortex-M 内核中断/异常系统、中断优先级/嵌套 详解
    的头像 发表于 09-27 15:29 840次阅读
    Cortex-M 内核<b class='flag-5'>中断</b>/异常系统、<b class='flag-5'>中断</b>优先级/嵌套 <b class='flag-5'>详解</b>

    arm中断是怎么实现的

    arm中断是怎么实现的  首先,了解什么是中断中断是指在CPU执行某个程序时,突然发生的一些事件需要CPU立即停止正在执行的程序并去执行该事件相应的程序,这个过程叫做
    的头像 发表于 09-05 16:22 670次阅读

    什么是ARM中断事件?ARM中断异常处理具体过程

    ARM处理器是一种流行的处理器架构,用于许多现代移动设备和嵌入式系统中。中断和异常是ARM处理器中的两个重要概念,它们是处理器中断程序执行的关键机制。
    发表于 09-05 15:45 824次阅读
    什么是<b class='flag-5'>ARM</b><b class='flag-5'>中断</b>事件?<b class='flag-5'>ARM</b><b class='flag-5'>中断</b>异常处理具体过程

    ARM通用中断控制器体系结构规范GIC体系结构版本3和版本4

    本手册中的体系结构描述使用了与Armv8体系结构相同的术语。有关该术语的更多信息,请参阅Armv8-A架构配置文件Armv8 Arm®架构参考手册A部分的介绍。此外,在适当的情况下使用AArch64
    发表于 08-11 07:45

    Arm的DRTM体系结构规范

    本规范定义了基于Arm A配置文件体系结构的处理器的动态测量信任根(DRTM)体系结构。本规范基于TCG D-RTM体系结构[4]的概念,但作为一个独立的独立文档发挥作用。它使用了TC
    发表于 08-08 07:45

    ARM体系结构标准配置

    ARM体系结构包含大量功能,这些功能被描述为可选或定义的实施。来自平台操作系统供应商的反馈表明这种可变性对于系统代码的开发人员来说是一个实质性的问题,由于操作系统必须满足各种不同的系统配置,导致开发
    发表于 08-08 07:40

    Arm通用中断控制器GICv3/v4详解

    。特别是,该指南针对的是任何需要在裸金属环境中配置GIC。 本指南补充了Arm通用中断控制器体系结构规范GIC体系结构版本3.0和4.0。它不是替代品或替代品。参见臂通用
    发表于 08-02 09:20

    了解体系结构 - 介绍 Arm 体系结构

    。该体系结构为软件开发人员公开了一个通用的指令集和工作流程,也称为程序员模型。这有助于确保架构的不同实现之间的互操作性,以便软件可以在不同的 Arm 设备上运行。本指南为任何对此感兴趣的人介绍了 Arm
    发表于 08-01 14:35