【STM32】常用存储器

常用存储器

在这里插入图片描述

RAM 存储器

RAM 是“Random Access Memory”的缩写,被译为随机存储器。所谓“随机存取”,指的是当存储器中的消息被读取或写入时,所需要的时间与这段信息所在的位置无关。而RAM可随读取其内部任意地址的数据,时间都是相同的,因此得名。实际上现在RAM已经专门用于指代作为计算机内存的易失性半导体存储器。
根据 RAM 的存储机制,又分为动态随机存储器 DRAM(Dynamic RAM)以及静态随机存储器 SRAM(Static RAM)两种。

实际应用场合中,SRAM 一般只用于 CPU 内部的高速缓存(Cache),而外部扩展的内存一般使用 DRAM。在 STM32 系统的控制器中,只有 STM32F429 型号或更高级的芯片才支持扩展 SDRAM,其它型号如 STM32F1、STM32F2 及 STM32F407 等型号只能扩展SRAM。

DRAM

RAM的一种,需要电荷刷新,掉电数据丢失,动态随机存储器 Dynamic RAM 的存储单元以电容的电荷来表示数据,有电荷代表 1,无电荷代表 0。

SDRAM

在这里插入图片描述

DRAM的一种,使用时钟同步进行刷新。由于使用时钟同步的通讯速度更快,所以SDRAM 使用更为广泛,这种 DRAM 被称为 SDRAM(Synchronous DRAM)。

DDR SDRAM

Double Data Rate SDRAM 进一步提高 SDRAM 的通讯速度,DDR SDRAM 在时钟的上升沿及下降沿各表示一个数据,也就是说在 1 个时钟周期内可以表示 2 位数据,在时钟频率同样的情况下,提高了一倍的速度.

SRAM

相对于DRAM电路结构不需要定时刷新充电,就能保持状态(当然,如果断电了,数据还是会丢失的)。
同样地,SRAM 根据其通讯方式也分为同步(SSRAM)和异步 SRAM,相对来说,异步SRAM 用得比较广泛

ROM 存储器

Read Only Memory,原指只读存储器,后设计出方便写入的存储器,现在一般用于指代非易失性半导体存储器,包括FLASH 存储器,有些人也把它归到 ROM 类里边。

MASK ROM 不可修改

MASK(掩膜) ROM 就是正宗的“Read Only Memory”,存储在它内部的数据是在出厂时使用特殊工艺固化的,生产后就不可修改,其主要优势是大批量生产时成本低。当前在生产量大,数据不需要修改的场合,还有应用。

OTPROM 可修改一次

OTPROM(One Time Programable ROM)是一次可编程存储器。这种存储器出厂时内部并没有资料,用户可以使用专用的编程器将自己的资料写入,但只能写入一次,被写入过后,它的内容也不可再修改。在 NXP 公司生产的控制器芯片中常使用 OTPROM 来存储密钥或设备独有的 mac 地址等内容。

EPROM 可重复擦写的存储器(基本不用)

EPROM(Erasable Programmable ROM)是可重复擦写的存储器,它解决了 PROM 芯片只能写入一次的问题。这种存储器使用紫外线照射芯片内部擦除数据,擦除和写入都要专用的设备。现在这种存储器基本淘汰,被 EEPROM 取代。

EEPROM 电可重复擦除 单字节写入

EEPROM(Electrically Erasable Programmable ROM)是电可擦除存储器。EEPROM 可以重复擦写,它的擦除和写入都是直接使用电路控制,不需要再使用外部设备来擦写。而且可以按字节为单位修改数据,无需整个芯片擦除。现在主要使用的 ROM 芯片都是EEPROM。

FLASH 存储器

1.可重复擦写
2.的容量一般比 EEPROM 大得多
3.在擦除时,一般以多个字节为单位,一个扇区
4.FLASH 存储器又分为 NOR FLASH 和 NAND FLASH

