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)

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

  1. 一条进程的栈区、堆区、数据区和代码区在内存中的映射

    一条进程的栈区.堆区.数据区和代码区在内存中的映射     1>栈区:主要用来存放局部变量, 传递参数, 存放函数的返回地址..esp 始终指向栈顶, 栈中的数据越多, esp的值越小.    ...

  2. [二]Java虚拟机 jvm内存结构 运行时数据内存 class文件与jvm内存结构的映射 jvm数据类型 虚拟机栈 方法区 堆 含义...

    前言简介 class文件是源代码经过编译后的一种平台中立的格式 里面包含了虚拟机运行所需要的所有信息,相当于 JVM的机器语言 JVM全称是Java Virtual Machine  ,既然是虚拟机, ...

  3. mysql数据库映射到内存_基于共享内存的数据库映射

    基于共享内存的数据库映射 概述 随着各类行业软件对性能追求越来越高,因此对数据库处理的速度提出了新的挑战.然而大部分复杂的业务处理往往依赖体量较大的关系数据(如:Oracle,Mysql,Postgr ...

  4. 【Linux 内核 内存管理】优化内存屏障 ② ( 内存屏障 | 编译器屏障 | 处理器内存屏障 | 内存映射 I/O 写屏障 )

    文章目录 一.内存屏障 二.编译器屏障 三.处理器内存屏障 一.内存屏障 内存屏障 , 又称为 " 屏障指令 " , 用于保证 " 编译器 " 或 " ...

  5. linux3.10高端内存,Linux内存管理之高端内存映射

    二:永久内存映射 永久内存映射在内核的接口为:kmap()/kunmap().在详细分析代码之前,有必须弄懂几个全局变量的含义: PKMAP_BASE:永久映射空间的起始地址.永久映射空间为4M.所以 ...

  6. linux内存管理-反向映射

    反向映射的需求 正向映射是通过虚拟地址根据页表找到物理内存,反向映射就是通过物理地址找到哪些虚拟地址使用它. 什么时候需要进行反向映射呢?在页面回收的时候,在还没有修改完所有引用该页帧的页表项之前是不 ...

  7. linux内存的反向映射

    内存的反向映射 前言 文件页的反向映射 匿名页的反向映射 当VMA和VA首次相遇 在fork的时候,匿名映射的VMA经历了什么 构建三层大厦 page frame是如何加入"大厦" ...

  8. 深入理解内存(3):内存交换技术,虚拟内存

    深入理解内存(3):内存交换技术,虚拟内存 2013-01-15 21:14 1560人阅读 评论(0) 收藏 举报 分类: 3) C++(59) 1)IT Related(21) 版权声明:本文为博 ...

  9. Linux内存管理和分析vmalloc使用的地址范围

    From: http://www.cnblogs.com/dubingsky/archive/2010/04/20/1716158.html Vmalloc可以获得的地址在VMALLOC_START到 ...

  10. java怎么释放分配的内存,linux 内存的分配和释放,linux分配释放

    linux 内存的分配和释放,linux分配释放 了解内存分配机制(共享映射与请求分页) 通过 pmap 命令,可以获取用户进程逻辑地址空间中映射的内存信息: pmap -x $pid 其中 -x 表 ...

最新文章

  1. 【设计模式】装饰者模式
  2. 【转】为什么要写技术博
  3. hihocoder1479 三等分
  4. ORACLE 11g R2 RAC群集堆栈的关闭过程分析
  5. MySQL存储树形数据优化技笔记
  6. toarray方法_机器学习中类别变量的编码方法总结
  7. 数字签名,数字证书,证书链原理
  8. 【开发者成长】5 分钟搞定 Linux 正则表达式
  9. matlab安装无效距离过远,求助matlab的远程序
  10. Java文档阅读笔记-JPA中getOne()和findById的区别
  11. error: Pulling is not possible because you have unmerged files
  12. 关于类成员函数中访问同类对象的私有成员
  13. Javascript--位运算符
  14. 面试:谈谈你对jQuery的理解
  15. 三种基本排序方法-冒泡排序,选择排序,插入排序
  16. 【第十届“泰迪杯”数据挖掘挑战赛】C题:疫情背景下的周边游需求图谱分析 赛后总结、46页论文及代码
  17. 光机电一体化控制实训装置QY-JDYT06
  18. 2013上半年 系统集成项目管理工程师 下午试卷
  19. 5G大数据时代到来是全面多领域的变革
  20. 一个有趣的时间段重叠问题

热门文章

  1. xshell连不上阿里云服务器Connection closed by foreign host.解决办法
  2. 计算机相关知识抢答题题库,计算机基础知识抢答赛题库
  3. 简单Web服务器程序设计与实现
  4. 使用 Wowza 录制直播流 (HTTPLiveStreamRecord)
  5. 当前日期或 *(星号)显示在 think-cell 标签中
  6. 【游戏】[C++] 贪吃蛇控制台版
  7. OAuth认证实现机制及单点登录原理
  8. alize blue_泽野弘之 | 明明可以靠才华,却非要用脸滚键盘的神曲缔造者
  9. 十八:Java8新特性
  10. 旋转式光电编码器的设计动向