当前位置: 首页 > news >正文

《嵌入式 - 嵌入式大杂烩》ARM Cortex-M寄存器详解

1 ARM Cortex-M寄存器概述

ARM Cortex-M提供了 16 个 32 位的通用寄存器(R0 - R15),如下图所示。前15个(R0 - R14)可以用作通用的数据存储,R15 是程序计数器 PC,用来保存将要执行的指令。除了通用寄存器,还有一些特殊功能寄存器。特殊功能寄存器有预定义的功能,而且必须通过专用的指令来访问。

在这里插入图片描述

Figure 1 1 Core register set summary

2 通用目的寄存器组

2.1 通用目的寄存器 R0-R7

R0-R7 也被称为低组寄存器。所有指令都能访问它们。它们的字长全是 32 位,复位后的初始值是不可预料的。

2.2 通用目的寄存器 R8-R12

R8-R12 也被称为高组寄存器。这是因为只有很少的 16 位 Thumb 指令能访问它们,32 位的thumb-2 指令则不受限制。它们也是 32 位字长,且复位后的初始值是不可预料的。

3 堆栈指针 R13

R13 是堆栈指针。在Cortex-M处理器内核中共有两个堆栈指针:MSP(Master Stack Pointer)和PSP(Process Stack Pointer),于是也就支持两个堆栈。

当引用 R13(或写作 SP)时,引用到的是当前正在使用的那一个,另一个必须用特殊的指令来访问(MRS,

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 嵌入式初学-C语言-十六
  • elasticsearch--RestClient操作索引库(java)
  • linux查询占用端口 杀死占用端口进程
  • 基于OpenCV+MFC的视频读取与对象跟踪平台
  • MathType7.4中文版本功能详解!你的数学公式编辑神器
  • Conda Shell初始化指南:激活你的开发环境
  • RK3568平台开发系列讲解(文件系统篇)文件描述符 fd(File Descriptor)是什么?
  • 电脑自动重启是什么原因?重启原因排查和解决办法!
  • C++_sizeof的相关知识点
  • C++模板元一生之友之:std::enable_if
  • 若依vue版前端白名单处理
  • php之 进行签名公钥、私钥(SHA1withRSA签名)
  • oracle(19c)用户管理
  • pytorch学习笔记3 tensor索引和切片
  • 如何使用哔哩哔哩下载与缓存视频?
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • emacs初体验
  • HTML5新特性总结
  • JavaScript 基本功--面试宝典
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • mysql中InnoDB引擎中页的概念
  • Octave 入门
  • Redis中的lru算法实现
  • Vue 2.3、2.4 知识点小结
  • 代理模式
  • 对象引论
  • 面试总结JavaScript篇
  • 前嗅ForeSpider教程:创建模板
  • 项目管理碎碎念系列之一:干系人管理
  • 积累各种好的链接
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • # Maven错误Error executing Maven
  • #if和#ifdef区别
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (Oracle)SQL优化技巧(一):分页查询
  • (web自动化测试+python)1
  • (阿里云在线播放)基于SpringBoot+Vue前后端分离的在线教育平台项目
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (译) 函数式 JS #1:简介
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)EXC_BREAKPOINT僵尸错误
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .htaccess配置重写url引擎
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .Net--CLS,CTS,CLI,BCL,FCL
  • [ C++ ] STL---string类的使用指南
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码