ARM Cortex-M0 异常与中断

  1. 异常类型及编号 
    Cortex-M0的每个异常源都有一个单独的编号: 
    1~15内部系统异常:Reset(1), NMI(2), H/W Error(3), SVC(11), PndSV(14), SysTick(15)其他编号未用; 
    16~47外部中断: IRQ#0~IRQ#31.

  2. 异常优先级 (Cortex-M0 支持7个) 
    1). Cortex-M0 支持3个固定的最高优先级(Reset(-3), NMI(-2), H/W Error(-1))和4个可编程优先级; 
    2). 可编程寄存器有8bit宽,但只有Bit7和Bit6可配置,其余Bits为0. (优先级由高到低:0x00,0x40,0x80,0xC0); 
    3). 如果两个同时发生的异常的优先级相同,则先执行异常编号小的。(IRQ#0,IRQ#1 则先执行IRQ#0)

  3. 向量表(异常处理所需的起始地址信息) 
    异常向量的地址为异常编号乘以4(Reset向量的地址为:1*4=0x00000004),其他向量地址如下图所示: 

  4. EXC_RETURN(32Bits) 
    该值用于异常返回机制,下图是其位域的含义: 

    3个合法值: 
    0xFFFFFFF1 返回处理模式(嵌套异常发生的情况) 
    0xFFFFFFF9 返回线程模式并在返回中使用主栈(MSP); 
    0xFFFFFFFD 返回线程模式并在返回中使用进程栈(PSP);

  5. 异常的流程

    接受异常请求: 
    1) 中断和SysTick中断使能; 
    2) 未被NMI屏蔽掉; 
    3) 异常优先级大于当前执行的异常优先级。

    压栈及相关寄存器更新: 
    1) 压栈并更新栈指针(8个registers被压栈:R0~R3, R12, R14/LR, R15/PC, xPSR); 
    2) 取出异常向量写入PC中; 
    3) 3个寄存器更新(LR<–EXC_RETURN, IPSR<–异常编号, NVIC<– 对应的中断控制和状态)

    执行异常处理: 
    1) 自动定位异常向量,并处理; 
    2) 利用EXC_TURN的值来触发异常返回机制。

    异常退出: 
    1) 寄存器出栈; 
    2) 恢复返回地址,并执行异常前程序。

  6. 3种主要的异常及其机制:(单异常,末尾连锁,延迟到达) 
    1)单异常 

    2)末尾连锁 

    3)延迟到达 

Cortex-M0(3)---ARM Cortex-M0 异常与中断相关推荐

  1. 11.ARM架构的异常与中断

    目录 1.异常与中断的引入 2.CPU模式(Mdde)状态(state)以及程序状态寄存器 3.Undefined 异常模式例子 4.SWI异常模式实例 源代码: 1.异常与中断的引入 1.1.中断的 ...

  2. 32 位 ARM® Cortex®-M0+内核 单片机

    PY32F003 系列微控制器采用高性能的 32 位 ARM® Cortex®-M0+内核,宽电压工作范围的 MCU.嵌入高达 32Kbytes flash 和 4Kbytes SRAM 存储器,最高 ...

  3. ARM Cortex -M 体系结构————————ARM微控制器与嵌入式系统(清华大学慕课记录)

    ARM的发展过程 对于ARM公司来讲,ARM公司只做CPU设计,采用出售IP的方式运营,半导体产商无需自己设计CPU,是生产关系的革命,提高了生产力.下面这张图ARM核的多个系列,我们可以看到ARM从 ...

  4. 32位ARM®Cortex®-M0+内核单片机 XL32F003系列MCU

    XL32F003系列微控制器采用高性能的32位ARM®Cortex®-M0+内核,宽电压工作范围的MCU.嵌入高达64 Kbytes flash和8 Kbytes SRAM存储器,最高工作频率32 M ...

  5. 新唐ARM®Cortex™-M0特点总结

    ARM®CortexTM-M0特点: 主频50mhz主频,0.9DMIPS/MHz(相当于8位和16位产品的2-4倍) 小的处理内核,系统和存储器,可以降低器件成本 完善的电源管理(睡眠,深度睡眠和深 ...

  6. ARM Cortex M0权威指南_PDF电子书下载 带书签目录 高清完整版 http://pan.baidu.com/s/1jGKQSwY MariaDB入门很简单_PDF电子书下载 带

    ARM  Cortex  M0权威指南_PDF电子书下载 带书签目录 高清完整版   http://pan.baidu.com/s/1jGKQSwY   MariaDB入门很简单_PDF电子书下载 带 ...

  7. 英飞凌tle985x芯片简介--集成了Arm®Cortex®M0的H桥驱动芯片

    TLE985X解决方案的简介 Infineon`s integrated motor driver optimizes the target applications by offering cost ...

  8. 基于ARM Cortex M0 核心的低功耗蓝牙BLE芯片

    MS1793S 是一款基于ARM Cortex M0 核心的低功耗蓝牙芯片,射频采用2.4GHz ISM 频段的频率,2MHz 信道间隔,符合蓝牙规范.MS1793S使用高性能的ARM®Cortex® ...

  9. 基于Arm Cortex内核的32位MCU和MPU(M0、M0+、M3、M4、M33、M7、A7)

    基于Arm Cortex内核的32位MCU和MPU ST意法半导体产品矩阵 M3典型--STM32 F1系列Cortex-M3基础型MCU M4典型--带有DSP和FPU指令的STM32F4系列高性能 ...

  10. ARM® Cortex®-M内核单片机STM32家族介绍,覆盖STM32F、STM32H、STM32L全系列

     STM32是ARM®Cortex®-M内核单片机.目前提供10大产品线(F0, F1, F2, F3, F4, F7, H7, L0, L1, L4),超过700个型号.STM32产品广泛应用于 ...

最新文章

  1. 程序员才懂的“凡尔赛语录”
  2. WPF DataGrid横向显示
  3. 设备坐标与逻辑坐标关系
  4. C语言实现斐波那契搜索Fibonacci search算法(附完整源码)
  5. 【Tiny4412】烧写最小文件系统到EMMC
  6. java内部类的使用
  7. 跨浏览器的placehold
  8. 华为云企业级Redis:集群搭载多DB,多租隔离更降本
  9. java获取网页的内容_java获取网页内容
  10. Appium API文档中文版
  11. 机器学习中的数学基础
  12. Mac下安装Adobe pr
  13. Pixhawk-姿态解算源码注释
  14. 工作流引擎 html5,强大的工作流引擎管理软件平台_轻松实现流程管控_任务驱动...
  15. Oracle导出FSG,SQL语句 - FSG行集、列集定义导出
  16. 购买重疾险是不是都要先去体检?千万不要!
  17. 在腾讯云搭建代理服务器的全部过程
  18. Oracle - Database 甲骨文
  19. 全国人工智能师资培训高校行重磅启动,飞桨携手7校开启AI学习之旅
  20. echarts:中国地图实现

热门文章

  1. 【蓝桥杯嵌入式】【STM32】2_KEYBOARD(主循环扫描+外部中断)
  2. 内核网络输出帧的处理
  3. RTP/RTCP中的Jitter
  4. 菜鸟学习笔记:Java基础篇6(数组、字符串)
  5. 【前端】第三章 Vue
  6. 线程、线程与进程、ULT与KLT
  7. Mysql之索引优化案例
  8. [kuangbin带你飞]专题十二 基础DP1 C - Monkey and Banana HDU - 1069
  9. Spring中PropertyPlaceholderConfigurer的使用
  10. js 阻止冒泡事件和默认事件