打印

64K字节SRAM,堆、栈最大可以设多大值?

[复制链接]
3407|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huhu2009|  楼主 | 2010-4-23 13:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32F103VE是64K字节的SRAM,那么堆、栈最大能设多少呢?
沙发
香水城| | 2010-4-23 14:48 | 只看该作者
如果有64K字节的SRAM,理论上堆、栈最大能设到64K字节。

使用特权

评论回复
板凳
huhu2009|  楼主 | 2010-4-23 19:53 | 只看该作者
香主是说堆、栈的值加起来是64K字节是吧,RAM空间除了用于堆栈,应该还有别的区域吧

使用特权

评论回复
地板
xsgy123| | 2010-4-23 20:06 | 只看该作者
LS指的别的区域指的是什么区域,堆栈应该是数据存储最基本的单位吧

使用特权

评论回复
5
hsbjb| | 2010-4-23 21:11 | 只看该作者
64K只是理论值,实际肯定不会这样,其它的也会占用点空间,但很小

使用特权

评论回复
6
sinadz| | 2010-4-23 21:56 | 只看该作者
香主还是说下这64k的具体分配

使用特权

评论回复
7
mcuisp| | 2010-4-23 23:36 | 只看该作者
堆、栈,方向不一样,一个往上,一个往下。可以分配满64K空间。
不过当然不能按64k用,呵呵

使用特权

评论回复
8
香水城| | 2010-4-24 09:51 | 只看该作者
香主还是说下这64k的具体分配
sinadz 发表于 2010-4-23 21:56


这个问题你要问生产编译器的公司。

我们提供了空间,如何分配是有编译器和链接器决定的。

使用特权

评论回复
9
BitFu| | 2010-4-24 12:49 | 只看该作者
栈是可变的,要留足够的空间才行,如果没有操作系统用的会很少,主要取决于函数的嵌套深度参数类型。

一般情况RAM存放三种类型的数据:
1.全局变量
2.堆(典型的MALLOC函数调用),这个得看你用了还是没有
3.栈,这个必然要用到的,有操作系统的话用的就更多了,每一个任务都会有一个栈,根据任务的函数嵌套程度可分配不同的大小。

具体要看什么编译器了,所以首先要估计一下你的栈要用多少,然后,再计算一下你的全局变量有多少,最后定一下可能的动态分配内存(堆)有多少就可以了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

163

帖子

1

粉丝