Cortex M3寄存器组

寄存器组


宗旨:技术的学习是有限的,分享的精神是无限的。


 

1、通用目的寄存器R0~R7

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

2、通用目的寄存器 R8-R12

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

3、特殊功能寄存器


程序状态寄存器:APSR, IPSR, EPSR  ---- MRS/MSR


APSR:

N:负条件码标志位,运算结果小于0,N=1, 大于等于0,N=0;

Z:零条件码标志位,运算结果为0,Z=1;

C:进位条件码标志位,运算指令产生进位(无符号加法溢出),C=1;

V:溢出条件码标志位,运算溢出(有符号加法溢出), V=1;

Q:饱和条件码标志位;

IPSR:处于线程模式时,该位域为0;在手柄模式下,该位域为当前异常的异常号。

EPSR:

T:Thumb状态, T=1,ARM状态,T=0; 

PRIMASK, FAULTMASK 和 BASEPRI:控制异常的使能和除能 


控制寄存器CONTROL:其一用于定义特权级别,其二用于选择当前使用哪个堆栈指针。


4、堆栈指针R13

R13 是堆栈指针。在 CM3 处理器内核中共有两个堆栈指针,于是也就支持两个堆栈。当引用 R13(或写作 SP)时,引用到的是当前正在使用的那一个,另一个必须用特殊的指令来访问( MRS,MSR指令)。

主堆栈指针(MSP),或写作 SP_main。这是缺省的堆栈指针,它由 OS 内核、异常服务例程以及所有需要特权访问的应用程序代码来使用。

进程堆栈指针(PSP),或写作 SP_process。用于常规的应用程序代码(不处于异常服用例程中时)。

5、连接寄存器R14

R14 是连接寄存器( LR)。在一个汇编程序中,你可以把它写作 both LR 和 R14。 LR 用于在调用子程序时存储返回地址。例如,当你在使用 BL(分支并连接, Branch and Link)指令时,就自动填充 LR的值。

6、程序计数器R15

R15 是程序计数器,在汇编代码中一般我们都都叫它的外号“ PC”。因为 CM3 内部使用了指令流水线,读 PC 时返回的值是当前指令的地址+4。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/466668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习-超参数调优

在机器学习中有很多调优的方式机器学习——超参数调优,深度学习中也存在同样的方式,接下来,介绍一下深度学习框架里边的自动调参模块。 1. 基于Tensorflow的Keras tuner 官方教程如下:Introduction to the Keras Tuner | Tens…

【文章汇总】嵌入式Linux公众号

据悉,深圳某工程师沦为C语言笔试枪手 修改cmdline 把内存改成512MB 上拉电阻的作用

Leetcode分类

二叉树平衡二叉树easy 108. Convert Sorted Array to Binary Search Tree 2. 二叉树 617. Merge Two Binary Trees 104. Maximum Depth of Binary Tree 列表题:21. Merge Two Sorted Lists 字符串题数组题排序347. Top K Frequent Elements 归并递归70. Climbing S…

第5节 三个败家子(5)——刘封,被封印的秘密

根据《三国志刘封传》记载“刘封者,本罗侯寇氏之子,长沙刘氏之甥也。先主至荆州,以未有继嗣,养封为子。及先主入蜀,自葭萌还攻刘璋,时封年二十余”。等等,各位看官说了,时间上不对啊…

Paddle——常见的评估指标

在模型评估过程中,分类、回归、排序问题往往使用不同的指标进行评估。分类问题通常用准确率、召回率、精准率、F1值等指标进行评估;回归问题使用MSE、RMSE、R^2、MAPE等; 1 分类评估原理 1.1 准确率的局限性 我们经常接触的评价指标就是准…

大江大河,随笔观后感

我是「大江大河」的铁粉,非常喜欢这部剧,从这部剧里面能看到生活的一些影子。从这部剧里面也可以看到不同阶层的人们对待生活,对待理想,对待身边的朋友亲人的态度。—— 知乎热论「程开颜为什么输给了杨思申?」程开颜并…

Cortex M3内核架构

CortexM3内核架构 宗旨:技术的学习是有限的,分享的精神是无限的。 1、ARMCortex-M3处理器 Cortex-M3处理器内核是单片机的中央处理单元( CPU)。 完整的基于CM3的MCU还需要很多其它组件。在芯片制造商得到CM3处理器内核的使用授权…

瀑布流布局(1)

