中断向量表

ARM中断深入分析几点

强颜欢笑 提交于 2019-12-01 17:20:22
ARM中断深入分析几点 1.程序发生中断后,是如何跳转到中断程序里面的? 2.执行完中断后,如何返回到原来被打断的地方接着执行呢? 3.ARM处理器的流水线结构对中断返回地址的计算有什么影响? 4.ARM7,ARM9处理器流水线结构一个是3级一个是5级,为什么中断返回地址是相同的? 5.ARM启动后是SVC模式,发生中断后进入什么模式? 6.发生中断后,哪些事情是需要ARM自动完成?哪些是需要编程实现的?   读书留痕,思考留果 1.程序发生中断后,是如何跳转到中断程序里面的?   首先要执行完当前指令!然后自动完成以下事情:   CPSR---->SPSR_irq(IRQ模式)(逆过程不能自动完成)   PC-4 ----> R14_irq   PC <---- 0X00000018(irq中断向量表的入口地址) 程序员需要补充做的事情有: R0----R12,和LR的值入栈。 用户处理函数放在irq中断向量表的入口地址,以供跳转。 2.执行完中断后,如何返回到原来被打断的地方接着执行呢?   恢复R0--R12,出栈;   R14-4 ----> PC   SPSR_irq---->CPSR 3.ARM处理器的流水线结构对中断返回地址的计算有什么影响?   pc始终指向当前正在执行指令的下两条指令处(PC-8).执行完当前的,就变为PC-4。保存的就是PC-4. 4.ARM7

米联客 ZYNQ/SOC精品教程 S02-CH07 PL中断请求实验

China☆狼群 提交于 2019-11-28 19:22:19
软件版本:VIVADO2017.4 操作系统:WIN10 64bit 硬件平台:适用米联客 ZYNQ系列开发板 米联客(MSXBO)论坛: www.osrc.cn 答疑解惑专栏开通,欢迎大家给我提问!! 7.1 概述 本课节对ZYNQ的中断进行了介绍,并通过PL端按键输入中断信号,PS端进行处理,讲解了外部中断使用。 7.2 ZYNQ 中断介绍 7.2.1 ZYNQ中断框图 上图为ZYNQ中断分布框图。可以看到部分PL到PS部分的中断,经过中断控制分配器(ICD),同时进入CPU1 和CPU0。查询下面表格,可以看到PL到PS部分一共有20个中断可以使用。4个快速中断(PPI),即IRQF2P[19:16];16个共享中断(SPI),即IRQF2P[7:0]、IRQF2P[15:8]。这16个中断可以任意定义,本课涉及使用。 7.2.2 ZYNQ CPU软件中断 (SGI) ZYNQ共有两个CPU,每个 CPU具备各自的16个软件中断。 7.2.3 ZYNQ CPU 私有端口中断 私有中断不能修改。这里有2个PL到 CPU 的快速中断nFIQ 7.2.4 ZYNQ PS和PL共享中断 共享中断就是PL的中断可以发送给PS处理。上图中,黄色区域是16个PL的中断,它们可以设置为高电平或者低电平触发。 7.3 搭建BD工程 Step1:新建一个名为为Miz_sys的工程。 Step2