首页 > 系统相关 >物理内存与外设寄存器

物理内存与外设寄存器

时间:2024-03-07 09:25:46浏览次数:15  
标签:RAM 物理地址 内存 寄存器 CPU 外设

物理地址:CPU地址总线传来的地址,由硬件电路控制其具体含义。物理地址中很大一部分是留给内存条中的内存的,但也常被映射到其他存储器上 (如显存、BIOS等)。在程序指令中的虚拟地址经过段映射和页面映射后,就生成了物理地址,这个物理地址被放到CPU的地址线上。

物理地址空间,一部分给物理RAM(内存)用,一部分给总线用,这是由硬件设计来决定的,因此在32 bits地址线的x86处理器中,物理地址空间是2的32次方,即4GB,但物理RAM(内存条)一般不能上到4GB,因为还有一部分要给总线用(总线上还挂着别的 许多设备)。在PC机中,一般是把低端物理地址给RAM用,高端物理地址给总线用

 

内部寄存器:指的是CPU内核里的寄存器,如r0,r1等;

外设寄存器:一般是指一些某一特殊功能的物理地址,外设寄存器的物理地址都在0x4800_0000~0x5FFF_FFFF,比如STM32中,GPIO、I²C、SPI、CAN都叫做外设寄存器。嵌入式通过编程来控制外设寄存器从而控制芯片外部的外设。

内存:内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。如RAM,SDRAM,Flash等。
物理地址:操作系统会给每一个内存单元编上一个绝对的号,计算机系统就通过这个编号来定为每一个内存单元的物理位置,这个编号称为内存的物理地址

s3c2440(CPU:ARM920t)是32位操作系统,可达4GB(0x0000_00000 xFFFF_FFFF)的地址范围。但实际的内存可能用不了这么多内存,如,片内RAM的物理地址在0x0000_00000x0000_7FFF,SDRAM的物理地址在0x3000_00000x33fF_FFFF,外设寄存器的物理地址都在0x4800_00000x5FFF_FFFF。

标签:RAM,物理地址,内存,寄存器,CPU,外设
From: https://www.cnblogs.com/zj-studyrecoding/p/18058138

相关文章

  • 2. 寄存器(内存) | 检测点3.1
          TRANSLATEwithxEnglishArabicHebrewPolishBulgarianHindiPortugueseCatalanHmongDawRomanianChineseSimplifiedHungarianRussianChineseTraditionalIndonesianSlovakCzechItalianSlovenianDanishJapanese......
  • 集合与内存
    集合set无序无重复v={1,2,3,4,5,6,99,100}疑问:v={}"""Noneintv1=123v1=int()-->0boolv2=True/Falsev2=bool()->Falsestrv3=""v3=str()listv4=[]v4=list()tuplev5=()v5=tuple()dictv6={}v......
  • 20_SPI通信外设
    SPI通信外设SPI外设简介SPI框图SPI基本结构主模式全双工连续传输非连续传输软件/硬件波形对比硬件SPI读写W25Q64接线图代码MySPI.c#include"stm32f10x.h"//DeviceheadervoidMySPI_W_SS(uint8_tBitValue){ GPIO_WriteBit(GPIOA,GPIO......
  • C++ 释放vector内存
    释放vector内存的方法有多种,具体取决于使用vector的方式以及释放内存的目的。下面列举几种常见的释放vector内存的方法:1、清空vector调用vector的clear()方法可以清空vector中的元素,但是并不会释放vector所占用的内存空间。这意味着,如果之后还需要往vector中添加元素,ve......
  • C++ 如何快速清空vector以及释放vector内存?
    1、为什么需要主动释放vector内存vector其中一个特点:内存空间只会增长,不会减小,援引C++Primer:为了支持快速的随机访问,vector容器的元素以连续方式存放,每一个元素都紧挨着前一个元素存储。设想一下,当vector添加一个元素时,为了满足连续存放这个特性,都需要重新分配空间、拷贝元......
  • Qt QVector数据清理和内存清理
    原因在处理大数据时,发现QVector直接用clear后台查看程序所占用的内存并没有下降QVector数据清理1QVector<int>example_vec;2example_vec.clear();QVector内存清理1QVector<int>example_vec;2example_vec.shrink_to_fit();//程序运行到此处时内存才被降下去QV......
  • 网页浏览器Chrome开发者调试工具-Memory(内存)
    前言全局说明网页浏览器Chrome开发者调试工具-Memory(内存)一、网页浏览器Chrome开发者调试工具-Memory(内存)内存面板,用于记录和分析页面占用内存的情况,如查看内存占用变化,查看JavaScript对象和HTML节点的内存分配。二、关闭标签页在标签页上右键,可以选择移除或移动......
  • 7 JVM运行时内存区域
    7JVM运行时内存区域​ JVM运行时内存区域主要包括五块:程序计数器、java虚拟机栈、本地方法栈、方法区、堆​ 上述五块区域也可以分为线程共享和线程不共享两部分线程共享区域:方法区方法区是存放基础信息的位置,主要包括三部分:类的元信息保存了所有类的基本信息运......
  • 解决rsyslog服务占用内存过高
    解决rsyslog服务占用内存过高一、问题描述:使用htop命令查看内存占用时,发现rsyslogd内存占用很高 二、排查查看状态journalctl-ursyslog执行journalctl--verify命令检查发现系统日志卷文件损坏错误journalctl--verify 三、解决1、删除上面损坏的journal文......
  • Qt Creator 内存分析
    Ubuntu内存分析安装sudoapt-getinstallvalgrind打开Qtcreator->Analyze->valgrind内存分析器Memcheck会列出可能内存泄露的文件(有很多是误报需要仔细分辨)Window内存分析下载Heobhttps://github.com/ssbssa/heob/releases解压到英文目录.exe打开Qtcreator->An......