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
    +关注

    关注

    135

    文章

    9605

    浏览量

    394083
  • 计数器
    +关注

    关注

    32

    文章

    2323

    浏览量

    98673
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    一文看懂PCIe中断机制

    PCIe 中断机制主要分为两类:一类是继承自传统 PCI 的 物理中断线(INTx)中断,通过硬件引脚触发;另一类是 MSI(Message Signaled Interrupt)中断
    的头像 发表于 03-11 09:35 564次阅读
    一文看懂PCIe<b class='flag-5'>中断</b>机制

    Linux中断“搬家”指南:从应用到操作,手把手教你转移中断核心(RK3588)

    在高性能服务器或嵌入式设备(如瑞芯微 RK3588)上,中断处理的 CPU 核心绑定是优化性能的关键手段之一。比如网卡中断默认绑在小核上时,高网络负载会导致小核过载,而大核却“闲置”;通过中断转移,把网卡
    的头像 发表于 02-04 16:20 974次阅读
    Linux<b class='flag-5'>中断</b>“搬家”指南:从应用到操作,手把手教你转移<b class='flag-5'>中断</b>核心(RK3588)

    操作系统体系结构

    操作系统的体系结构是一个开放的问题。正如上文所述,操作系统在核心态为应用程序提供公共的服务,那么操作系统在核心态应该提供什么服务、怎样提供服务?有关这个问题的回答形成了两种主要的体系结构:大内核和微
    发表于 01-15 08:19

    成都观岩科技ISO体系认证加持!以体系实力筑牢服务根基

    在当今竞争日趋激烈的市场环境中,完善的管理体系、过硬的风险管控能力以及强烈的社会责任担当,成为衡量企业核心竞争力的关键标尺。而ISO系列认证作为全球公认的权威体系标准,更是企业规范化运营与高质量发展
    的头像 发表于 01-09 17:09 385次阅读
    成都观岩科技ISO<b class='flag-5'>体系</b>认证加持!以<b class='flag-5'>体系</b>实力筑牢服务根基

    RISC-V怎么实现核间中断?核心本地中断控制器(CLINT)深度解析

    全称为Core Local Interruptor(核心本地中断控制器),是 RISC-V 特权架构规范(Privileged Architecture Specification)中明确定义的内建
    的头像 发表于 12-13 14:06 2742次阅读
    RISC-V怎么实现核间<b class='flag-5'>中断</b>?核心本地<b class='flag-5'>中断</b>控制器(CLINT)深度解析

    电能质量在线监测装置是如何实现对电压中断事件的识别的?

    电能质量在线监测装置对电压中断事件的识别,是基于 **“国标定义 + 高保真采样 + 实时计算 + 多维度验证”** 的闭环技术体系,核心目标是 “无漏判、无误判”,精准捕捉符合 GB/T
    的头像 发表于 11-27 16:32 1369次阅读
    电能质量在线监测装置是如何实现对电压<b class='flag-5'>中断</b>事件的识别的?

    SysTick初始化函数和中断服务函数详解

    SysTick定时器的计数器是向下递减计数的,计数一次的时间TDEC=1/CLKICLK,当重装载寄存器中的值VALUELOAD减到0的时候,产生中断,可知中断一次的时间TINT=VALUELOAD*TDEC=VALUE LOAD/CLKICLK,其中CLKICLK=20
    的头像 发表于 09-23 09:57 1083次阅读
    SysTick初始化函数和<b class='flag-5'>中断</b>服务函数<b class='flag-5'>详解</b>

    瑞萨RA系列MCU的中断过程介绍

    中断来临的时候会最先经过IRQ寄存器,IRQ寄存器检测到中断的时候,会向中央处理嵌套向量中断控制器NVIC发送中断信号,当NVIC检测到中断
    的头像 发表于 09-23 09:45 1604次阅读
    瑞萨RA系列MCU的<b class='flag-5'>中断</b>过程介绍

    瑞萨RA系列MCU的外部引脚中断详解

    上一章节我们已经详细介绍了NVIC、ICU、ELC、NMI并对RA系列MCU的中断管理系统有个全局的了解,我们这一章节的内容是如何控制外部中断,也是内核里的NVIC的实例应用,这也是RA系列MCU非常重要的一个外部中断资源。
    的头像 发表于 09-23 09:38 2291次阅读
    瑞萨RA系列MCU的外部引脚<b class='flag-5'>中断</b><b class='flag-5'>详解</b>

    英威腾为智慧安防基地提供零中断电力保障

    英威腾成功交付武汉轨道交通档案中心及反恐中心弱电智能化工程核心电力项目,以全套自主研发的腾智一体化数据中心解决方案,涵盖精密空调、模块化UPS、蓄电池组及动环监控系统的全自主产品体系,为这座总建筑面积达5.6万平方米的智慧安防基地提供零中断电力保障。
    的头像 发表于 09-04 15:14 1189次阅读

    Linux权限体系解析

    你真的了解Linux权限吗?大多数人只知道rwx,但Linux的权限体系远比你想象的复杂和强大。今天我们深入探讨Linux的12位权限体系,这是每个运维工程师都应该掌握的核心知识。
    的头像 发表于 07-23 16:57 1149次阅读

    Arm产品命名体系的演变

    Arm 首席执行官 Rene Haas 宣布 Arm 推出新的产品命名体系后,本文将为你详解新的计算平台名称,以及新命名体系内的新 IP
    的头像 发表于 06-19 10:38 1133次阅读
    <b class='flag-5'>Arm</b>产品命名<b class='flag-5'>体系</b>的演变

    第六章 外部中断

    本章介绍W55MH32的IO口作为外部中断输入的使用。先阐述了NVIC(嵌套向量中断控制器) 的结构、寄存器、优先级及相关函数,再说明EXTI(外部中断和事件控制器)的功能。框图及IO口与
    的头像 发表于 05-26 16:27 1723次阅读
    第六章 外部<b class='flag-5'>中断</b>

    极海APM32F003触发NMI中断的解决方案

    问题:APM32F003F6P6 PC3配置成外部中断口,下拉触发之后没有进入EINTC_IRQHandler外部中断函数,反而一直触发NMI中断
    的头像 发表于 05-24 14:44 1134次阅读
    极海APM32F003触发NMI<b class='flag-5'>中断</b>的解决方案

    AS32X601驱动系列教程 PLIC_中断应用详解

    平台中断控制器(Platform Level Interrupt Controller,PLIC)是国科安芯AS32系列MCU芯片的中断控制器,主要对中断源进行采样,优先级仲裁和分发。各外设
    的头像 发表于 05-23 17:10 848次阅读
    AS32X601驱动系列教程 PLIC_<b class='flag-5'>中断</b>应用<b class='flag-5'>详解</b>