第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]任意一个按键会停止计数,再次按下任意一个按键会继续计数。

相关推荐
上园村蜻蜓队长1 小时前
ARM芯片架构之调试访问端口(DAP)
arm开发·单片机·fpga开发·架构
电子凉冰4 小时前
FPGA强化-简易频率计
fpga开发
ehiway13 小时前
中科亿海微SoM模组——国产散热控制板
fpga开发
li星野15 小时前
打工人日报#20250928
fpga开发
DebugKitty17 小时前
硬件开发2-ARM裸机开发3-I.MX6ULL - 时钟、定时器
arm开发·fpga开发·定时器·时钟
ThreeYear_s20 小时前
【FPGA+DSP系列】——(2)DSP最小核心板进行ADC采样实验(采集电位器输出电压)
fpga开发
ALINX技术博客20 小时前
【FPGA 开发分享】如何在 Vivado 中使用 PLL IP 核生成多路时钟
网络协议·tcp/ip·fpga开发
XINVRY-FPGA21 小时前
XA7A75T-1FGG484Q 赛灵思 Xilinx AMD Artix-7 XA 系列 FPGA
嵌入式硬件·fpga开发·车载系统·云计算·硬件架构·硬件工程·fpga
XINVRY-FPGA1 天前
XC7A100T-2CSG324I 赛灵思 Xilinx AMD Artix-7 FPGA
arm开发·嵌入式硬件·fpga开发·硬件工程·信号处理·dsp开发·fpga
szxinmai主板定制专家1 天前
ZYNQ 平台下的四声道超声流量计设计与实现
运维·arm开发·人工智能·分布式·fpga开发