OpenEdv-开源电子网

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

编译的时候显示ZI_data比标称内存大

[复制链接]

25

主题

62

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
366
金钱
366
注册时间
2017-1-17
在线时间
67 小时
发表于 2017-1-19 11:18:08 | 显示全部楼层 |阅读模式
2金钱
我用STM32F407单片机,内部SRAM196k,加上外扩的1024K一共1220k,但是编译的时候显示ZI_data=1220420,为什么会比1220K还大

最佳答案

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

1220Kb=1220*1024=1249280 byte
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

108

帖子

0

精华

高级会员

Rank: 4

积分
717
金钱
717
注册时间
2014-2-24
在线时间
257 小时
发表于 2017-1-19 11:18:09 | 显示全部楼层
回复

使用道具 举报

4

主题

290

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1130
金钱
1130
注册时间
2015-8-4
在线时间
107 小时
发表于 2017-1-19 11:19:25 | 显示全部楼层
你在代码里面分配了过多内存,就这样,烧进去多半要跑飞
回复

使用道具 举报

25

主题

62

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
366
金钱
366
注册时间
2017-1-17
在线时间
67 小时
 楼主| 发表于 2017-1-19 11:56:50 | 显示全部楼层
kingnike 发表于 2017-1-19 11:19
你在代码里面分配了过多内存,就这样,烧进去多半要跑飞

不是吧,我用的探索者开发板,里面好多没有外扩SRAM的例程ZI_data都大于196K的,比如说USB读卡器例程,程序运很正常
回复

使用道具 举报

60

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2814
金钱
2814
注册时间
2012-10-17
在线时间
653 小时
发表于 2017-1-19 14:10:49 | 显示全部楼层
怎麼可能正常...

你只是還沒真的去讀寫不存在儲存器的位址而以...

回复

使用道具 举报

25

主题

62

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
366
金钱
366
注册时间
2017-1-17
在线时间
67 小时
 楼主| 发表于 2017-1-19 16:23:37 | 显示全部楼层
Program Size: Code=54234 RO-data=6670 RW-data=388 ZI-data=1129852  
这个是开发板例程的编译结果 难度原子的例程也存在内存泄漏
这个没有扩展外部SRAM
回复

使用道具 举报

60

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2814
金钱
2814
注册时间
2012-10-17
在线时间
653 小时
发表于 2017-1-19 18:02:59 | 显示全部楼层
Code=54234 RO-data=6670 RW-data=388 ZI-data=1129852  
上面哪個過範圍?

而且內存泄漏是講別的東西....
回复

使用道具 举报

0

主题

10

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2014-4-26
在线时间
40 小时
发表于 2017-11-28 14:35:46 | 显示全部楼层
小小怪 发表于 2017-1-19 11:18
1220Kb=1220*1024=1249280 byte

我用F411CC,flash 256k,sram 128k。
编译后信息如图,能够正常运行,不知道为什么。
我觉得会出问题。。帮我看一下,谢谢!@正点原子  

编译信息

编译信息
回复

使用道具 举报

0

主题

10

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2014-4-26
在线时间
40 小时
发表于 2017-11-28 14:45:21 | 显示全部楼层
馒头弟 发表于 2017-11-28 14:35
我用F411CC,flash 256k,sram 128k。
编译后信息如图,能够正常运行,不知道为什么。
我觉得会出问题。 ...

我检查了下,除了fatfs和USB Mass的移植没看,其他哪有占用 1240320 这么多,如何检查呢?
回复

使用道具 举报

3

主题

108

帖子

0

精华

高级会员

Rank: 4

积分
717
金钱
717
注册时间
2014-2-24
在线时间
257 小时
发表于 2017-11-28 17:11:47 | 显示全部楼层
馒头弟 发表于 2017-11-28 14:45
我检查了下,除了fatfs和USB Mass的移植没看,其他哪有占用 1240320 这么多,如何检查呢?

编译OK后查看 .map文件,看看是哪个文件占用大
回复

使用道具 举报

0

主题

10

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2014-4-26
在线时间
40 小时
发表于 2017-11-30 09:35:56 | 显示全部楼层
小小怪 发表于 2017-11-28 17:11
编译OK后查看 .map文件,看看是哪个文件占用大

谢谢,受教了!定位到了malloc里面,定义的三个内存块,内部SRAM100k,外部960k,CCM60k。定义了未使用的我把它缩小了,变成:内部SRAM10k,外部10k,CCM60K。这样ZI-data就小了。另外请教一下,这些数值和*.s文件中的Heap_Size没关系吧?Heap_Size只用于标准库的malloc?
回复

使用道具 举报

3

主题

108

帖子

0

精华

高级会员

Rank: 4

积分
717
金钱
717
注册时间
2014-2-24
在线时间
257 小时
发表于 2017-11-30 11:17:39 | 显示全部楼层
馒头弟 发表于 2017-11-30 09:35
谢谢,受教了!定位到了malloc里面,定义的三个内存块,内部SRAM100k,外部960k,CCM60k。定义了未使用的 ...

Heap_Size是人工分配和释放才用到,用到malloc就和它有关。
具体去看堆和栈的定义吧
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 17:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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