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

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的软核,配置一下ddr和uart。
然后,因为要用到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]。
第三个参数,调用的中断处理函数,发生的中断操作写在里面。第四个参数,连接的对象,这里是按键,即将中断行为与按键行为连接起来。

我们准备好转向电动汽车了吗?
LG新一代OLED电视将要登场
紫光展锐人工智能实验室自研AI软件栈,正式亮相坦克邦智算天地
TE 宣布推出虚拟现实 (VR)电缆组件产品系列
便携式有毒气体检测仪使用前有哪些注意事项?
ARM中断体系和ZYNQ中断体系详解
中科创达大模型机器人实现高效的柔性制造
准谐振反激转换器的峰值功率能力及如何处理峰值功率要求
注入现代化履责全新力量!德力西电气再获社会责任大会“奥纳奖”
大型原油储罐设计中主要安全问题探讨及对策
沃尔玛将投入360个自动地板清洁机器人
频谱分析中避免较大幅度误差方法
水中细菌检测的仪器是什么,它有哪些作用
TCL明年将推出的新机TCL20 5G规格曝光
Coinbase的发言人表示电子货币与加密货币是不同的
ADI推出长距离单对以太网供电(SPoE)解决方案
图谋VR市场潜力 英伟达如何布置VR市场战略
LED透明屏需求增长 有望为户外广告创造一片新的蓝海
移动设备的充电和电量计量
NFV和SDN之间的关系是什么