单片机内存及内存映射(本地地址,逻辑地址,全局地址)

1.单片机内存

1.1 ROM

ROM在系统停止供电的时候仍然可以保持数据;
ROM又分为,PROM(可编程的ROM),EPROM(可擦除可编程ROM)。
两者区别是,PROM是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了,而EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器。另外一种EEPROM是通过电子擦出,价格很高,写入时间很长,写入很慢。

1.2 RAM

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

工作原理:
内存是用来存放当前正在使用的(即执行中)的数据和程序,动态内存(DRAM)中所谓的"动态",指的是当我们将数据写入DRAM后,经过一段时间,数据会丢失,因此需要一个额外设电路进行内存刷新操作。

具体的工作过程:一个DRAM的存储单元存储的是0还是1取决于电容是否有电荷,有电荷代表1,无电荷代表0。但时间一长,代表1的电容会放电,代表0的电容会吸收电荷,这就是数据丢失的原因;刷新操作定期对电容进行检查,若电量大于满电量的1/2,则认为其代表1,并把电容充满电;若电量小于1/2,则认为其代表0,并把电容放电,藉此来保持数据的连续性。

1.3 flash

FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。现在Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,它用作存储Bootloader以及操作系统或者程序代码,或者直接当硬盘使用(U盘)
NOR Flash,NOR(或非)即地址、数据总线分开,读写单位为字节;
NADN Flash,NAND(与非)即地址、数据总线共用,读写单位为页;

NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。

NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还加上了一块小的NOR Flash来运行启动代码。

2.内存映射

**加粗样式**
16位单片机,最大寻址能力即2的16次方,65535/1024=64k,当flash内存大于64k时,为了地址索引的方便,即有了分页窗口的说法。

2.1 本地地址

本地地址,就是0到64k,在寻址范围内的地址,16k一页,共四页
0x0000-0x3FFF(包含寄存器空间,D-flash,RAM,EEPROM)
0x4000-0x7FFF
0x8000-0xBFFF(分页窗口)
0xC000-0xFFFF

2.2 逻辑地址

逻辑地址,就是指分页窗口的地址,可以索引到超过寻址范围的地址。
拿MC9S12G128来讲,128k,一页16k,共8页,地址命名就是分页窗口号加上分页窗口地址,飞思卡尔HS12系列最大flash是256k即16页,刚好是0-F,对于MC9S12G128来说,分页窗口号是从F开始递减的,也就是8-F(F->8好理解一些)具体命名如下也就是地址如下:
08 8000 - 08 BFFF
09 8000 - 09 BFFF
0A 8000 - 0A BFFF
0B 8000 - 0B BFFF
0C 8000 - 0C BFFF
0D 8000 - 0D BFFF(对应4000-7FFF)
0E 8000 - 0E BFFF
0F 8000 - 0F BFFF(对应C000-FFFF)

2.3全局地址

全局地址,就是可以将flash线性索引的一串地址规则,规定也是由0x3FFFF开始往上数,具体命名如下:
0x20000-0x23FFF
0x24000-0x27FFF
0x28000-0x2BFFF
0x2C000-0x2FFFF
0x30000-0x33FFF
0x34000-0x37FFF(对应4000-7FFF)
0x38000-0x3BFFF
0x3C000-0x3FFFF(对应C000-FFFF)

  • 8
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值