这是Make后的统计表,那个RW Size就是RAM资源(片内片外都可能)的使用情况(29.52kB) Total RO Size(Code + RO Data) 36334 ( 35.48kB) Total RW Size(RW Data + ZI Data) 30226 ( 29.52kB) Total ROM Size(Code + RO Data + RW Data) 37446 ( 36.57kB)
因为全部的堆(heap)和栈(stack)都包括在RW和ZI段里了,RAM基本就是用来存两个东西:一个是需要快速执行的程序代码,一个是堆和栈。 你只要不刻意在分散加载里把部分代码的执行区放到RAM去,链接器会默认把C语言写的代码都放在低地址的只读存储器中。而且除了一些中断服务程序,没有必要把代码放到RAM里去,现在的FLASH读取速度已经很快了。
结论就是:这句话指示的大小 Total RW Size(RW Data + ZI Data) 30226 ( 29.52kB) RAM实际占用的只会比这多,不会比这少,但多也只会多一点点而已。 说的不一定对,欢迎批评指正。 |