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

Q:怎样编写ARM A9处理器汇编语言代码配置使用按键和定时器中断?

**A:**本次实验同样为中断模式和监督模式都设置ARM A9堆栈指针,并使能中断,此外在主程序中调用子程序CONFIG_HPS_TIMER和CONFIG_KEYS分别对HPS Timer 0(100MHz时钟)和按键KEY进行配置,使定时器产生某个周期的中断。

主程序会执行一个无限循环将全局变量COUNT的值写到DE1-SoC开发板的红色LED;在exceptions.s中的子程序CONFIG_GIC中配置GIC,将HPS Timer 0和按键产生的中断发送到ARM处理器;hps_timer.s文件的HPS Timer0的中断服务例程中,每次按下按键时RUN的值在1和0之间切换,当RUN=0时,COUNT的值保持不变,当RUN=1时,每0.25秒COUNT的值增加1;另外同样需要创建key_isr.s按键中断服务程序、 defines.s以及interrupt_ID.s程序。

烧录程序到DE1-SoC开发板上看到实验现象:红色LED上显示的计数值每隔0.25秒递增1,LEDR[17:0]从全熄灭到全点亮状态循环显示;按下KEY[3:0]任意一个按键会停止计数,再次按下任意一个按键会继续计数。

相关推荐
Genevieve_xiao2 小时前
【verilog】如何一小时成为verilog高手(并非
fpga开发
从此不归路3 小时前
FPGA 结构与 CAD 设计(第3章)上
ide·fpga开发
Aaron15885 小时前
基于VU13P在人工智能高速接口传输上的应用浅析
人工智能·算法·fpga开发·硬件架构·信息与通信·信号处理·基带工程
碎碎思5 小时前
在 FPGA 上实现并行脉冲神经网络(Spiking Neural Net)
人工智能·深度学习·神经网络·机器学习·fpga开发
集芯微电科技有限公司7 小时前
替代HT6310/KP3310离线式AC-DC无感线性稳压器
数据结构·人工智能·单片机·嵌入式硬件·fpga开发
minglie18 小时前
Zynq上UART/IIC/SPI的24个实验-第0课:目录
fpga开发
FPGA小c鸡9 小时前
FPGA摄像头到屏幕完整链路:从OV5640采集到HDMI实时显示(附完整工程代码)
fpga开发
dai89101117 小时前
使用紫光同创FPGA实现HSSTLP IP支持的线速率
fpga开发
s090713618 小时前
XIlinx FPGA使用LVDS的电源与电平关键指南
fpga开发·xilinx·lvds
Joshua-a1 天前
FPGA基于计数器的分频器时序违例的解决方法
嵌入式硬件·fpga开发·fpga