Cortex M3处理器工作模式及中断过程
4. M3寄存器
r0-r12:通用寄存器,其中r8-r12只能被32位指令访问。
r13(SP):堆栈指针;线程模式时可以在线程堆栈和主堆栈之间切换,但处理模式只使用主堆栈。两个堆栈同一时刻只有一个可见,进入、退出异常时自动切换堆栈。
r14(LR):链接寄存器,保存子程序或异常的返回地址(要实现嵌套,必须入栈)。
r15(PC):程序计数器
xPSR:特殊用途的程序状态寄存器
5. 异常
进入异常步骤:
1. 处理器在当前堆栈上把xPSR、PC、LR、r12、r3~r0八个寄存器自动依次入栈。
2. 读取向量表(如果是复位中断,更新SP值)
3. 根据向量表更新PC值
4. 加载新PC处的指令(2、3、4步与1步同时进行)
5. 更新LR为EXC_RETURN(EXC_RETURN表示退出异常后返回的模式及使用的堆栈)。
退出异常步骤:
1. 根据EXC_RETURN指示的堆栈,弹出进入中断时被压栈的8个寄存器。
2. 从刚出栈的IPSR寄存器[8:0]位检测恢复到那个异常(此时为嵌套中断中),若为0则恢复到线程模式。
3. 根据EXC_RETURN,选择使用相应SP。
末尾连锁(Tail-chaining):当前正在执行中断,又有一个中断到来且这个中断优先级比正在执行的中断优先级低(如果有其他被压栈的低优先级中断则要比这些中断优先级高),这个中断暂时被挂起,等到当前中断执行完后不再执行堆栈操作,而直接进入挂起的中断。
迟来:前一个中断还没有进入执行阶段(但处理器状态已经保存),后面来了一个高优先级中,则前一个中断被抢占,后来的高优先级中断不需要再保存寄存器状态。
Cortex M3处理器工作模式及中断过程相关推荐
- 【嵌入式开发】ARM 芯片简介 (ARM芯片类型 | ARM处理器工作模式 | ARM 寄存器 | ARM 寻址)
作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42375701 相关资源下载 : -- 三星 ARM Archit ...
- 【Android 逆向】ARM CPU 架构体系 ( ARM 处理器工作模式 | ARM 架构模型 )
文章目录 一.ARM 处理器工作模式 二.ARM 架构模型 一.ARM 处理器工作模式 参考 [嵌入式开发]ARM 处理器工作模式 及 修改方法 ( 处理器模式 | 设置处理器模式 | 程序状态字寄存 ...
- ARM处理器工作模式
一.ARM体系的CPU有以下7种工作模式: 1.用户模式(usr):正常的程序执行状态 2.快速中断模式(fiq):用于支持高速数据传输或通道处理 3.中断模式(irq):用于普通中断处理 4.管理模 ...
- 嵌入式ARM设计编程(三) 处理器工作模式
文章和代码已归档至[Github仓库:hardware-tutorial],需要的朋友们自取.或者公众号[AIShareLab]回复 嵌入式 也可获取. 一.实验目的 (1) 通过实验掌握学会使用ms ...
- 【嵌入式开发】ARM 处理器工作模式 及 修改方法 ( 处理器模式 | 设置处理器模式 | 程序状态字寄存器 CPSR SPSR | 模式设置代码编写 | 设置 svc 模式 )
一. 处理器工作模式相关介绍 1. 处理器模式简介 (1) 处理器工作模式分类 (2) 处理器不同工作模式区别 (3) Linux 系统运行的模式 (4) 特权模式 说明 (5) 异常模式 (6) 系 ...
- cortex m3的操作模式和状态
1.操作状态(operation state): debug state:处理器在调试器发起halt或匹配到断点时,会进入debug state并停止执行指令. thumb state:处理器正在运行 ...
- [ARM] ARM处理器的7种工作模式和2种工作状态
转载:https://blog.csdn.net/ly930156123/article/details/79219303 两种工作状态 1.ARM状态:32位,ARM状态执行字对齐的32位ARM指令 ...
- Cortex M3内核架构
CortexM3内核架构 宗旨:技术的学习是有限的,分享的精神是无限的. 1.ARMCortex-M3处理器 Cortex-M3处理器内核是单片机的中央处理单元( CPU). 完整的基于CM3的MCU ...
- ARM编程模式和7钟工作模式
一. ARM的基本设定 1.1. ARM 采用的是32位架构 1.2. ARM约定: a. Byte : 8 bits b. Halfword :16 bits (2 byte) c. Word : ...
最新文章
- 习题4-1 求奇数和 (15 分)
- 【 MATLAB】Subspace algorithm Simulation of TOA - Based Positioning
- python写货币转换_如何在Python中将货币字符串转换为浮点数?
- 通过福禄克LinkIQ网络电缆测试仪排除 VLAN 故障
- C++走向远洋——63(项目二2、两个成员的类模板)
- 程序员面试金典 - 面试题 05.02. 二进制数转字符串(浮点型 转 二进制小数,乘2取整)
- 解决IE8 无法使用 JS 中Array() 的 indexOf 方法
- Android核心基础(五)
- 【Oracle】开、关、删归档日志(archivelog)
- JAVA集合二:HashMap和Hashtable
- CSS渲染器:将Photoshop Filters效果带入网络
- 牛客网SQL练习题(Mysql-8)
- html的细节优化,网页页面的细节优化策略
- 锐捷交换机配置保存到计算机,锐捷交换机常用配置命令汇总
- 电子线路(线性部分)——第一章 晶体二极管
- 干系人管理4个过程及重点
- Android 地图跳转到百度、高德、腾讯地图导航
- 为什么大多数人永远不会真正成功?
- Amazon SageMaker简直就是机器学习平台的天花板
- 生活小剧场30天吸粉44w,小红书最受欢迎的笔记长这样
热门文章
- python3 beautifulsoup配合requests下载老司机图片
- RHCS基本理論(台湾人写的不错的文章)
- android 有道笔记 装在哪个目录,有道云笔记文件保存在哪里在哪个路径下
- 秘密是如何被泄露的?自建文件分享神器HFS
- C# 程序创建word文件与表格
- 地图服务平台技术方案
- 科普 | 什么是ChatGPT?试用ChatGPT,ChatGPT的启示!
- java中parseint函数_浅谈 js中parseInt函数的解析
- PS图层混合模式MATLAB实现
- 会议邀请〡第六届全国高校电子信息类课程教学研讨会邀请函