我们先温习一下变量的基础知识,啥是全局变量,啥是局部变量,这里就不赘述了。
变量的存储方式有:静态存储和动态存储。
静态存储方式:指在程序运行期间由系统分配固定的存储空间方式。
动态存储方式:在程序运行期间根据需要进行动态的分配存储空间方式。
全局变量存储在静态存储区中;动态存储区可以存放函数形式参数、局部变量、函数调用时的现场保护和返回地址等。
栈主要用于存放局部变量,函数形参等,属于编译器自动分配和释放的内存,栈的大小不能超过内部 SRAM 的大小。
堆主要用于动态内存的分配,像 malloc()、calloc()和 realloc()等函数申请的内存就在堆上面。堆中的内存一般由程序员分配和释放,若程序员不释放,程序结束时可能由操作系统回收。
【1】正点原子,STM32 启动文件浅析.pdf
【2】正点原子,MAP 文件浅析.pdf
【3】[野火]STM32 HAL库开发实战指南