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

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

3天内不再提示

六段段存储介绍

嵌入式应用开发 来源:嵌入式应用开发 作者:嵌入式应用开发 2022-09-28 15:39 次阅读

pYYBAGMz-c2Adf-eAAJmV3PSuB8037.png

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

审核编辑:汤梓红

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

    关注

    12

    文章

    3863

    浏览量

    84704
收藏 人收藏

    评论

    相关推荐

    STM8L052R8 RTC运行一段段时间后出现不工作的情况是怎么回事?

    目前用STM8L052R8T6做个产品,用到RTC部分,现在的爱普生FC-135的32.768KHZ晶振,CL=9Pf,两个负载电容为12pf。 程序设置为采用外部晶振LSE。产品到现场运行一段段
    发表于 04-02 08:26

    STM32初运行如何确定为.BSS分配多大的空间及其空间首地址信息?

    我们知道,程序运行须具备 .text .data .bss等,其中.bss内容并不会存储在 flash,而是在上电后系统运行动态分
    发表于 03-25 07:40

    XC2234l-20F如何使用16位tasking编译器定义一个

    如何使用16位tasking编译器定义一个(section指定地址,用于存储常量),使用的芯片是XC2234l-20F。
    发表于 02-20 07:05

    如何把多个C文件编译后链接的指定的上?

    通过 #pragma section 可以把函数或者数据连接到指定的,但如果有多个C文件要链接到指定的怎么办? 不打算在每个文件中 添加#pragma section ,有其他方法实现该功能吗?
    发表于 02-04 06:55

    求教下source insight 的使用问题,关于#if #endif中的代码变暗的

    source insight 4.0在实际使用时,#if 0#endif会使中间的代码变暗,但假如我的#if 0是通过宏定义的,如图的IOT_PTINTF_TEST为0,代码就不会变暗了,这个很困扰,导致阅读代码时会增加困难。请问大佬们,这个要怎么实现变暗
    发表于 12-08 11:06

    请问如何使用EVAL-AD7903SDZ及其配套软件存储连续时间内的信号?

    如何使用 EVAL-AD7903SDZ 及其配套软件存储连续时间内的信号?现在只能存下视窗内的数据。或者有没有别的方法能够读取并储存 EVAL-AD7903SDZ 板上的数据?
    发表于 12-07 07:28

    时间内有100个离散的加速度,如何通过C语言求出这一时间里的位移?

    在一时间内 有100个离散的加速度如何通过C语言求出这一时间里的位移?
    发表于 11-07 08:17

    freertos中的临界是如何实现的?

    怎么实现对应临界的保护
    发表于 10-20 07:25

    VK1072省电液晶LCD码驱动IC,1621更少脚位小体积封装 FAE技术支持

    是一个点阵式存储映射的LCD驱动器,可支持最大72(18SEGx4COM)的LCD屏,也支持2COM和3COM的LCD屏。单片机可通过三条通信线配置显示参数和发送显示数据,也可通过指令进入省电模式
    发表于 10-11 10:52

    ARM分散加载介绍

    分散加载是ARM链接器提供的一种机制,它允许您将可执行映像分区为可在内存中独立定位的区域。 在一个简单的嵌入式计算机系统中,存储器分为只读存储器和随机存储器。 链接器产生的镜像被分为“只读”
    发表于 08-24 08:23

    Nano110SE3BN码LCD驱动时闪烁问题如何解决?

    我最近用了这块芯片驱动码式的LCD 我想要的是某些单独闪烁,但我一用LCD_EnableBlink() 就所有显示的都闪烁了,我怎么让某些闪烁某些正常显示呢?难道需要我手动的去
    发表于 06-28 07:08

    是否有可能将所有没有属性的函数存储到闪存中而不是指令ram中?

    我使用的是 3.0.4 nonos-sdk,由于添加了库,我的指令 ram 空间不足。 是否有可能将所有没有属性的函数存储到闪存中而不是指令 ram 中?还是我必须用 ICACHE_FLASH_ATTR 定义每个函数?
    发表于 06-06 06:23

    如何使用ESP多路复用14个

    我正在移植一个草图(我需要将其转换为一个库),用于将 14 显示器(个字符,但可以扩展)从 Arduino 驱动到 ESP-01。 我试图找出驱动多路复用的最佳方法。我把硬件都整理
    发表于 05-24 07:05

    斩波电路把电压调成一不连续的直流电有什么作用呢?

    斩波电路把电压调成一不连续的直流电有什么作用呢?
    发表于 05-11 17:13

    斩波电路把电压调成一不连续的直流电有什么作用呢?

    斩波电路把电压调成一不连续的直流电有什么作用呢?
    发表于 05-11 17:12