0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一些单片机常见的存储知识

strongerHuang 来源:typedef 作者:typedef 2022-08-10 08:59 次阅读

本文分享一些单片机常见的存储相关的基础知识。

1. 两种存储器

FLASH

Flash Memory(闪速存储器)是一种安全、快速的存储体,具有体积小、容量大、成本低、掉电不丢失等一系列优点,已成为嵌入式系统中数据和程序最主要的载体。

Flash是区块结构,即在物理结构上分成若干个物理块,区块之间相互独立。

Flash写操作必须先擦后写,Flash只能将数据位由1写成0,不能从0写成1,所以在对存储器写之前必须先执行擦除操作,擦操作的最小单位是一个区块,而不是一个字节。

RAM

RAM(Random Access Memory)又称随机存取存储器,也叫内存,是与CPU直接交换数据的内部存储器。速度很快,断电RAM不保留数据。

RAM主要用来存储程序中用到的全局变量、堆栈等。

2. 三种存储区

map中三种内存

编译完工程会生成一个.map 的文件,该文件的最后说明了ROM和RAM占用空间大小,如下图所示:

252d55bc-1844-11ed-ba43-dac502259ad0.png

其中ROM就是程序烧录到FLASH中的大小,RW就是占用RAM大小.

RO

RO (Read Only ): 只读区域, 需要长久保存,烧录到Flash中,下文的text段和constdata段属于此属性区

RW

RW (Read Write): 可读可写,通常为全局变量和静态变量,下文中的.data段和.bss属于RW区

ZI

ZI (Zero Init): 没有进行初始化或者初始化为0,系统上电时会主动把此区域数据进行0初始化,下文的.bss段就是. 另外, 可翻看Keil工具编译的map文件,Heap和Stack区也进行了Zero的属性标注, 因此,Heap和Stack也可认为是ZI区域

ROM与RAM数据比较

数据段 说明 RAM ROM
.bss -- true false
.data true true
RO-data 常量 false true
.text -- false true
stack 局部变量等 true false
heap malloc true false

3. 六段段

253ea222-1844-11ed-ba43-dac502259ad0.png

程序运行时的5段

.text

.text代码段: 用来放程序代码(code), 在代码编译完成后, 长久只读存放于此,属于图中的代码段

.constdata

.constdata只读常量数据段: const限定的数据类型存放在此,属于图中的常量存储区

.data

用来存放初始化不为0的全局变量(global)和静态变量(static),它是可读可写的,属于图中的静态存储区

.bss

.bss的英文是Block Started by Symbol,翻译过来就是由符号开始的块。此部分类似于数据部分,只是它不占用可执行文件中的空间。

bss通常是指用来存放程序中没有初始化或初始化为0的全局变量和静态变量的一块内存区域,可读可写,属于图中的静态存储区,如果变量未初始化,系统会将变量初始化为0

heap

heap堆区: 通常我们说的动态内存分配,使用malloc/free进行申请和释放,属于动态存储区.

stack

stack栈区: 在代码执行时用来保存函数的局部变量和参数,属于动态存储区.

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6041

    文章

    44615

    浏览量

    637353
  • FlaSh
    +关注

    关注

    10

    文章

    1641

    浏览量

    148392
  • 存储
    +关注

    关注

    13

    文章

    4343

    浏览量

    86042

