第20篇 基于ARM A9处理器用汇编语言实现中断<二>

**Q:**怎样理解在ARM A9处理器中用汇编语言实现中断的过程和原理呢?

**A:**以下是一段在ARM A9处理器中使用汇编语言实现中断的示例主程序代码,该代码的开始部分创建异常向量表,矢量表中的条目提供了跳转到各种异常服务程序的指令;然后中间部分代码初始化定时器和按键的子程序;最后部分是程序用到的全局变量。主程序调用子程序初始化HPS Timer、FPGA Interval Timer以及FPGA KEY;最后程序初始化HPS GPIO1端口,使能A9处理器中的IRQ中断然后进入无限循环,当全局变量tick在HPS Timer的异常服务程序被置1时,DE1-SoC开发板上的USER_LED被点亮或熄灭。

该代码使用了两个中断,其中FPGA Interval Timer中断用于控制LED滚动闪烁的速率,而按键中断用于控制LED滚动闪烁的方向。在DE1-SoC上运行这段代码后,4个连续点亮的红色LED从右向左呈现流水灯似闪烁,按下KEY0或KEY1,流水灯的方向会改变。

关于该示例代码的更详细原理与中断处理过程可以参考...\University_Program\Computer_Systems\DE1-SoC\DE1-SoC_Computer\doc_ARM里的DE1-SoC_Computer_ARM文档。

相关推荐
起床学FPGA2 小时前
异步FIFO的学习
学习·fpga开发
156082072197 小时前
锁相环HMC830的调试
fpga开发
吸纹鸽8 小时前
蓝桥杯FPGA赛道积分赛
fpga开发·蓝桥杯
&Cheems8 小时前
ZYNQ笔记(二十一): VDMA HDMI 彩条显示
笔记·嵌入式硬件·fpga开发
灵风_Brend1 天前
秋招准备——2.跨时钟相关
fpga开发
希言自然也1 天前
FPGA生成随机数的方法
fpga开发
156082072192 天前
QSFP+、QSFP28、QSFP-DD接口分别实现40G、100G、200G/400G以太网接口
fpga开发·信号处理
&Cheems2 天前
ZYNQ笔记(十九):VDMA VGA 输出分辨率可调
笔记·fpga开发
可编程芯片开发2 天前
基于FPGA的PID控制器verilog实现,包含simulink对比模型
fpga开发·verilog·simulink·pid控制器
ThreeYear_s2 天前
基于FPGA控制ADC0832双通道采样+电压电流采样+LCD屏幕显示
fpga开发