栈(stack): 由编译器自动分配释放
堆(heap) : 一般由程序员分配和释放
rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END);
#define HEAP_BEGIN ((void *)&Image??RW_IRAM1??ZI??Limit) //ZI段的结束地址,执行地址,也就是程序执行区的RAM结束后的地址,反过来也就是我们执行区的RAM未使用的区域的起始地址
#define HEAP_END STM32_SRAM_END
PS:一个ARM程序包含3部分:RO,RW和ZI
RO是程序中的指令和常量
RW是程序中的已初始化变量
ZI是程序中的未初始化的变量