嵌入式学习笔记(3)ARM的异常处理方式介绍

这篇具有很好参考价值的文章主要介绍了嵌入式学习笔记(3)ARM的异常处理方式介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是异常

  正常工作之外的流程都叫异常

  异常会打断正在执行的工作,并且一般我们希望异常处理完后继续回来执行原工作

  中断是异常的一种

异常向量表

嵌入式学习笔记(3)ARM的异常处理方式介绍,嵌入式,编程,学习,笔记,arm开发,嵌入式实时数据库,嵌入式硬件,iot

  所有的CPU都有异常向量表,这是CPU设计时就设定好的,是硬件决定的。

  当异常发生时,CPU会自动动作(PC跳转到异常向量处处理异常,有时伴有一些辅助动作)

  异常向量表是硬件向软件提供的处理异常的支持。

嵌入式学习笔记(3)ARM的异常处理方式介绍,嵌入式,编程,学习,笔记,arm开发,嵌入式实时数据库,嵌入式硬件,iot

ARM的异常处理机制

当异常产生时, ARM core:

(1)将CPSR的值保存到将要执行的异常中断对应的SPSR中,以实现对处理器当前状态、中断屏蔽及各标志位的保护。

(2)设置当前状态寄存器CPSR的相应位。设置CPSR中的M4~M0的5位,进入相应工作模式,设置I=1禁止IRQ中断,如果进入复位模式或FIQ模式,还要设置F=1以禁止FIQ中断。

(3)将引起异常指令的下一条地址(断点地址)保存到 LR(R14)中,使异常处理程序执行完后正确返回原来程序处继续向下执行。

(4)给程序计数器PC强制赋值,转入向量地址,以便执行相应的处理程序。

每种中断异常模式对应两个寄存器SP和LR。

从中断返回。如果是复位异常,系统自动从0x00000000开始重新执行程序,无需返回

(1)首先恢复原来被保护的用户寄存器。

(2)将SPSR寄存器复制到CPSR中,使得原来CPSR状态从相应的SPSR中恢复,——恢复被中断的程序状态。

(3)根据异常类型将PC值恢复成断点地址,以继续执行用户原来运行着的程序。

(4)清除CPSR中的中断禁止标志I和F,开放外部中断和快速中断。

注意:

(1)程序状态寄存器及断点地址的恢复必须同时进行。

(2)由于异常随机发生,所以要对异常向量进行初始化,即在异常向量的地址处放置一条跳转指令,跳转到异常处理程序。

更多嵌入式学习笔记、实战项目,点击这里即可免费领取文章来源地址https://www.toymoban.com/news/detail-679332.html

到了这里,关于嵌入式学习笔记(3)ARM的异常处理方式介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 嵌入式学习---ARM时钟体系

    按 一定电压幅度 , 一定时间间隔 连续发出的脉冲信号。它是一个周期性的信号,每个周期内包含一个上升沿和一个下降沿。时钟脉冲的上升沿和下降沿通常用于触发和同步各个电子元件的操作,例如CPU的指令执行、数据传输、寄存器更新等。 时钟频率是指时钟脉冲的频率

    2024年01月16日
    浏览(57)
  • 嵌入式学习52-ARM1

    知识零散: 1.flash:                                                                                                                                                           nor flash    可被寻地址                                               

    2024年04月14日
    浏览(34)
  • ARM+LINUX嵌入式学习路线

    嵌入式学习是一个循序渐进的过程,如果是希望向嵌入式软件方向发展的话,目前最常见的是嵌入式Linux方向,关注这个方向,大概分3个阶段: 1、嵌入式linux上层应用,包括QT的GUI开发 2、嵌入式linux系统开发 3、嵌入式linux驱动开发 嵌入式目前主要面向的几个操作系统是,

    2024年02月02日
    浏览(60)
  • 华清远见嵌入式学习——ARM——作业3

    led.h led.c uart.h uart.c main.c

    2024年01月21日
    浏览(53)
  • 华清远见嵌入式学习——ARM——作业2

    目录 作业要求: 现象: 代码: 思维导图: 模拟面试题: GPIO实验——3颗LED灯的流水灯实现

    2024年02月03日
    浏览(42)
  • 嵌入式学习---ARM中断控制系统

    硬件中断处理是实时系统设计的最重要、最关键的问题。 程序不断地查询各设备的状态,并做出相应的反应。该方式实现比较简单,常用在比较单一的系统中,比如一个温控系统中可以使用查询方式不断检测温度的变化。 特点:实现简单;但 CPU利用率很低 ,不适合多任务的

    2024年02月03日
    浏览(72)
  • 嵌入式笔记1.1 ARM Cortex-M3M4简介

    目录 微型计算机的硬件共性结构及基本性能指标 关于存储器的介绍 微型计算机的基本性能指标 1. 字长 2. 主频 3. 存储容量 4. 外设扩展能力 5. 软件配置情况 Arm Cortex 系列微处理器系列概述 Arm Cortex-A 系列处理器 Arm Cortex-R 系列处理器 Arm Cortex-M 系列处理器 Cortex-M3 和 Cortex-M4简

    2024年03月27日
    浏览(50)
  • STM32&ARM体系结构(嵌入式学习)

    STM32是意法半导体(STMicroelectronics)公司推出的一系列32位ARM Cortex-M微控制器(MCU)产品系列。它们基于ARM架构,并且具有广泛的应用领域,包括工业自动化、消费电子、医疗设备、通信、汽车电子等。 STM32系列提供了多个产品系列,以满足不同应用需求和性能要求。其中常见

    2024年02月08日
    浏览(62)
  • 【ARM 嵌入式 编译系列 2.1 -- GCC 编译参数学习】

    请阅读 【ARM GCC 编译专栏导读】 上篇文章:ARM 嵌入式 编译系列 2 – GCC 编译过程介绍 下篇文章:ARM 嵌入式 C 入门及渐进 3 – GCC attribute ((weak)) 弱符号使用 上篇文章 ARM 嵌入式 编译系列 2 – GCC 编译过程介绍 已经介绍过了具体的编译流程,本篇文章主要介绍变过程中常见的

    2024年02月13日
    浏览(41)
  • 嵌入式C语言自我修养笔记1-ARM体系结构与编译运行

    ARM 体系结构 ARM 体系结构 ARM 相对精简指令集 RISC 还有如下区别 ● ARM 有桶型移位寄存器,单周期内可以完成数据的各种移位操作。 ● 并不是所有的 ARM 指令都是单周期的。 ● ARM 有 16 位的 Thumb 指令集,是 32 位 ARM 指令集的压缩形式,提高了代码密度 ● 条件执行:通过指令

    2024年02月07日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包