请教原子老师&各位大神关于内存管理这个例程的疑问

2019-07-20 21:20发布

定义内存池大小:

#define MEM1_MAX_SIZE                        100*1024

__align(32) u8 mem1base[MEM1_MAX_SIZE];        //定义内存池100KByte
启动代码里面定义的堆的大小:
Heap_Size       EQU     0x00000200       ;512Byte


问题:
1、 mem1base[MEM1_MAX_SIZE]  这个数组是如何对应到芯片的SRAM的?


2、malloc动态分配内存空间不是在堆中吗?但是这个内存池的大小(100KB)明显大于堆的大小了,

3、假如不是分配在堆中,那这个数组 mem1base[MEM1_MAX_SIZE]  是一个全局变量数组吗?如果是,那整个内存地址分配都是在这个数组里面进行并由内存管理表数组mem1mapbase[MEM1_ALLOC_TABLE_SIZE]进行记录、管理?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。