OpenEdv-开源电子网

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

请教个内存使用的问题!

[复制链接]

37

主题

88

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2114
金钱
2114
注册时间
2015-1-29
在线时间
123 小时
发表于 2016-4-29 12:41:09 | 显示全部楼层 |阅读模式
1金钱
STM32F407的内存有:
七条被控总线:
— 内部 Flash ICode 总线
— 内部 Flash DCode 总线
— 主要内部 SRAM1 (112 KB)
— 辅助内部 SRAM2 (16 KB)
— 辅助内部 SRAM3 (64 KB)(仅适用于 STM32F42xxx 和 STM32F43xxx 器件)

它最少有128K内存,但我在MDK中只能使用到64K。
1.在MDK中"DEVICE"中选择的”STM32F407ZG"显示为:
The STM32F4 family incorporates high-speed embedded memories and an extensive range of enhanced I/Os and peripherals connected to two APB buses, three AHB buses and a 32-bit multi-AHB bus matrix.

  - 64-Kbyte of CCM (core coupled memory) data RAM
  - LCD parallel interface, 8080/6800 modes
  - Timer with quadrature (incremental) encoder input
  - 5 V-tolerant I/Os
  - Parallel camera interface
  - True random number generator
  - RTC: subsecond accuracy, hardware calendar
  - 96-bit unique ID

2.在编译中显示:
Program Size: Code=84002 RO-data=1430 RW-data=748 ZI-data=413156  
再大就显示内存超了,也就是它大约64K多一点,到不了128K,请问这是怎么回事?
如何能解决?

最佳答案

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

你这是因为内存管理占了很多。。。。 把内存管理里面的malloc.h里面的内部内存池数组,改小,就行了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2016-4-29 12:41:10 | 显示全部楼层
askh 发表于 2016-5-3 11:13
我在《网络实验3 RAW_UDP实验》中这样试验:把外存屏蔽
1.不加数组:Program Size: Code=72988 RO-data=75 ...

你这是因为内存管理占了很多。。。。
把内存管理里面的malloc.h里面的内部内存池数组,改小,就行了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

7

主题

247

帖子

0

精华

高级会员

Rank: 4

积分
745
金钱
745
注册时间
2016-1-20
在线时间
78 小时
发表于 2016-4-29 12:52:39 | 显示全部楼层
举例:STM32F 103 C 8 T 6
"F"那一位指的是产品类型,现在似乎只有通用型即"F"
"103"那位指的是产品子系列,101= 基本型,102 = USB基本型、USB2.0全速设备,103 = 增强型,105或107 = 互联型
"C"那位指的是引脚数目,T=36脚,C=48脚,R=64脚,V=100脚,Z = 144脚
"8"那位指的是FLASH的大小,4=16K,6=32K,8=64K,B=128K,C=256K,D=384K,E=512K
"T"那位指的是封装方式,H=BGA,T=LQFP,U=VFQFPN,Y=WLCSP64
"6"那位指的是温度范围,6=-40~85摄氏度,7=-40~105摄氏度
你看下你的型号,不知道这个对你有帮助吗?
回复

使用道具 举报

7

主题

247

帖子

0

精华

高级会员

Rank: 4

积分
745
金钱
745
注册时间
2016-1-20
在线时间
78 小时
发表于 2016-4-29 13:00:13 | 显示全部楼层
footprint 发表于 2016-4-29 12:52
举例:STM32F 103 C 8 T 6
"F"那一位指的是产品类型,现在似乎只有通用型即"F"
"103"那位指的是产品子系 ...

http://zhidao.baidu.com/question ... 7rom%BB%B9%CA%C7ram
另外看下这个。
回复

使用道具 举报

37

主题

88

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2114
金钱
2114
注册时间
2015-1-29
在线时间
123 小时
 楼主| 发表于 2016-4-29 14:35:38 | 显示全部楼层
我问的是:
1.STM32F407ZGT6只能用64KRAM,为什么不能用128KRAM?
2.在MDK中选的STM32F407ZG型号,它只说有64KRAM,而不是128K或192K?
3.在MDK中是否有选项,可以用128KRAM?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2016-5-1 11:04:40 | 显示全部楼层
askh 发表于 2016-4-29 14:35
我问的是:
1.STM32F407ZGT6只能用64KRAM,为什么不能用128KRAM?
2.在MDK中选的STM32F407ZG型号,它只说 ...

你用我们例程测试下就知道了
stm32F407是可以用到192K的。
估计你的型号选择搞错了
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

37

主题

88

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2114
金钱
2114
注册时间
2015-1-29
在线时间
123 小时
 楼主| 发表于 2016-5-3 11:06:51 | 显示全部楼层
这样设置有问题吗?
QQ截图20160503105149.png
回复

使用道具 举报

37

主题

88

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2114
金钱
2114
注册时间
2015-1-29
在线时间
123 小时
 楼主| 发表于 2016-5-3 11:13:02 | 显示全部楼层
我在《网络实验3 RAW_UDP实验》中这样试验:把外存屏蔽
1.不加数组:Program Size: Code=72988 RO-data=7504 RW-data=624 ZI-data=395944  
2.加0x6400数组:..\OBJ\Template.axf: Error: L6406E: No space in execution regions with .ANY selector matching memp.o(.data).
也加不上!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2016-5-4 22:01:25 | 显示全部楼层
askh 发表于 2016-5-3 11:06
这样设置有问题吗?

真确。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-27 03:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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