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

相关推荐
绿算技术4 小时前
存储新势力:助力DeepSeek一体机
人工智能·科技·缓存·fpga开发
9527华安11 小时前
国产紫光同创FPGA视频采集转SDI编码输出,基于HSSTHP高速接口,提供2套工程源码和技术支持
fpga开发·音视频·紫光同创·sdi·高速接口·hssthp
S&Z346313 小时前
[FPGA基础] 原语简介篇
fpga开发
Dlrbw13 小时前
FPGA——DDS信号发生器设计
笔记·fpga开发
FPGA开源工坊17 小时前
FPGA上实现YOLOv5的一般过程
yolo·fpga开发
S&Z34631 天前
[FPGA基础] UART篇
fpga开发
szxinmai主板定制专家1 天前
国产RK3568+FPGA以 ‌“实时控制+高精度采集+灵活扩展”‌ 为核心的解决方案
大数据·运维·网络·人工智能·fpga开发·机器人
FPGA_ADDA1 天前
基于FPGA 和DSP 的高性能6U VPX 采集处理板
fpga开发·dsp·6u vpx·8通道采集
FakeOccupational1 天前
fpga系列 HDL:跨时钟域同步 脉冲展宽同步 Pulse Synchronization
fpga开发
丶七年先生1 天前
牛客 verilog入门 VIP
fpga开发