硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1614|回复: 5
收起左侧

[STM32CubeIDE] cubeide的编译结果和map文件数据的差异怎么回事?

[复制链接]

335

主题

2040

回帖

3050

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3050
发表于 2021-12-28 10:12:26 | 显示全部楼层 |阅读模式
本帖最后由 caicaptain2 于 2021-12-29 14:46 编辑

第一次用cubeide,发现一些数据对不上,请教一下:编译后的结果是:

   text           data            bss            dec            hex        filename
  37428           8024          32024          77476          12ea4        FlowMeter.elf



有以下几个问题:
1。查看map文件,flash的最后地址是0x8009244,就是37444,和上面的text差了16个字节。
2.  查看map文件,RAM的最后地址是0x20007d28 ,就是32040,和上面的bsst差了16个字节。
3.  dec和hex代表的是什么?
4. data 是个啥?在id文件中看到这种定义,“>RAM AT> FLASH  ” 是个啥?
以下是分析结论:
经过初步分析,cubeide里面 text+data就是flash占用的大小;data+bss就是ram占用的大小。dec=hex=text+data+bss。  Flash就是指ROM
text就是keil里面的code+RO data ; 全部都是Flash空间。
data就是keil里面的RW data  ;含初始值的RW变量,在RAM和flash都要占空间
bss就是keil里面的 ZI data  ;不含初始值,不初始化的RW变量,只需要RAM空间



回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107265
QQ
发表于 2021-12-28 10:19:33 | 显示全部楼层
.text:与 RO-code 同义。
.constdata:与 RO-data 同义。
.bss: 与 ZI-data 同义。
.data:与 RW-data 同义

dec是10进制
hex是16进制
回复

使用道具 举报

210

主题

1046

回帖

1686

积分

至尊会员

More we do, more we can do.

积分
1686
发表于 2021-12-28 14:43:26 | 显示全部楼层
我这的map文件只有起始地址+长度,最后地址你是用的起始地址加长度不?
回复

使用道具 举报

335

主题

2040

回帖

3050

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3050
 楼主| 发表于 2021-12-28 16:58:12 | 显示全部楼层
emwin 发表于 2021-12-28 14:43
我这的map文件只有起始地址+长度,最后地址你是用的起始地址加长度不?

从这里可以看到最后的Flash地址,同理,可以看到RAM的最后地址。。。
Snipaste_2021-12-28_16-57-30.jpg
回复

使用道具 举报

210

主题

1046

回帖

1686

积分

至尊会员

More we do, more we can do.

积分
1686
发表于 2021-12-29 10:27:23 | 显示全部楼层
caicaptain2 发表于 2021-12-28 16:58
从这里可以看到最后的Flash地址,同理,可以看到RAM的最后地址。。。

看了下确实有,我这RAM起始是0x20005000,长度0x20FC,正好0x70FC。

  1.    text           data            bss            dec            hex
  2. 504752           2576           5868         513196          7d4ac
复制代码

截屏_2021-12-29_10-12-09.png
回复

使用道具 举报

335

主题

2040

回帖

3050

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3050
 楼主| 发表于 2021-12-29 14:27:23 | 显示全部楼层
经过初步分析,cubeide里面 text+data就是flash占用的大小;data+bss就是ram占用的大小。dec=hex=text+data+bss。 虽然感觉有点奇奇怪怪
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-23 16:31 , Processed in 0.218679 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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