STM32在KEIL下的工程堆空间在起始地址在哪里体现?

2019-07-14 16:35发布

上面红 {MOD}标记 STACK 的起始地址为 0x2000be28
在这里有几个疑问:
1、栈空间是向低字节地址方向生长的,我定义的栈空间为16K Bytes,那么栈空间从 0x2000be28 地址向下生长,怎么会跟全局变量的地址write_data_buf 0x2000ba28 的地址重合呢?
2、还有个疑问,就是堆空间在起始地址在哪里体现?我定义的堆空间大小为512字节?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
胡德胜快回答
1楼-- · 2019-07-16 02:50
7762642422d 发表于 2018-10-26 15:34
能否解释下“LWIP的内存分配机制”?

这个还真没用过
天微JSB
2楼-- · 2019-07-16 08:30
胡德胜快回答 发表于 2018-10-26 16:10
这个还真没用过

LWIP的内存,在内部做了内存池和内存堆两种内存的分配方式,在opt.h中有一个宏定义,如果MEM_LIBC_MALLOC定义为0和1,有不同的分配方式。
一、MEM_LIBC_MALLOC == 0
这种情况LWIP的内存池和内存堆都是在STM32的RAM空间的全局区,取的一块内存,LWIP协议栈给出了特殊的处理,以便接收和发送数据
二、MEM_LIBC_MALLOC == 1
这种情况下
1、LWIP的内存池是在STM32的全局区
2、LWIP的内存堆是在STM32的堆中
zhhx1985
3楼-- · 2019-07-16 11:41
 精彩回答 2  元偷偷看……
石相康
4楼-- · 2019-07-16 13:52
正点原子有历程可以看看

一周热门 更多>