前言 完成一个动漫人物的瀑布流布局&#xff0c;分别通过原生JavaScript、Css3和Jquery方式实现。 首先是使用JavaScript。 一、创建基本框架 1 HTML结构 <main> //便于以后进行 相对定位<div class"wrap"> //为了方便设置图片和图…

NLP——序列标注之命名实体识别

1.概述 序列标注包括自然语言处理中的分词&#xff0c;词性标注&#xff0c;命名实体识别&#xff0c;关键词抽取&#xff0c;词义角色标注等。解决方案是NN模型&#xff08;神经网络模型&#xff09;CRF 命名实体识别&#xff08;Named Entity Recognition&#xff0c;简称N…

C语言验证6174数学问题

有意思的数学问题任意4位不完全一样的数字&#xff0c;能组合出的最大数字减去能组合出的最小数字&#xff0c;得到一个新的数字(3位数补0&#xff09;&#xff0c;重复以上操作&#xff0c;不超过7个循环&#xff0c;必然得到一个数&#xff1a;6174这个问题是之前发布的文章&…

Cortex-M3工作模式与异常

Cortex-M3工作模式与异常 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 一、工作模式 线程模式和手柄模式。 当处理器处在线程状态下时&#xff0c;既可以使用特权级&#xff0c;也可以使用用户级&#xff1b;另一方面&#xff0c; handler模式总是特…

Python学习——模块的基本知识

http://www.cnblogs.com/alex3714/articles/5161349.html# 定义# 模块&#xff1a;用来从逻辑上组织python代码&#xff08;变量&#xff0c;函数&#xff0c;类&#xff0c;逻辑&#xff1a;实现一个功能&#xff09;&#xff0c;本质就# 是.py结尾的python文件&#xff08;文…

Windows XP系统的“恢复”办法

Windows XP系统的“恢复”办法 1&#xff0e;让SFC命令全面修复受损文件 如果系统因丢失了太多的系统重要文件而变得非常不稳定&#xff0c;那么按照前面介绍的方法一一修复&#xff0c;相必会让人发疯的。这时就需要使用SFC文件检测器命令&#xff0c;来全面的检测并修复受损的…

自己动手实现一个malloc内存分配器 | 30图

对内存分配器透彻理解是编程高手的标志之一。如果你不能理解malloc之类内存分配器实现原理的话&#xff0c;那你可能写不出高性能程序&#xff0c;写不出高性能程序就很难参与核心项目&#xff0c;参与不了核心项目那么很难升职加薪&#xff0c;很难升级加薪就无法走向人生巅峰…

机器学习面试——分类算法SVM

1、什么是硬间隔和软间隔&#xff1f; 当训练数据线性可分时&#xff0c;通过硬间隔最大化&#xff0c;学习一个线性分类器&#xff0c;即线性可分支持向量机。 当训练数据近似线性可分时&#xff0c;引入松弛变量&#xff0c;通过软间隔最大化&#xff0c;学习一个线性分类器…

计算机的发展史及多道技术

首先先补充一下上一篇的一个小问题。 应用程序的启动流程&#xff1a;   前提&#xff1a;应用程序是运行于操作系统之上的   举例&#xff1a;启动暴风音影     1.双击快捷方式     2.告诉操作系统一个文件路径     3.操作系统从硬盘读取文件内容到内存中   …

Cortex M3 NVIC与中断控制

Cortex M3 NVIC与中断控制 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 一、NVIC概览 ——嵌套中断向量表控制器 NVIC 的寄存器以存储器映射的方式来访问&#xff0c;除了包含控制寄存器和中断处理的控制逻辑之外&#xff0c; NVIC 还包含了 MPU、 S…

VS 2005 或 VS 2008 在安装VSS 2005后,看不到源代码管理的解决办法

昨天有朋友在重新安装VS 2008后&#xff0c;再安装VSS 2005&#xff0c;安装好后在文件菜单中找不到“源代码管理”的菜单项&#xff0c;后来经朋友告知&#xff0c;是开发工具的默认选项设置问题。打开开发工具&#xff0c;“工具”--“选项”&#xff1a;&#xff08;如图&am…

代码里-3gt;gt;1是-2但3gt;gt;1是1,-3/2却又是-1,为什么?

之前群里有个同学向大家提出了类似这样的问题。随后这位同学公布了答案&#xff1a;右移运算是向下取整&#xff0c;除法是向零取整。这句话对以上现象做了很好的总结&#xff0c;可是本质原因是什么呢&#xff1f;我一直以为-3>>1的结果是-1。所以打算思考一下这个问题。…