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栈区: 在代码执行时用来保存函数的局部变量和参数,属于动态存储区.

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

    关注

    6025

    文章

    44450

    浏览量

    630699
  • FlaSh
    +关注

    关注

    10

    文章

    1608

    浏览量

    147560
  • 存储
    +关注

    关注

    13

    文章

    4168

    浏览量

    85475

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

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

收藏 人收藏

    评论

    相关推荐

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

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

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

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

    个暑假如何学习单片机

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

    单片机学习顺序问题

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

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

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

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

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

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

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

    单片机编程实例介绍

    是指使用特定的编程语言编写控制单片机工作的程序。 在本文中,将为您提供一些常见单片机编程实例,包括基础应用、传感器应用、通信应用等方面的案例。
    的头像 发表于 01-16 09:37 2492次阅读

    PMS152单片机的编程和解密

    PMS152单片机常见的微控制器(MCU),广泛应用于各种电子产品中。如果您需要进行PMS152单片机的编程和解密,以及产品开发和PCB设计,以下是
    的头像 发表于 01-06 14:18 528次阅读

    知识 | 如何选择合适的单片机语音芯片?

    随着科技的飞速发展,单片机语音芯片已经广泛应用于各个领域。然而,在众多的芯片产品中,如何选择合适的单片机语音芯片成为了个重要的问题。本文将为您提供一些建议,助您找到最适合您需求的
    的头像 发表于 12-07 08:52 561次阅读
    芯<b class='flag-5'>知识</b> | 如何选择合适的<b class='flag-5'>单片机</b>语音芯片?

    单片机模电数电基础知识

    介绍这些基础知识、模拟电路 模拟电路是单片机基础知识中的重要环,它主要研究连续变化的物理量(如电压、电流等)在时间和空间上的规律。
    的头像 发表于 12-01 14:53 1395次阅读

    stm32和51单片机的区别

    架构,STM32单片机具有更高的运行速度和更好的性能,可以运行更复杂的任务。而51单片机的性能较低,只适合一些简单的任务。 存储 STM32单片机
    发表于 11-20 13:18

    51单片机知识

    电子发烧友网站提供《51单片机知识点.pdf》资料免费下载
    发表于 11-01 17:32 2次下载

    单片机I/O驱动与隔离常见设计方法

    单片机I/O驱动与隔离常见设计方法
    的头像 发表于 10-25 17:36 2125次阅读
    <b class='flag-5'>单片机</b>I/O驱动与隔离<b class='flag-5'>常见</b>设计方法

    单片机学习笔记

    单片机电源电路的设计需要遵循一些基本原则,以确保单片机正常、稳定地运行。
    发表于 10-24 15:08 842次阅读
    <b class='flag-5'>单片机</b>学习笔记