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

article/2025/9/23 17:43:52

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)


http://chatgpt.dhexx.cn/article/pCVTBfQw.shtml

相关文章

Springboot的Service层测试

当需要对service层某个方法进行单独调试,但使用postman或者swagger很麻烦时,可以采用单元测试。 package com.zh.sugarppig.service.frock;import .../*** author SugarPPig* date 2020-08-28 11:00* decription 工装审批接口*/ public interface Frock…

mybatis Dao层 Mapper层 controller层 service层 model层 entity层 简介

简介 SSM是spingspringMVCmybatis集成的框架。 MVC即model view controller。 model层entity层。存放我们的实体类,与数据库中的属性值基本保持一致。 service层。存放业务逻辑处理,也是一些关于数据库处理的操作,但不是直接和数据库打交…

springboot entity层 mapper层 service层 controller层

目录 一、entity层 (model层 ,domain层,实体层)二、mapper层(dao层,对数据库进行数据持久化操作)三、service层 (业务service层)四、controller层 (web 层&am…

Service层和Dao层的关系

一、Service层 Service层就是业务层,就是用来处理业务逻辑的。 什么是业务呢?用户要进行的一个操作,比如银行转账就是一个业务(软件所提供的一个功能都叫业务)。这个业务从数据库方面的操作来说就是两个用户的金额加减…

java单元测试service时候_spring service层单元测试

service层测试较简单,目前大多数测试主要是针对public方法进行的。依据测试方法划分,可以分为两种:基于mock的隔离测试和基于dbunit的普通测试。 mock隔离测试 配置pom.xml junit junit 4.12 org.mockito mockito-all 1.10.19 测试原理 隔离测…

MyBatisPlus Service层的CRUD

会当凌绝顶,一览众山小 | Author:TTODS MyBatisPlus框架系列文章目录: Springboot整合MybatisPlus MyBatisPlus Mapper层的CRUD MyBatisPlus Service层的CRUD(当前) MyBatisPlus提供的分页功能 MyBatisPlus之字段填充 MyBatisPlus之逻辑删除 MyBa…

Service层控制事务

1.Service业务逻辑层: 1.业务概述: 代表用户完成的一个业务功能,可以由一个或多个DAO的调用组成。(软件所提供的一个功能都叫业务) 2.Service开发流程 2.事务: 在JDBC中,在Service层实现事务需要以下几个步骤&#xf…

SpringBoot项目中的controller层、dao层、server层的区别以及对应的功能

(1)各层简介 Dao层(mapper层) service层(业务层) controller层(控制层) Dao层 即数据持久层,对数据做持久化操作。也被称为mapper层。声明为接口。 dao层的作用为访问数据…

service层的作用是什么?是否可以省略

一个基本的java项目分成Controller层,service层,mapper层等,controller是控制器层,mapper是数据访问层,与数据库相关,进行对数据库的增删改查等操作,service层负责整合mapper层供外部调用,但因为先阶段所涉及的业务量较小,小小的业务涉及这么多层总觉得有些麻烦,于是…

DAO层和Service层的究极理解--这波我在大气层

注重版权,转载请注明原作者和原文链接 作者:码农BookSea 原文链接:https://blog.csdn.net/bookssea/article/details/107488749 先看后赞,养成习惯。 点赞收藏,人生辉煌。 说实话,学了挺久的MVC架构了&…

将网页保存为图片--修改

这里以Chrome浏览器为例 (谷歌浏览器) 打开需要保存为图片的网页 然后按F12,接着按CtrlShiftP 在红框内输入full 点击下面的“Capture full size screenshot”就可以保存整个网页为图片了 ** 发现不能全部保存网页** 解决方法如下 1.打…

网页保存为PDF遇到的问题(网页打印)

在浏览CSDN上某些干货满满的文章时,我们经常会想将其下载至本地然后反复学习,这时便可以通过浏览器自带的打印功能进行网页保存,但是往往在保存时得不到想要的效果。 问题描述: 本来想以PDF格式将自己的博文保存至本地&#xff…

使用谷歌Chrome浏览器将网页保存为html格式

现版本谷歌Chrome浏览器再也没有"Sava Page as MHTML"一说,将网页保存为MHT、MHTML、HTML格式有俩种途径: 1、下载Save As MHT插件,压缩完成之后在文件中找到后缀名.crx用谷歌浏览打开,然后逐个添加MHT、MHTML 2、鼠标…

牛逼!40行Python代码一键把html网页保存为pdf,太方便了!

公众号 “菜鸟学Python”, 设为 “星标” 第451篇原创,和30w一起学Python! 最近临近开学了,大家都在忙着准备各种学习的资料,准备在新的学期好好学习,充实自己。小编身边的同学也是如此,最近,小…

怎么把网页保存成pdf格式-最简单操作

网页怎么保存成pdf格式,会有很多人下载插件,其实不需要那么复杂。只需要简单的两步就可以了。 第一步:打开网页后,鼠标点击右键按打印 第二步:在目标打印机框中更改成另存为pdf模式,点击保存就可以了&…

网页保存为pdf神器(可自定义编辑)—Print Edit WE

1 如何保存一个网页为pdf文件 对于一个网页,如果想保存为一个pdf或者打印,可以直接使用CTRLP即可。但是这样对应的问题就是,网页时全部内容都会被保存进来,包括一些无关的广告或者评论图片等等。例如: 这样就不可避免…

如何查看网页保存的密码

查看网页保存密码 第一种方式,是在浏览器设置查看登陆网页保存的密码,但是不同浏览器操作不同,再次介绍一种通用使用所有网站小白也能操作的方式:修改代码 第一种: 第二种: 再次以简书为例,所有保存密码的都可以适用 首先,要点击填写的账号,会自动弹出提示你点击填充账号密…

Chrome 谷歌浏览器将整个网页保存为图片

两步解决Chrome谷歌浏览器如何将整个网页保存为图片,再也不用慢慢截取一张张图片拼接啦~ 先在需要保存为图片的页面按 F12 打开开发者工具再按 ctrlshiftp 输入full 搜索选择Capture full size screenshot

如何将网页保存成mhtml格式

如何将网页保存成mhtml格式 网页归档(英语:MIME HTML或MIME Encapsulation of Aggregate HTML Documents,又称单一档案网页或网页封 存档案)为以多用途互联网邮件扩展格式,将一个多附件网页(如包含大量图片…