Cortex-M0(3)---ARM Cortex-M0 异常与中断
ARM Cortex-M0 异常与中断
异常类型及编号
Cortex-M0的每个异常源都有一个单独的编号:
1~15内部系统异常:Reset(1), NMI(2), H/W Error(3), SVC(11), PndSV(14), SysTick(15)其他编号未用;
16~47外部中断: IRQ#0~IRQ#31.异常优先级 (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)向量表(异常处理所需的起始地址信息)
异常向量的地址为异常编号乘以4(Reset向量的地址为:1*4=0x00000004),其他向量地址如下图所示:
EXC_RETURN(32Bits)
该值用于异常返回机制,下图是其位域的含义:
3个合法值:
0xFFFFFFF1 返回处理模式(嵌套异常发生的情况)
0xFFFFFFF9 返回线程模式并在返回中使用主栈(MSP);
0xFFFFFFFD 返回线程模式并在返回中使用进程栈(PSP);异常的流程
接受异常请求:
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) 恢复返回地址,并执行异常前程序。3种主要的异常及其机制:(单异常,末尾连锁,延迟到达)
1)单异常
2)末尾连锁
3)延迟到达
Cortex-M0(3)---ARM Cortex-M0 异常与中断相关推荐
- 11.ARM架构的异常与中断
目录 1.异常与中断的引入 2.CPU模式(Mdde)状态(state)以及程序状态寄存器 3.Undefined 异常模式例子 4.SWI异常模式实例 源代码: 1.异常与中断的引入 1.1.中断的 ...
- 32 位 ARM® Cortex®-M0+内核 单片机
PY32F003 系列微控制器采用高性能的 32 位 ARM® Cortex®-M0+内核,宽电压工作范围的 MCU.嵌入高达 32Kbytes flash 和 4Kbytes SRAM 存储器,最高 ...
- ARM Cortex -M 体系结构————————ARM微控制器与嵌入式系统(清华大学慕课记录)
ARM的发展过程 对于ARM公司来讲,ARM公司只做CPU设计,采用出售IP的方式运营,半导体产商无需自己设计CPU,是生产关系的革命,提高了生产力.下面这张图ARM核的多个系列,我们可以看到ARM从 ...
- 32位ARM®Cortex®-M0+内核单片机 XL32F003系列MCU
XL32F003系列微控制器采用高性能的32位ARM®Cortex®-M0+内核,宽电压工作范围的MCU.嵌入高达64 Kbytes flash和8 Kbytes SRAM存储器,最高工作频率32 M ...
- 新唐ARM®Cortex™-M0特点总结
ARM®CortexTM-M0特点: 主频50mhz主频,0.9DMIPS/MHz(相当于8位和16位产品的2-4倍) 小的处理内核,系统和存储器,可以降低器件成本 完善的电源管理(睡眠,深度睡眠和深 ...
- ARM Cortex M0权威指南_PDF电子书下载 带书签目录 高清完整版 http://pan.baidu.com/s/1jGKQSwY MariaDB入门很简单_PDF电子书下载 带
ARM Cortex M0权威指南_PDF电子书下载 带书签目录 高清完整版 http://pan.baidu.com/s/1jGKQSwY MariaDB入门很简单_PDF电子书下载 带 ...
- 英飞凌tle985x芯片简介--集成了Arm®Cortex®M0的H桥驱动芯片
TLE985X解决方案的简介 Infineon`s integrated motor driver optimizes the target applications by offering cost ...
- 基于ARM Cortex M0 核心的低功耗蓝牙BLE芯片
MS1793S 是一款基于ARM Cortex M0 核心的低功耗蓝牙芯片,射频采用2.4GHz ISM 频段的频率,2MHz 信道间隔,符合蓝牙规范.MS1793S使用高性能的ARM®Cortex® ...
- 基于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系列高性能 ...
- ARM® Cortex®-M内核单片机STM32家族介绍,覆盖STM32F、STM32H、STM32L全系列
STM32是ARM®Cortex®-M内核单片机.目前提供10大产品线(F0, F1, F2, F3, F4, F7, H7, L0, L1, L4),超过700个型号.STM32产品广泛应用于 ...
最新文章
- 程序员才懂的“凡尔赛语录”
- WPF DataGrid横向显示
- 设备坐标与逻辑坐标关系
- C语言实现斐波那契搜索Fibonacci search算法(附完整源码)
- 【Tiny4412】烧写最小文件系统到EMMC
- java内部类的使用
- 跨浏览器的placehold
- 华为云企业级Redis:集群搭载多DB,多租隔离更降本
- java获取网页的内容_java获取网页内容
- Appium API文档中文版
- 机器学习中的数学基础
- Mac下安装Adobe pr
- Pixhawk-姿态解算源码注释
- 工作流引擎 html5,强大的工作流引擎管理软件平台_轻松实现流程管控_任务驱动...
- Oracle导出FSG,SQL语句 - FSG行集、列集定义导出
- 购买重疾险是不是都要先去体检?千万不要!
- 在腾讯云搭建代理服务器的全部过程
- Oracle - Database 甲骨文
- 全国人工智能师资培训高校行重磅启动,飞桨携手7校开启AI学习之旅
- echarts:中国地图实现