单片机内部RAM与ROM区域都比较熟悉,我们主要看下常说的堆区、栈区、静态区、常量区、代码区的说明
堆区:程序员自己开辟自己释放的空间、由malloc、calloc等函数开辟,free释放的一片地址区域、若申请了堆区内存,之后忘记释放内存,很容易造成内存泄漏(需要注意),包含在单片机的SRAM空间内
栈区:编译器自动分配释放、存放局部变量、形参、函数返回值等数据、栈区之中的数据的作用范围过了之后,系统就会回收自动管理栈区的内存,例如局部变量只作用与本函数内、栈内的值是可读可写的、包含在SRAM中
静态区:存放静态变量(static)与全局变量的空间、静态区的内存被分配后, 静态区的内存直到程序全部结束之后才会被释放、其值是可读可写的、包含在SRAM中
常量区:存放常量的区域、程序运行过程中不可被更改的量、只读区域、包含在ROM中
代码区:存放程序的代码、即CPU执行的机器指令、只读的,存放函数体的二进制代码、重新上电,代码还会继续运行,并不会消失,所以存储在ROM中