查看: 1792|回复: 1

[其他] 目标文件大小与运行内存有啥关系?

[复制链接]
  • TA的每日心情

    2017-1-22 11:51
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    6

    主题

    101

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    348
    最后登录
    2021-1-29
    发表于 2017-2-7 16:12:36 | 显示全部楼层 |阅读模式
    开发环境:codewarrior
    MCU:KL25Z128
    QQ截图20170207160239.png
    如图,buil以后生成elf文件。有以下几个问题:
    1.text是代码段,data是已初始化变量,bss是临时变量和未初始化变量,理解的对吗?
    2.dec是什么?
    3.这样一个文件在KL25中运行,至少要占用多大内存?
    4.代码中定义的数组(未初始化)很大时,为什么会build失败?如下图
    QQ截图20170207161118.png

    求高手指教

    最佳答案

    在ARM的集成开发环境中, 1、只读的代码段称为Code段,即上述的.text段。 2、只读的常量数据段,被称作RO Data段,即上述的.constdata段。 以上两个段统称为RO段(Read Only),放在ROM或FLASH等非易失性器件中。 3 ...
    回复

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24887
    最后登录
    2025-7-20
    发表于 2017-2-7 16:38:51 | 显示全部楼层
    在ARM的集成开发环境中,

    1、只读的代码段称为Code段,即上述的.text段。
    2、只读的常量数据段,被称作RO Data段,即上述的.constdata段。
    以上两个段统称为RO段(Read Only),放在ROM或FLASH等非易失性器件中。
    3、可读可写的初始化了的全局变量和静态变量段,被称作RW Data段(ReadWrite),即上述的.bss段。
    4、可读可写的未初始化的全局变量和静态变量段,被称作ZI Data段(Zero Init),即上述的.data段。因为这个段里的变量要被初始化为零,所以叫ZI段。
    以上两个段统称为RW段,而在运行时,它必须重新装载到可读可写的RAM中。

    按照你图中,总的代码大小就是0X9AD8
    如果你未初始化的数组很大,超过了RAM大小,当然要报错了。
    回复 支持 1 反对 0

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 08:12 , Processed in 0.094900 second(s), 25 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表