2.2、查看Build Analyzer Build Analyzer由两部分组成,分别是Memory Regions与Memory Details。
当在代码编译成功后,Build Analyzer会才更新。在Memory Regions可以简单查看STM32的FLASH与RAM被占用了多少,属于比较宏观的查看。需要查看更加细节时,需要切换到Memory Detials。
在实际工作上,我比较关注RAM而很少关注FLASH。原因是FLASH主要是保存代码而RAM是保存程序运行时的数据(比如全局变量,堆数据与栈数据)。以下摘自安富莱教程:
栈(stack)空间,用于局部变量,函数调时现场保护和返回地址,函数的形参等。 堆(heap)空间,主要用于动态内存分配,如malloc,calloc,realloc等函数分配的变量空间是在堆上。
展开RAM后,可以看到RAM分别是由.data与.bss与._user_heap_stack三部分构成。当我们使用RTOS的时候,需要特别关注._user_heap_stack的大小,防止堆溢出。因为当前我的工程比较小,所以RAM_D1,RAM_D2,RAM_D3都没有东西,导致无法展开。
|