STM32寄存器的简介

一、STM32F103系列芯片的地址映射和寄存器映射原理

1、寄存器的含义

现代的计算机主要包括三级存储,寄存器、内存储器和外存储器,存储数据的速率也依次递减。
寄存器是 CPU 内部的构造,它主要用于信息的存储。
寄存器是计算机中的一种存储设备,用于存储和处理数据和指令。寄存器通常位于中央处理器(CPU)内部,速度非常快,可以在一个时钟周期内访问和操作数据。 寄存器可以存储二进制数据,包括整数、浮点数、地址等。它们用于执行计算、存储临时结果、保存程序执行的状态等。寄存器也可以用于传递参数和返回值,在函数调用和子程序中起到重要作用。 计算机中的寄存器通常有不同的类型,如通用寄存器、指令寄存器、程序计数器等。每种类型的寄存器用于不同的目的,以支持计算机的不同功能和操作。 寄存器的数量和位宽度是计算机体系结构的一部分,不同的计算机体系结构可能有不同数量和种类的寄存器。寄存器的数量和大小直接影响计算机的性能和能力。

2、地址映射和寄存器映射原理

我们知道,存储器本身没有地址,给存储器分配地址的过程叫存储器映射,那什么叫寄存器映射?寄存器到底是什么?
说到映射大家可能就会想到函数映射,脑海里会有一个画面:左边一个集合中的某个元素“射”出一条带箭头的直线指向右边的集合的某个元素。
其实外围设备的内存映射原理是一样的,只不过左边的集体变成了CPU,右边的集合变成了外围设备,那条带箭头的线就是连接CPU和外设地址引脚的地址总线。
存储器本身不具有地址信息,它的地址是由芯片厂商或用户分配,给存储器分配地址的过程就称为存储器映射
在这里插入图片描述
要知道,一个开发板的CPU地址引脚并不是所有的都与内存元器件相连的,如果该板上有外设(如一块独立显卡),那么CPU就需要分出一些引脚来与该外设的地址引脚相连,相当于将一部分内存寻址的空间分给了外设,那不相当于CPU分出去地址寻址空间为空?

事实并非如此,一般的外设为了加快处理速度都有自己的片内RAM(比如说显存,你也知道显存对显卡性能的重要性),分出去的地址空间也就与片内RAM物理连接起来,这样CPU就能像访问内存一样去访问外设的片内RAM,这也就是所谓的内存映射。

在存储器的区域单元中,每一个单元对应不同的功能,当我们控制这些单元时就可以驱动外设工作。我们可以找到每个单元的起始地址,然后通过 C 语言指针的操作方式来访问这些单元,如果每次都是通过这种地址的方式来访问,不仅不好记忆还容易出错,这时我们可以根据每个单元功能的不同,以功能为名给这个内存单元取一个别名,这个别名就是我们经常说的寄存器,这个给已经分配好地址的有特定功能的内存单元取别名的过程就叫寄存器映射。

二、嵌入式C程序代码对内存(RAM)中的各变量的修改操作,与对外部设备(寄存器—>对应相关管脚)的操作有哪些相同与差别?

对内存中的变量和对外部设备(寄存器)的操作在某些方面是相似的,但也存在一些差异。

1、下面是它们的相同点和差异点:

相同点: 1. 写操作:无论是对内存中的变量还是对外部设备的寄存器,都需要进行写操作来修改其内容。 2. 读操作:无论是从内存中读取变量的值还是从外部设备的寄存器中读取数据,都需要进行读操作。

2、差异点:

  1. 访问速度:内存访问速度较慢,而寄存器访问速度非常快。由于寄存器通常位于CPU内部,可以在一个时钟周期内访问和修改数据,而内存访问则需要多个时钟周期。 2. 地址空间:内存有一个虚拟地址空间,可以存储大量的变量和数据,而寄存器的数量有限,且通常用于存储临时数据和寄存器变量。 3. 缓存:CPU通常会有多级缓存,其中包括寄存器级别的缓存,用于提高内存访问的效率。在缓存中读取和写入数据的速度比直接访问内存要快。 4. 程序控制:对内存中的变量进行修改操作需要使用相应的指令来读取、修改和写入数据,而对外部设备的操作通常需要通过特殊的指令或函数来实现,例如使用特定的寄存器操作指令或外设控制寄存器的写操作。 5. 并发性:对内存中的变量的修改操作可能会受到并发访问的影响,需要使用同步机制来保证数据的一致性。对外部设备的操作通常不涉及并发访问的问题。 需要注意的是,对内存中的变量和对外部设备(寄存器)的操作在具体实现上可能会有所不同,这取决于使用的编程语言、硬件平台和操作系统等因素。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值