假设外设为物理按键,需要连接到支持中断功能的对应的GPIO上。
CPU型号为:三星的S5PV210
本文所描述的中断控制流程适用性广泛,因为主流CPU的中断设计原理是相通的,只有细节的差异。

第一部分:按键外设对应中断功能的配置
1、按键对应的GPIO模式设置:设置为EXT_INT模式
2、该外设对应的中断触发模式设置:电平或边沿触发
3、该外设中断Mask和Pend寄存器位设置
4、编写该外设中断对应的ISR中断处理函数程序

第二部分:CPU内部响应中断的配置
Part1:前期准备工作
1、初始化系统异常控制器函数system_init_exception()
   功能如下:
   绑定异常向量表对应的中断服务函数;
   关闭所有中断使能;
   选择中断类型为IRQ;
   清空中断向量控制地址寄存器VICxADDR
   
2、绑定写好的中断处理函数程序ISR到中断控制器对应的VICnVECTADDR寄存器

3、使能对应中断向量编号的中断源,即外设按键对应的中断源编号

Part2:外部按键产生中断后,CPU响应该中断
1、CPU读取异常向量表信息,并跳转到IRQ函数的入口地址
2、先进行程序现场保护(在Start.s完成),然后跳转到irq_handler()函数,
3、该irq_handler()函数功能用于判断具体哪个中断向量寄存器VIC发生中断,并调用对应的外设按键对应的ISR中断处理函数
4、ISR函数执行完毕后,程序现场恢复(在Start.s完成),并返回到主函数继续执行后续的程序。

// 在这个汇编函数中,用来做中断模式下的现场保护和恢复,并且调用真正的中断处理程序
IRQ_handle:// 设置IRQ模式下的栈ldr sp, =IRQ_STACK// 保存LR// 因为ARM有流水线,所以PC的值会比真正执行的代码+8,sub lr, lr, #4// 保存r0-r12和lr到irq模式下的栈上面stmfd sp!, {r0-r12, lr}// 在此调用真正的isr来处理中断bl irq_handler// 处理完成开始恢复现场,其实就是做中断返回,关键是将r0-r12,pc,cpsr一起回复ldmfd sp!, {r0-r12, pc}^

外设中断产生 + CPU响应中断并返回的控制流程相关推荐

  1. CPU响应中断的条件是什么?简述中断处理过程

    作答:CPU响应中断要有三个条件:外设提出中断申请:本中断位未被屏蔽:中断允许. 可屏蔽中断处理的过程一般分为如下几步: 中断请求 ,中断响应,保护现场,转入执行中断服务子程序,恢复现场和中断返回.C ...

  2. java中断响应时间_Java多线程 sleep方法响应中断 sleep面试问题(与wait/notify的

    Java多线程 sleep方法响应中断 sleep面试问题(与wait/notify的 Java多线程 sleep方法响应中断 & sleep面试问题(与wait/notify的比较) 文章目 ...

  3. 【中断】你对中断究竟有多了解?试着把中断的触发流程整理了一遍...

    如果要你讲一下中断,你会怎么去描述一个中断的触发流程呢? 最基础的可能就是:保护现场 - 中断处理 - 恢复现场... 那保护现场做了什么事情?中断处理需要注意什么事情?恢复现场又做了什么事情? 相对 ...

  4. linux 不可中断的进程,不可中断进程和僵尸进程

    什么是不可中断状态 当 iowait 升高时,进程很可能因为得不到硬件的响应,而长时间处于不可中断状态.从 ps 或者 top 命令的输出中,可以发现它们都处于 D 状态,也就是不可中断状态 (Uni ...

  5. 蓝桥杯单片机比赛学习:6、中断系统之定时器中断的基本原理

    上节我们讲了中断的外部中断,基本的了解了一下中断,这一节我们继续来学习中断系统的定时器中断基本原理,本节很重要无论是在比赛中还是在单片机.嵌入式等的学习上都有着很重要的地位.如对本作者有兴趣可以去我主 ...

  6. 外设篇:按键和CPU的中断系统

    什么是按键 按键的物理特性 (1).平时没人按的时候,弹簧把按键按钮弹开.此时内部断开的. (2).有人按下的时候,手的力量克服弹簧的弹力,将按钮按下,此时内部保持接通(闭合)状态:如果手拿开,则弹簧 ...

  7. 1.8.ARM裸机第八部分-按键和CPU的中断系统

    1.8.1.什么是按键 1.8.1.1.按键的物理特性 (1).平时没人按的时候,弹簧把按键按钮弹开.此时内部断开的. (2).有人按下的时候,手的力量克服弹簧的弹力,将按钮按下,此时内部保持接通(闭 ...

  8. 北航2021届计组 - 支持中断的CPU

    北航2021级计组支持中断的CPU Itisallaboutcontrol,cheatandtradeoff.It\space\space is\space\space all\space\space ...

  9. 嵌入式裸机按键和CPU的中断系统学习笔记

    准备工作 一.按键介绍与硬件连接 按键介绍 按键是常见的外部中断设备,类似于我们电路中的开关.一般的按键都有4个引脚,这4个引脚成2对:其中一对是常开触点(不按则断开,按下则闭合):一对是常闭触点(平 ...

最新文章

  1. UVa1030 Image Is Everything
  2. android 插件化 模块化开发(apkplug)
  3. 数据结构源码笔记(C语言):链接队列
  4. mysql 自增语句_Mysql 自动增加设定基值的语句 | 很文博客
  5. 关于V$OPEN_CURSOR
  6. Oracle 制造死锁和查询死锁
  7. 【PSD分层海报模板素材】快乐开学季 敬爱教师节!
  8. 想成为一个Web前端开发工程师,需要掌握的详细知识总结
  9. java华容道swing_一道java的界面初级题目,已有代码,加几行即可,华容道游戏。...
  10. CMD恶搞命令集,假装自己是黑客
  11. 瑞星云安全截获新感染病毒 6月感染网民263万
  12. qc中的流程图怎么画_QC流程图
  13. 数据结构(计算机存储、组织数据方式)
  14. ubuntu/linux命令记录 长期更新
  15. java分页查询querymap_ES Java API_基于search template实现按品牌分页查询模板
  16. 关闭office提示:为什么要冒险,获取正版office
  17. 实用教程 | 如何查看微信朋友圈访客
  18. ClearCommError()函数
  19. PyQt5实战之二维码生成器(二):控件功能实现
  20. 云原生实践,政务安全大脑,云端密码应用…腾讯在湾区创见大会发布了哪些重点

热门文章

  1. Python3 复制和深浅copy
  2. 2023年环境工程与生物技术国际会议(CoEEB 2023)
  3. 微服务 Feign 405
  4. 此URL不支持Http方法POST 描述 请求行中接收的方法由源服务器知道,但目标资源不支持
  5. OSSIM开源安全信息管理系统(二)
  6. 王者荣耀为什么会保留铭文系统和皮肤属性加成?
  7. python图像识别车票_警惕啊,不要随便发车票照片了,用Python可以算出了你的身份证号码!...
  8. redis惰性删除 lazy free 源码剖析,干货满满
  9. 灵魂拷问 TCP ,你要投降了吗?
  10. 【数据聚类|深度聚类】Strongly Augmented Contrastive Clustering(SACC)论文研读