原文标题:单片机存储相关知识

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    单片机Debug工具性能对比 单片机调试常用命令

    。以下是对单片机调试工具性能的简要对比以及一些常用的调试命令。 单片机Debug工具性能对比 Keil uVision 性能 :Keil uVision 是款功能强大的集成开发环境(
    的头像 发表于 12-19 09:56 414次阅读

    一些常见的动态电路

    无论是模电还是数电,理论知识相对来说还是比较枯燥,各种电路原理理解清楚不算容易,换种生动形象的方式或许会增加一些趣味性,也更容易理解这些知识。下面整理了
    的头像 发表于 11-16 09:26 450次阅读
    <b class='flag-5'>一些</b><b class='flag-5'>常见</b>的动态电路

    分享一些常见的电路

    理解模电和数电的电路原理对于初学者来说可能比较困难,但通过一些生动的教学方法和资源,可以有效地提高学习兴趣和理解能力。 下面整理了一些常见的电路,以动态图形的方式展示。 整流电路 单相桥式整流
    的头像 发表于 11-13 09:28 392次阅读
    分享<b class='flag-5'>一些</b><b class='flag-5'>常见</b>的电路

    想入行单片机开发的学生们的忠告

    对于想入行单片机开发的学生们,以下是一些建议和忠告:
    的头像 发表于 10-17 09:45 381次阅读
    想入行<b class='flag-5'>单片机</b>开发的学生们的忠告

    单片机hex文件反编译成C语言的过程

    使用C语言编写,然后编译成机器码并烧录到单片机存储器中。 Hex文件是种用于存储单片机程序的文件格式,它包含了程序的机器码和
    的头像 发表于 09-02 10:49 3709次阅读

    单片机烧录程序时为什么直在检测

    单片机烧录程序时,如果软件直在显示“正在检测单片机”,可能是由多种原因导致的。以下是一些常见的原因及其解决方法: 1. 连接问题 USB转
    的头像 发表于 09-02 09:57 5368次阅读

    单片机烧录程序的线比单片机上的少还能烧录吗

    单片机烧录原理 单片机烧录是指将编写好的程序代码通过定的方式传输到单片机存储器中,使其能够按照程序的指令运行。这个过程通常需要使用烧录器
    的头像 发表于 09-02 09:54 591次阅读

    文读懂什么单片机:组成结构与应用

    欢迎来到单片机的世界,这是种微小(但功能强大)的设备,改变了嵌入式系统的面貌。在本文中,您将了解单片机一些基本知识
    的头像 发表于 08-09 11:49 1774次阅读
    <b class='flag-5'>一</b>文读懂什么<b class='flag-5'>单片机</b>:组成结构与应用

    个暑假如何学习单片机

    个暑假是学习和掌握单片机基础知识的良好时机。以下是个关于如何在暑假期间学习单片机的建议计划
    的头像 发表于 07-03 09:19 559次阅读
    <b class='flag-5'>一</b>个暑假如何学习<b class='flag-5'>单片机</b>

    单片机学习顺序问题

    朋友们,我最近要做个基于单片机GD32系列的项目. 打算先用STM32系列的单片机先试试手. 但目前也就学了模电数电的知识.了解了
    发表于 05-18 20:36

    STM32单片机有哪几种常见的开发环境?

    STM32单片机款广泛应用于嵌入式系统开发的单片机,针对其开发,有以下几种常见的方式:STM32单片机有哪几种
    的头像 发表于 05-18 08:04 3228次阅读
    STM32<b class='flag-5'>单片机</b>有哪几种<b class='flag-5'>常见</b>的开发环境?

    大学生学单片机不能错过的比赛

    单片机比赛是电子和计算机领域的项重要赛事,旨在提升参赛者的专业技能、团队协作能力和创新思维。以下是一些常见单片机比赛
    的头像 发表于 05-15 09:50 1906次阅读
    大学生学<b class='flag-5'>单片机</b>不能错过的比赛

    数字电路仿真软件单片机怎么用

    、调试和测试。 首先,使用单片机仿真软件前,我们需要了解一些基本概念和背景知识单片机种嵌入式系统的核心部件,它集成了微处理器、
    的头像 发表于 04-21 10:28 1124次阅读

    新手学习单片机常见的六大误区!

    最近看到台私信要资料的同学比较多,想必大家都是对单片机有着浓厚的学习兴趣,但是很多新手开始入门单片机的时候都会遇到一些学习的误区,今天就来整理下大家可能会遇到的六大误区。
    的头像 发表于 03-28 08:03 914次阅读
    新手学习<b class='flag-5'>单片机</b>最<b class='flag-5'>常见</b>的六大误区!

    单片机的最小系统由什么组成 单片机的最小系统包括哪些

    Unit,CPU)、存储器、输入输出接口电路等核心功能,常见单片机有以8051为代表的8位单片机、PIC系列单片机和AVR系列
    的头像 发表于 02-02 11:27 1.1w次阅读