【02】RT-Thread动态内存堆的使用

简述堆栈

在单片机应用中,我们经常提到堆栈这个词,实际上,堆和栈是两个不同的概念

栈(stack):由编译器自动分配释放;

堆(heap):一般由程序员分配和释放。

 

int a = 0;    //全局初始化
char *p1;    //全局未初始化区
int main(void)
{
    int b;                    //
    char s[]="abc";            //
    char *p2;                //
    char *p3="123456";        //123456\0在常量区,p3在栈上
    static int c=0;            //全局(静态)初始化区
    p1=(char*)malloc(10);    //
    p2=(char*)malloc(20);    //
}

 

MDK裸机系统动态内存配置和使用

 

 

char *p;

p = (char *)malloc(10);

free(p)

 

RT-Thread 动态内存配置和使用

 

 #define HEAP_BEGIN  ((void *)&Image$$RW_IRAM1$$ZI$$Limit)

rt_system_heap_init() 初始化系统的堆栈,

 

posted @ 2020-10-28 01:59  doitjust  阅读(262)  评论(0编辑  收藏  举报