ARM中断深入分析几点

1.程序发生中断后,是如何跳转到中断程序里面的?

2.执行完中断后,如何返回到原来被打断的地方接着执行呢?

3.ARM处理器的流水线结构对中断返回地址的计算有什么影响?

4.ARM7,ARM9处理器流水线结构一个是3级一个是5级,为什么中断返回地址是相同的?

5.ARM启动后是SVC模式,发生中断后进入什么模式?

6.发生中断后,哪些事情是需要ARM自动完成?哪些是需要编程实现的?

  读书留痕,思考留果

1.程序发生中断后,是如何跳转到中断程序里面的?

  首先要执行完当前指令!然后自动完成以下事情:

  CPSR---->SPSR_irq(IRQ模式)(逆过程不能自动完成)

  PC-4  ----> R14_irq

  PC <---- 0X00000018(irq中断向量表的入口地址)

程序员需要补充做的事情有:

R0----R12,和LR的值入栈。

用户处理函数放在irq中断向量表的入口地址,以供跳转。

2.执行完中断后,如何返回到原来被打断的地方接着执行呢?

  恢复R0--R12,出栈;

  R14-4 ----> PC

  SPSR_irq---->CPSR

3.ARM处理器的流水线结构对中断返回地址的计算有什么影响?

  pc始终指向当前正在执行指令的下两条指令处(PC-8).执行完当前的,就变为PC-4。保存的就是PC-4.

4.ARM7,ARM9处理器流水线结构一个是3级一个是5级,为什么中断返回地址是相同的?

  因为:pc始终指向当前正在执行指令的下两条指令处(PC-8),不管是几级流水线。

5.ARM启动后是SVC模式,发生中断后进入什么模式?

  IRQ模式

6.发生中断后,哪些事情是需要ARM自动完成?哪些是需要编程实现的?

ARM自动完成:

 CPSR---->SPSR_irq(IRQ模式)(逆过程不能自动完成)

  PC-4  ----> R14_irq

  PC <---- 0X00000018(irq中断向量表的入口地址)

需要编程实现的:

  R0----R12,和LR的值入栈。

  用户处理函数放在irq中断向量表的入口地址,以供跳转。

今天的学习就到这里了。

  

ARM中断深入分析几点的更多相关文章

  1. 可能是讲解ARM中断和中断嵌套最通俗易懂的文章

    几天前一个学生问我ARM中断嵌套的问题,我才发现原来在我心中理所当然的事对学生来说理解实属不易.  ARM有七种模式,我们这里只讨论SVC.IRQ和FIQ模式.  我们可以假设ARM核心有两根中断引脚 ...

  2. linux-2.6.26内核中ARM中断实现详解(转)

    转载:http://www.cnblogs.com/leaven/archive/2010/08/06/1794293.html 更多文档参见:http://pan.baidu.com/s/1dDvJ ...

  3. ARM 中断状态和SVC状态的堆栈切换 (异常)【转】

    转自:http://blog.csdn.net/edwardlulinux/article/details/9261393 版权声明:本文为博主原创文章,未经博主允许不得转载. ARM 中断状态和SV ...

  4. arm中断体系结构

     ARM处理器中有7种类型的异常,按优先级从高到低的排列如下:                   复位异常(Reset).     数据异常(Data Abort).     快速中断异常(FIQ) ...

  5. arm中断汇编

    IRQ_Handler: push {lr} /* 保存 lr 地址 */ push {r0-r3, r12} /* 保存 r0-r3,r12 寄存器 */ mrs r0, spsr /* 读取 sp ...

  6. ARM中断与架构知识 精简知识点

    目录 一.ARM系统的异常与中断 二.CPU模式与寄存器 1.ARM CPU模式 2.ARM CPU state,两种指令集 3.ARM CPU寄存器: 引申介绍一下存储空间中的数据存放 4.ARM三 ...

  7. LINUX-内核-中断分析-中断向量表(3)-arm【转】

    转自:http://blog.csdn.net/haolianglh/article/details/51986987 arm中断概念 在<ARM体系结构与编程>第9章中说到,ARM 中有 ...

  8. request_irq() | 注册中断服务函数【转】

    本文转载自:http://blog.csdn.net/wealoong/article/details/7566546#t0 参考  : ARM Linux 中断机制分析.pdf linux-2.6. ...

  9. STM32学习笔记(六) SysTick系统时钟滴答实验(stm32中断入门)

    系统时钟滴答实验很不难,我就在面简单说下,但其中涉及到了STM32最复杂也是以后用途最广的外设-NVIC,如果说RCC是实时性所必须考虑的部分,那么NVIC就是stm32功能性实现的基础,NVIC的难 ...

随机推荐

  1. tldr/cheat

    tldr 比man好用的查询命令查询工具, man很强大,但是 TLDR,too long dont read 安装 npm install -g tldr 使用说明 其他版本下载 https://g ...

  2. CF1237E 【Balanced Binary Search Trees】

    首先我们要注意到一个性质:由于根与右子树的根奇偶性相同,那么根的奇偶性与\(N\)相同 然后我们发现对于一个完美树,他的左右两个儿子都是完美树 也就是说,一颗完美树是由两棵完美树拼成的 注意到另一个性 ...

  3. 【JOISC2018|2019】【20190622】minerals

    题目 交互题 有\(2n\)个物品,编号为\(1-2n\),存在唯一的两两配对关系,即有\(n\)种物品 有一个盒子,初始为空,盒子上会显示里面存在的物品种类数\(C\) 你每次操作可以将一个物品从盒 ...

  4. 干货 | 10分钟带你全面掌握branch and bound(分支定界)算法-概念篇

    00 前言 之前一直做启发式算法,最近突然对精确算法感兴趣了.但是这玩意儿说实话是真的难,刚好boss又叫我学学column generation求解VRP相关的内容.一看里面有好多知识需要重新把握, ...

  5. 48、Spark SQL之与Spark Core整合之每日top3热点搜索词统计案例实战

    一.概述 1.需求分析 数据格式: 日期 用户 搜索词 城市 平台 版本 需求: 1.筛选出符合查询条件(城市.平台.版本)的数据 2.统计出每天搜索uv排名前3的搜索词 3.按照每天的top3搜索词 ...

  6. vim配置无插件

    其实,vim插件会影响编辑器的启动速度,虽然有些插件影响不大,我依然觉得不够,其实通过简易的状态栏,可以显示必要的信息,能自定义颜色和背景甚至透明就足够了. 一.自定义状态栏其实以下内容可以写在一行上 ...

  7. js注册表单中实现地区选择效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. Servlet相关的几种乱码

    1. 页面中文显示乱码 原因: response中的内容会先输入到response缓冲区,然后再输入到传给浏览器,所以要将缓冲区和浏览器的编码都设置成utf-8 1)未使用jsp,而是在servlet ...

  9. The fileSyncDll.ps1 is not digitally signed. You cannot run this script on the current system.

    https://www.opentechguides.com/how-to/article/powershell/105/powershel-security-error.html Unblockin ...

  10. win7下查看进程端口

    一. 查看所有进程占用的端口 在开始-运行-cmd,输入:netstat –ano 可以查看所有进程 二.查看占用指定端口的程序 当你在用tomcat发布程序时,经常会遇到端口被占用的情况,我们想知道 ...