NOR 、NAND FLASH (地址线数据线是否复用,能不能以单字节读取

在这里插入图片描述
NOR与 NAND 的共性是在数据写入前都需要有擦除操作,而擦除操作一般是以“扇区
/块”为单位的。而 NOR 与 NAND 特性的差别,主要是由于其内部“地址/数据线”是否分 开.

于 NOR 的地址线和数据线分开,它可以按“字节”读写数据,符合 CPU 的指令译码执行要求,所以假如 NOR 上存储了代码指令,CPU 给 NOR 一个地址,NOR就能向 CPU返回一个数据让 CPU 执行,中间不需要额外的处理操作。

于 NAND 的数据和地址线共用,只能按“块”来读写数据,假如 NAND上存储了代码指令,CPU 给 NAND 地址后,它无法直接返回该地址的数据,所以不符合指令译码要求。若代码存储在 NAND 上,可以把它先加载到 RAM 存储器上,再由 CPU 执行。

在功能上可以认为 NOR是一种断电后数据不丢失的 RAM,但它的擦除单位与 RAM有区别,且读写速度比 RAM 要慢得多。

NOR FLASH 一般应用在代码存储的场合,如嵌入式控制器内部的程序存储空间。而NAND FLASH一般应用在大数据量存储的场合,包括SD 卡、U 盘以及固态硬盘等,都是 NAND FLASH 类型的。

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

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

相关文章

性能测试 —— Jmeter定时器

固定定时器 如果你需要让每个线程在请求之前按相同的指定时间停顿,那么可以使用这个定时器;需要注意的是,固定定时器的延时不会计入单个sampler的响应时间,但会计入事务控制器的时间 1、使用固定定时器位置在http请求中&#xf…

神经网络 07(正则化)

一、正则化 在设计机器学习算法时不仅要求在训练集上误差小,而且希望在新样本上的泛化能力强。许多机器学习算法都采用相关的策略来减小测试误差,这些策略被统称为正则化。因为神经网络的强大的表示能力经常遇到过拟合,所以需要使用不同形式的…

每天40min,我们一起用70天稳扎稳打学完《JavaEE初阶》——33/70 第三十三天【JavaScript(webapi)】

JavaScript WebAPI WebAPI 背景知识DOM 基本概念获取元素事件初识操作元素输入密码的 显示 和隐藏点击计数器勾选复选框获取/修改 样式 属性开关灯WebAPI 背景知识 DOM 基本概念 获取元素 事件初识

敏捷开发:适应变化的核心能力

​在当今高度变化的时代,软件开发的环境和要求也在不断变化。传统的开发方法往往难以适应这种快速变化,因此,一种新的软件开发方法——敏捷开发逐渐得到了广泛的关注和应用。 本文将介绍敏捷开发的概念、优势、实践经验、敏捷开发工具以及注…

python实现adb辅助点击屏幕工具

#!/usr/bin/env python # -*- coding: utf-8 -*-import re import os import time import subprocess import tkinter as tk from tkinter import messagebox from PIL import Image, ImageTk# 设置ADB路径(根据你的系统和安装路径进行调整) ADB_PATH C…

强化历程7-排序算法(2023.9.12)

此笔记学习图片来自于如下网址 1https://www.west999.com/info/html/chengxusheji/Javajishu/20190217/4612849.html 文章目录 强化历程7-排序算法1 冒泡排序(交换排序)2 选择排序3 直接插入排序4 希尔排序5 归并排序6 快速排序7 堆排序8 计数排序 强化历程7-排序算法 1 冒泡排…

QT for andriod

QT for andriod 开发 apk软件,因为一些特殊的原因,在这里简单的记录一哈自己开发apk的流程和心得。 首先说明我采用的环境有哪些? 1、QT的版本,个人建议5.15.2的版本及以上,我是用的5.15.2。 2、andriod studio 可以…

记录一次Docker与Redis冲突

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 报错以及Bug ✨特色专栏: …

sql 时间函数

1,前提 今天看同事写的sql里面出现了时间类的函数,平时自己也经常用到,每次都要百度,还不如自己整理记录在一起,方便后续使用。 2,sql时间函数 2.1 获取当前时间: selectNOW() as 当前日期时…

Autojs 小游戏实践-神农百草园

概述 最近一直再写刷视频软件脚本,比如手机视频软件太多,每天都需要手动提现羊毛,太累,使用Autojs来帮助我提现,签到,扯远了,因为做刷视频脚本感觉有点无聊,所以试着做小游戏找图脚…

【GO语言基础】变量常量

系列文章目录 【Go语言学习】ide安装与配置 【GO语言基础】前言 【GO语言基础】变量常量 【GO语言基础】数据类型 文章目录 系列文章目录常量和枚举变量声明全局变量声明大小写敏感 总结 常量和枚举 使用const关键字声明常量,并为每个常量提供显式的值。Go语言没有…

IDEA启动时选择项目

IDEA默认情况下,启动时会选择上一次打开的项目继续。如果我们希望每次启动时都需要手动选择项目,可以按照下列顺序修改: 【File】-【Settings】-【Apperance&Behavior】-【System Settings】-【Startup/Shutdown】 取消选中Reopen last…