当前位置: 首页 > news >正文

第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程序。

image-20241126140909291

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

http://www.lryc.cn/news/522538.html

相关文章:

  • 重回C语言之老兵重装上阵(六)枚举
  • STL-list类
  • Hanlp的学习
  • Excel中函数SIGN()的用法
  • 如何将本地电脑上的文件夹设置为和服务器的共享文件夹
  • 智能建筑时代的核心选择——基于SAIL-RK3576核心板的AI边缘计算网关方案
  • 08、如何预防SQL注入
  • 【时时三省】(C语言基础)柔性数组
  • mongodb详解二:基础操作
  • 【数据分享】1929-2024年全球站点的逐月平均气温数据(Shp\Excel\免费获取)
  • 管理口令安全和资源(一)
  • 【Linux】【Vim】vim编辑器的用法
  • Golang Gin系列-3:Gin Framework的项目结构
  • LabVIEW实车四轮轮速信号再现系统
  • 2025.1.16——六、BabySQL 双写绕过|联合注入
  • Spring Boot 下的Swagger 3.0 与 Swagger 2.0 的详细对比
  • 【已解决】git clone报错:Failed to connect to github.com port 443: Timed out
  • Qt 程序 DPI 适配方法归纳
  • AI刷题-小R的随机播放顺序、不同整数的计数问题
  • windows 极速安装 Linux (Ubuntu)-- 无需虚拟机
  • 【影刀_常规任务计划_API调用】
  • 参数校验 Spring Validation框架
  • Spring Boot 基础入门指南
  • doc、pdf转markdown
  • 基于 HTML5 Canvas 制作一个精美的 2048 小游戏--day 1
  • 知识图谱入门(一)
  • springboot项目-基础数据回显
  • LabVIEW实现油浸式变压器自主监测与实时报告
  • K8S 亲和性与反亲和性 深度好文
  • 关于php语言api接口开发的流程