历史上的今天
返回首页

历史上的今天

今天是:2024年12月20日(星期五)

正在发生

2019年12月20日 | stm8L15x EEPORM学习笔记

2019-12-20 来源:eefocus

之前对各种存储器一直不太清楚,今天总结一下。存储器分为两大类:ram和rom。ram就不讲了,今天主要讨论rom。


ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。


RAM有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。另一种称为动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。


DRAM分为很多种,常见的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,这里介绍其中的一种DDR RAM。


DDR RAM(Date-Rate RAM)也称作DDR SDRAM,这种改进型的RAM和SDRAM是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用得最多的内存,而且它有着成本优势,事实上击败了Intel的另外一种内存标准-Rambus DRAM。在很多高端的显卡上,也配备了高速DDR RAM来提高带宽,这可以大幅度提高3D加速卡的像素渲染能力。


ROM也有很多种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是,PROM是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了,而EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器。另外一种EEPROM是通过电子擦出,价格很高,写入时间很长,写入很慢。


FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。


rom最初不能编程,出厂什么内容就永远什么内容,不灵活。后来出现了prom,可以自己写入一次,要是写错了,只能换一片,自认倒霉。人类文明不断进步,终于出现了可多次擦除写入的EPROM,每次擦除要把芯片拿到紫外线上照一下,想一下你往单片机上下了一个程序之后发现有个地方需要加一句话,为此你要把单片机放紫外灯下照半小时,然后才能再下一次,这么折腾一天也改不了几次。历史的车轮不断前进,伟大的EEPROM出现了,拯救了一大批程序员,终于可以随意的修改rom中的内容了。


EEPROM的全称是“电可擦除可编程只读存储器”,即Electrically Erasable Programmable Read-Only Memory。是相对于紫外擦除的rom来讲的。但是今天已经存在多种EEPROM的变种,变成了一类存储器的统称。


狭义的EEPROM:

这种rom的特点是可以随机访问和修改任何一个字节,可以往每个bit中写入0或者1。这是最传统的一种EEPROM,掉电后数据不丢失,可以保存100年,可以擦写100w次。具有较高的可靠性,但是电路复杂/成本也高。因此目前的EEPROM都是几十千字节到几百千字节的,绝少有超过512K的。


flash:

flash属于广义的EEPROM,因为它也是电擦除的rom。但是为了区别于一般的按字节为单位的擦写的EEPROM,我们都叫它flash。


flash做的改进就是擦除时不再以字节为单位,而是以块为单位,一次简化了电路,数据密度更高,降低了成本。上M的rom一般都是flash。


flash分为nor flash和nand flash。nor flash数据线和地址线分开,可以实现ram一样的随机寻址功能,可以读取任何一个字节。但是擦除仍要按块来擦。


nand flash同样是按块擦除,但是数据线和地址线复用,不能利用地址线随机寻址。读取只能按页来读取。(nandflash按块来擦除,按页来读,norflash没有页)


由于nandflash引脚上复用,因此读取速度比nor flash慢一点,但是擦除和写入速度比nor flash快很多。nand flash内部电路更简单,因此数据密度大,体积小,成本也低。因此大容量的flash都是nand型的。小容量的2~12M的flash多是nor型的。


使用寿命上,nand flash的擦除次数是nor的数倍。而且nand flash可以标记坏块,从而使软件跳过坏块。nor flash 一旦损坏便无法再用。


因为nor flash可以进行字节寻址,所以程序可以在nor flash中运行。嵌入式系统多用一个小容量的nor flash存储引导代码,用一个大容量的nand flash存放文件系统和内核。


void FLASH_Unlock(FLASH_MemType_TypeDef FLASH_MemType)

