OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4520|回复: 7

怎样查看程序代码占用哪些扇区?

[复制链接]

94

主题

369

帖子

0

精华

高级会员

Rank: 4

积分
865
金钱
865
注册时间
2016-8-25
在线时间
485 小时
发表于 2018-1-24 16:18:54 | 显示全部楼层 |阅读模式
10金钱
大家好。在学习FLASH模拟EEPROM视频时,在主函数中定义的flash写入地址的扇区要大于程序代码占用的扇区。但是怎样知道程序代码到底占用哪些扇区呢?


1.jpg

最佳答案

查看完整内容[请看2#楼]

mdk编译之后 通过Code+RO-data+RW-data 就可以知道代码大小 然后根据每个扇区的大小 就可以知道 flash占用了那些扇区
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

21

主题

2205

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5140
金钱
5140
注册时间
2014-8-26
在线时间
1317 小时
发表于 2018-1-24 16:18:55 | 显示全部楼层
mdk编译之后  通过Code+RO-data+RW-data 就可以知道代码大小  然后根据每个扇区的大小 就可以知道   flash占用了那些扇区
回复

使用道具 举报

11

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2018-1-11
在线时间
35 小时
发表于 2018-1-24 17:24:45 | 显示全部楼层
帮顶,同问
回复

使用道具 举报

9

主题

1385

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
11964
金钱
11964
注册时间
2013-3-8
在线时间
1274 小时
发表于 2018-1-24 19:36:53 | 显示全部楼层
一般根据bin文件的大小,就知道占用几个扇区了。程序占用起始地址一般都是从0开始。
回复

使用道具 举报

94

主题

369

帖子

0

精华

高级会员

Rank: 4

积分
865
金钱
865
注册时间
2016-8-25
在线时间
485 小时
 楼主| 发表于 2018-1-24 22:40:11 | 显示全部楼层
login_FAE 发表于 2018-1-24 17:50
mdk编译之后  通过Code+RO-data+RW-data 就可以知道代码大小  然后根据每个扇区的大小 就可以知道   flash ...

非常感谢。
回复

使用道具 举报

94

主题

369

帖子

0

精华

高级会员

Rank: 4

积分
865
金钱
865
注册时间
2016-8-25
在线时间
485 小时
 楼主| 发表于 2018-1-24 22:40:23 | 显示全部楼层
augustedward 发表于 2018-1-24 19:36
一般根据bin文件的大小,就知道占用几个扇区了。程序占用起始地址一般都是从0开始。

非常感谢。
回复

使用道具 举报

94

主题

369

帖子

0

精华

高级会员

Rank: 4

积分
865
金钱
865
注册时间
2016-8-25
在线时间
485 小时
 楼主| 发表于 2018-1-24 22:54:56 | 显示全部楼层
本帖最后由 学习stm32f4 于 2018-1-24 22:56 编辑

根据login_FAE和augustedward的提示,又在网上搜了一下,有人说在.map文件中可以看出程序占用多少扇区。
我在OBJ文件夹中找到了.map文件,其中有如下信息:
[mw_shl_code=c,true]
Memory Map of the image
Image Entry point : 0x08000189
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00008ff4, Max: 0x00100000, ABSOLUTE)
Execution Region ER_IROM1 (Base: 0x08000000, Size: 0x00008fbc, Max: 0x00100000, ABSOLUTE)
//此处略去很多行
Total RO  Size (Code + RO Data)                36796 (  35.93kB)
Total RW  Size (RW Data + ZI Data)              1904 (   1.86kB)
Total ROM Size (Code + RO Data + RW Data)      36852 (  35.99kB)
[/mw_shl_code]
通过上面的信息,可知total rom size为35.99kB,再根据附件图片得到FLASH模拟EEPROM实验的代码应该占用了扇区0~扇区2.

注(粘贴自http://blog.csdn.net/ropai/article/details/6971792):
Code:代码字节大小
RO:程序中所定义的指令和常量大小 (Read Only)
RW:程序中已初始化的变量大小 (Read/Write)
ZI-Data :程序中未初始化的变量大小 (Zero Initialize)
ROM(Flash) size = Code+RO-data+RW-data;
RAM size = RW-data+ZI-data
1.jpg
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13092
金钱
13092
注册时间
2012-11-26
在线时间
3810 小时
发表于 2018-1-24 22:55:12 | 显示全部楼层
augustedward 发表于 2018-1-24 19:36
一般根据bin文件的大小,就知道占用几个扇区了。程序占用起始地址一般都是从0开始。

从0x80000000  几个零忘记了。。。
学无止境
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-20 00:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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