{

  /* Check parameter */

  assert_param(IS_FLASH_MEMORY_TYPE(FLASH_MemType));

  

  /* Unlock program memory */

  if(FLASH_MemType == FLASH_MemType_Program)

  {

    FLASH->PUKR = FLASH_RASS_KEY1;

    FLASH->PUKR = FLASH_RASS_KEY2;

  }

image.png?imageView2/2/w/550

image.png?imageView2/2/w/550

位7:0 DUK 7:0:数据EEPROM写解锁键   这个字节是由软件(所有模式)编写的。它在读取时返回0x00。


image.png?imageView2/2/w/550

Flash register map and reset values

Flash寄存器映射和重置值

FlagStatus FLASH_GetFlagStatus(FLASH_FLAG_TypeDef FLASH_FLAG)

{

  FlagStatus status = RESET;

  assert_param(IS_FLASH_FLAGS(FLASH_FLAG));

  

  /* Check the status of the specified flash flag*/

  if((FLASH->IAPSR  & (uint8_t)FLASH_FLAG) != (uint8_t)RESET)

  {

    status = SET; /* Flash_FLAG is set*/

  }

  else

  {

    status = RESET; /* Flash_FLAG is reset*/

  }

  

  /* Return the Flash_FLAG status*/

  return status;

}

推荐阅读

史海拾趣

科达嘉CODACA公司的发展小趣事

科达嘉电子创建于2001年,起初是一家专注于功率电感、共模电感的研发、生产与销售的初创企业。在电子行业激烈的市场竞争中,科达嘉凭借对电感技术的深入研究和不断创新,逐渐赢得了市场的认可。公司团队经过近二十年的努力,从一个小型创业公司发展成为拥有多家子公司的集团企业,员工总数超过900人,厂房总面积达到30000平方米。

Golledge Electronics公司的发展小趣事

科达嘉电子不仅立足于深圳,还积极布局全球市场。公司通过参加国际电子展会、与国际知名企业合作等方式,不断拓展海外市场。同时,科达嘉还根据客户需求,提供个性化的电感解决方案,赢得了众多客户的信任和合作。公司的主要产品,如一体成型电感、大电流电感等,已广泛应用于工业控制、汽车电子等多个领域。

AirBorn公司的发展小趣事

随着电子行业的竞争日益激烈,AirBorn面临着来自同行的压力和挑战。为了保持领先地位,AirBorn加强了与客户的沟通与合作,深入了解市场需求和变化趋势。同时,公司还加大了对新技术和新材料的研发投入,不断推出具有创新性和竞争力的新产品。这些举措使得AirBorn在激烈的市场竞争中保持了稳健的发展态势。

ET Enterprises Ltd公司的发展小趣事

近年来,ET Enterprises Ltd公司经历了一系列的收购和战略合作。这些举措不仅进一步增强了公司的实力和市场地位,也为公司的未来发展注入了新的活力。例如,公司成为得克萨斯州Ludlum Measurements Inc.的子公司后,受益于美国光电倍增管生产商ADIT的生产设施和ET Enterprises的开发设施的综合资源,为公司的持续发展提供了有力支持。

以上五个故事概述了ET Enterprises Ltd公司的发展历程和关键阶段,展示了公司在电子行业中不断崛起和持续发展的过程。

Allen Avionics Inc公司的发展小趣事

ET Enterprises Ltd公司的历史可以追溯到1930年代,当时它作为EMI公司的一部分,开始涉足光检测技术领域。在这个早期阶段,公司致力于研究光信号的特性及其检测方法,为后续的光电倍增管技术奠定基础。

Fascomp公司的发展小趣事

随着公司规模的扩大,Fascomp开始关注更广阔的市场。公司针对智能手机市场推出了一款低功耗、高性能的处理器,迅速在市场上获得了成功。同时,公司还不断推出新的产品线,如平板电脑专用芯片、物联网设备等,以满足不同客户的需求。这些创新举措使Fascomp在激烈的市场竞争中脱颖而出。

问答坊 | AI 解惑

中断执行完和什么也没做似的,郁闷

我用的是51系列的单片机,做的一个在中断中执行键盘扫描的程序,用的LCD1602显示,但是当中断返回后,显示器上已经输入的东西会不见, 用的是外部中断,跳沿触发方式 请帮我看一下是什么问题啊 汇编语言的,        MOV R0, ...…

查看全部问答>

给安防人的动力。

3G助力 600亿元的家庭监控市场等待挖掘 早在2004年,中国视频监控行业应用市场总产值就已经达到151亿元人民币,相比2003年的123亿元人民币增长了近23%,并以每年20%左右的速度不断增长。分析机构调研显示,随着生活节奏的不断加快,家庭用户对安全 ...…

查看全部问答>

[转载].SSRAM、SDRAM和Flash简要介绍.[Memory]

转CalmBright兄的博文:http://www.cnblogs.com/CalmBright/archive/2009/07/19/1526569.html   Abstract 在用NIos II 调试sdram遇到了其容量计算的问题,现介绍如下 Introduction 问题1:什么是DRAM、SRAM、SDRAM? 答: ...…

查看全部问答>

各位前辈指点下,怎么学习嵌入式开发!

http://www.jslc.org.cn/list.php?act1=do&tid=48&ttid=102 这上面有嵌入式培训的网址: 兄弟我像学习嵌入式开发,不知道这个培训班的内容怎么样啊?各位前辈给点意见啊,谢谢! 下面是一些课程介绍: 课程体系 基于ARM的嵌入式研发 ...…

查看全部问答>

求助:我有一定的c#语言基础,我现在要开发一个GIS/GPS系统,请高手给点入门思路!

我有一定的c#语言基础,我现在要开发一个GIS系统,请高手给点入门思路! 我现在有好多问题不懂, 比如在开发GPS/GIS系统之前是不是要会制作和编辑地图? 如何将现有的电子地图应用到开发中,比如在现有地图上经度和纬度等 也许高手会觉得我问的 ...…

查看全部问答>

请教WinCE系统启动问题

我用的是一块2410的开发板,根据资料说明定制的系统下载到扳子上,系统能正确启动,但是当我使用自定义的系统编译时会提示ROM与RAM的地址冲突,提示错误为: Copy Section Offset:     8cef6f84 FileSys 4K Chunks/Mbyte: 12 ...…

查看全部问答>

什么是Arduino? 送给和我一样不明白的人

什么是Arduino?Arduino是一个比你的台式电脑更能够用来感应和控制现实物理世界的一套工具。 它由一个基于简易单片机并且开放源码的计算机平台,和一套为Arduino板编写程序 的开发环境组成。 Arduino可以用来开发交互产品,比如它可以读取大量 ...…

查看全部问答>

ST-LINKII可以支持MDK了

ST-LINK-II 可以支持MDK使用了!MDK3.22中文版已经在realview网站上发布了,里面已经集成了支持ST-LINKII的驱动,下载安装后就可以配合ST-LINKII使用。下载地址:http://www.realview.com.cn/down-list.asp?id=487…

查看全部问答>

2812的工作频率

2812最高工作频率是150MHz,如果我只让它工作在15MHz,会不会有什么问题? 此外,外接晶体作为时钟源时,其频率和两个引脚的电容大小有什么关系吗?我看到开发板上用的是30MHz晶体和24pF电容。如果更改晶体频率,电容值也要作相应变动吗? 多谢!…

查看全部问答>

用手机DIY车库遥控器

几乎所有今天制造的设备是使用遥控器。这使我们的生活更容易,因为现在的趋势是使一切东西简单化,用户没有那么多时间和精力去研究较为复杂的设备。通过这一改造,现在可以用电话遥控家里的车库门,而不像以前一样只有一个遥控器装置,而且也不用再 ...…

查看全部问答>